Plant Simulation Reference Help 14 ENU
Plant Simulation Reference Help 14 ENU
Tecnomatix Plant
Simulation Help
Contents
Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-402
Moving Docking Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-404
Icon Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-405
Display Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-445
Material Flow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-466
Material Flow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-466
Shared Properties of the Material Flow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-468
AngularConverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1046
Assembly Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1063
Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1088
Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1097
Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1110
Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1145
DismantleStation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1156
Drain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1174
EventController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1213
FlowControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1265
Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1296
Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1408
Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1419
ParallelProc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1445
PickAndPlace Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1458
PlaceBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1499
SingleProc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1509
Sorter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1518
Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1532
Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1563
Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1576
Turnplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1592
Turntable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1615
TwoLaneTrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1645
Fluid Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1680
Fluid Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1680
Shared Properties of the Fluid Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1681
DePortioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1691
FluidDrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1705
FluidSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1714
MaterialsTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1722
Mixer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1723
Pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1738
Portioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1747
Tank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1757
Resource Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1777
Resource Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1777
Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1777
Exporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1807
FootPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1845
LockoutZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1853
ShiftCalendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1869
Worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1886
WorkerPool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1924
Workplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1944
Mobile Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1959
Mobile Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1959
Shared Properties of the Mobile Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1960
Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2061
Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2079
Transporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2092
Information Flow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2211
Information Flow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2211
Shared Properties of Lists and Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2212
CardFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2331
QueueFile and StackFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2340
TableFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2347
TimeSequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2395
AttributeExplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2429
FileInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2447
FileLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2460
Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2468
Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2477
Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2545
Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2562
XMLInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2586
Display and User Interface Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2612
Display and User Interface Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2612
Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2613
Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2622
Checkbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2706
Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2711
Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2728
Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2789
Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2805
WorkerSankeyDiagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2816
HtmlReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2824
Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2873
Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2873
Artificial Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2874
BottleneckAnalyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2891
CrossSlidingCar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2892
EnergyAnalyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2910
ExperimentManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2911
GAWizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2966
SankeyDiagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2971
Take Sequential Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2971
TransferStation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2975
WorkerChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3003
Use the VariantsGenerator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3004
SimTalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3007
SimTalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3007
SimTalk 2.0 and SimTalk 1.0 Compared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3011
A Quick Tour Through SimTalk 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3013
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3016
Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3017
Constants and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3039
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3047
Operators and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3071
Control Flow Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3082
Predefined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3100
Functions for Accessing 3D Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3243
Plant Simulation 2D Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3371
GASelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-151
GASequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-164
GASetAllocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-183
Inter-Process Communication Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-194
Inter-Process Communication Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-194
C ............................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-195
COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-205
DDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-212
HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-221
OPCClassic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-224
OPCUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-240
PLCSIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-254
SIMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-266
Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-277
Teamcenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-295
Object Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-317
Object Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-317
Parameterizing MUs in Object Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-317
Cranes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-318
Electrical Overhead Monorail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-452
High Bay Warehouse (HBW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-509
Kanban Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-546
Value Stream Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-585
Statistics Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-753
Statistics Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-753
About Statistics Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-754
Determine Probability Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-757
Comparing Density Functions of Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-774
Determine Confidence Intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-774
Run a Regression Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-777
Find the Parameters of Truncated Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-783
Run an Analysis of Variance (ANOVA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-787
Run an Independence Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-790
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index-1
Figures
6-1. Density function of the distribution for repair times with a mean value of μ= 10 . . . . . . 6-513
6-2. Density functions of the beta distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-715
6-3. Density function of the Erlang-distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-719
6-4. Density functions of the gamma distribution with a mean value of 1 . . . . . . . . . . . . . 6-720
6-5. Probabilities of the geometric distribution with the parameter p=0.5 . . . . . . . . . . . . . 6-721
6-6. Probabilities of the hypergeometric distribution with the parameters M=100, N=5,
p=0.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-723
6-7. Density function of the lognormal distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-725
6-8. Density function of the negexp distribution with a mean value of 2 . . . . . . . . . . . . . . 6-727
6-9. Density functions of the normal distribution with a mean value of 5 . . . . . . . . . . . . . . 6-729
6-10. Probabilities of the Poisson-distribution with the parameter lambda=5 . . . . . . . . . . . . 6-730
6-11. Density function of the triangular distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-732
6-12. Density function of the uniform distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-733
6-13. Density functions of the Weibull-distribution with a mean value of 2 . . . . . . . . . . . . . 6-735
6-14. Selecting output values of interest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2933
8-1. Optimization as an iterative process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-117
8-2. Mutation for a sequence task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-122
8-3. Mutation for an inversion task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-123
8-4. Crossover between two solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-123
8-5. Part of the frequency table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-766
8-6. Intermediate results of the -test in the Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-767
8-7. Intermediate results of the KS test in the Report . . . . . . . . . . . . . . . . . . . . . . . . . . 8-768
8-8. Evaluation of the results of the goodness-of-fit test . . . . . . . . . . . . . . . . . . . . . . . . 8-770
8-9. The estimated parameters for the distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-771
8-10. Information and error messages of the data fitting . . . . . . . . . . . . . . . . . . . . . . . . 8-772
8-11. Empirical frequency table of a sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-773
8-12. Dialog window of the object Independence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-792
• Step-by-Step Help
• Reference Help
Copyright © 2017 Siemens Product Lifecycle Management Software Inc. All rights reserved.
This documentation is proprietary to Siemens Product Lifecycle Management Software Inc.
This document contains proprietary information and is protected by copyright. No part of this
document may be reproduced, stored in a retrieval system, translated, transcribed, or transmitted, in
any form or by any means, without the prior explicit written consent of Siemens Product Lifecycle
Management Software Inc.
Information in this document is subject to change without notice.
AutoCAD is a registered mark or trademark of Autodesk, Inc. or its subsidiaries in the US and other
countries. Beyond Compare copyright © by Scooter Software.
Google Chrome copyright © 2014 Google Inc. All rights reserved
HP is a registered mark or trademark of Hewlett-Packard Company or its subsidiaries in the US
and other countries.
IBM is a registered mark or trademark of International Business Machines Corporation or its
subsidiaries in the US and other countries. Intel is a registered mark or trademark of Intel Corporation
or its subsidiaries in the US and other countries.
Java and iPlanet are registered marks or trademarks of Oracle Corporation or its subsidiaries in
the US and other countries.
Microsoft is a registered mark or trademark of Microsoft Corporation or its subsidiaries in the US
and other countries.
Microstation is a registered mark or trademark of Bentley Systems, Incorporated or its subsidiaries in
the US and other countries.
Paint, PowerPoint, Word, WordPad copyright © 2006 by Microsoft, Corporation. All rights reserved.
Netscape is a registered mark or trademark of Netscape Communications Corp.or its subsidiaries in
the US and other countries.
NVIDIA a registered mark or trademark of NVIDIA Corporation or its subsidiaries in the US and
other countries.
Oracle is a registered mark or trademark of Oracle Corporation or its subsidiaries in the US and
other countries.
UNIX is a registered mark or trademark of The Open Group or its subsidiaries in the US and other
countries.
VizStream is a registered mark or trademark of RealityWave Inc. or its subsidiaries in the US and
other countries.
RAMIS is a trademark of Human Solutions. The software is sub-licensed by Human Solutions GmbH,
Kaiserslautern, Germany.
Body Builder is a trademark of Human Solutions. The software is sub-licensed by Human Solutions
GmbH, Kaiserslautern, Germany.
VarChart, copyright © NETRONIC Software GmbH 2004. All rights reserved. The software is
sub-licensed by NETRONIC Software GmbH, Aachen, Germany.
ProEssentials v7.1 Charting Software, copyright © 1994-2012 Gigasoft, Inc. All rights reserved.
Adobe and Acrobat and FrameMaker are trademarks of Adobe Systems Incorporated.
Paint Shop Pro copyright © by Jasc., Inc.
SnagIt copyright © 1996–2007 TechSmith Corporation.
WinMerge copyright © 1996–2009 by Dean P. Grimm/Thingamahoochie Software
3D Studio Max® R3 copyright © 1999 Autodesk, Inc. Microsoft® and Windows® are registered
trademarks and Gif is a Service Mark property of CompuServe, Inc.
Trend Micro Office Scan is a trademark of Trend Micro, Inc. © 1998–2009 Trend Micro, Inc. All
rights reserved.
This application incorporates Teigha® software pursuant to a license agreement with Open Design
Alliance. Teigha® Copyright © 2003-2014 by Open Design Alliance. All rights reserved.
All other product names or brand names are trademarks or registered trademarks of their respective
owners.
What's New
Below you find:
• What’s New in Tecnomatix Plant Simulation 14
Also consult
Using HTML Help
Step-by-Step Help
Reference Help
3D Viewer Reference Help
3D Viewer Reference Help
Add-Ins Reference Help
Copyright © 2017 Siemens Product Lifecycle Management Software Inc. All rights reserved.
This documentation is proprietary to Siemens Product Lifecycle Management Software Inc.
This document contains proprietary information and is protected by copyright. No part of this
document may be reproduced, stored in a retrieval system, translated, transcribed, or transmitted, in
any form or by any means, without the prior explicit written consent of Siemens Product Lifecycle
Management Software Inc.
Information in this document is subject to change without notice.
• Miscellany
• To facilitate this via SimTalk, we added the method SetTrustModels to the COM interface.
• If you activate this security setting, this also affects a number of methods that can access your
computer.
• We added the start option -TrustModels. When you enter this start option, Plant Simulation treats
models, which you receive from others as if they were your own models. When you open a
model that your received from somebody else, for which the model setting permits access to
the computer, Plant Simulation does not notify you about this.
Models, which were saved with a version older than 14, do not receive a trust ID and thus are
always considered to be models from other people. Normally access to the computer is denied
when loading an old model into version 14. If you entered the start option -TrustModels, the old
model automatically has access to the computer.
We added another parameter to the method getLibraryInfo allowing you to query access to the
computer.
o Select the target folder of the model with the command File > Teamcenter > Add to
Teamcenter.
o Select a model with the command File > Teamcenter > Open from Teamcenter.
• With Active Workspace in the Teamcenter Interface you can select Teamcenter objects via Active
Workspace and to further process these objects in Plant Simulation.
You can:
o Select an application interface object in the dialog of the Teamcenter Interface via Active
Workspace.
o Select the target folder of the Report in the dialog of the Teamcenter Interface via Active
Workspace.
We made changes that are relevant for the simulation and the animation in Tecnomatix Plant
Simulation 14. For this reason you have to adapt simulation models which you created in previous
versions of Tecnomatix Plant Simulation, when you open them in Tecnomatix Plant Simulation 14.
• We changed the behavior of the feature setup after n parts with the setting After last part. If you
entered a formula for the setup time, the anonymous identifier @ was void in previous versions
when the machine was set up after the n-th part. Now you can access the n-th part with @.
• We changed the behavior of the Store when it delivers mounting parts for an AssemblyStation
and when several parts in the Store are simultaneously unblocked for a main part. From this
version on the parts arrive in reversed order at the AssemblyStation.
• We changed the behavior of the read-only attribute CurrentSpeed of MUs on Lines. CurrentSpeed
now always has the sign (+ or -) of the respective direction of movement of the Line. In previous
versions the sign of the CurrentSpeed could differ from the direction of movement of the Line
when the MU was conveyed by a Converter beforehand.
• We changed the behavior of method initialize of the TableFile. If you tried to initialize the column
index, for example with TableFile.initialize({0,*}, "AA")), Plant Simulation did not execute
this and retained the previous values. Now Plant Simulation assigns the passed initial value.
• We changed the behavior of the attribute Coordinate3D: It now returns an array of data type
length instead of data type real as in previous versions.
• We changed the behavior of the SQLite Interface: When you open a file-based SQLite database,
Plant Simulation applies the following default settings, which deactivate transaction support:
PRAGMA locking_mode=EXCLUSIVE
PRAGMA journal_mode=NORMAL
PRAGMA synchronous=OFF
These settings considerably accelerate access to the database.
To get the SQLite default settings, which support transactions, you can use the following
instructions:
SQLite.exec("PRAGMA locking_mode=NORMAL");
SQLite.exec("PRAGMA journal_mode=DELETE");
SQLite.exec("PRAGMA synchronous=FULL");
• We fixed non-expected behavior that occurred in the method find of lists and tables. When you
searched a table and then started a second search, for which you entered a range, which did
not contain the cell of the first search, the search was only started after the first cell of the new
range, as the search was continued.
Now we reset the search and the search then starts in the first cell of the range as if a call
of the method setCursor had been executed.
• When resetting the simulation model, Plant Simulation now does not call the Request control,
the Receive control, and the Release control of the Importer any more.
This is because the MUs are deleted when resetting the simulation model. This then triggered
the release control for example. Normally you can access the active MU with the anonymous
identifier @. As the active MU was deleted while resetting the model, the Debugger opened.
For this reason you had to program source code in your model that handled a case that never
occurred during the simulation.
• The new settings of the 3D-Viewer-function MU side to attach caused the state of the setting
to convert the animation path to the new setting. A model, that relies on a certain inheritance
state of the MU Animation and then changes the state with SimTalk commands, might lead to a
changed animation for the object Pick-and-Place-Robot.
• We added the setting MU conveying direction to the tab Attributes of the Pick-And-Place-Robot.
• We added the Tab Importer to the Pick-And-Place-Robot. This way you can order a Worker for
repairing the services to remove the failure.
• We added the setting Off to the dropdown list Set-up depends on. It deactivates setting the
object up after changing the type to another MU. This means that the station will only be set-up
after the number of parts that you selected.
• We added the Z-dimension to the Store, the Container, and to the Transporter. This allows
you to stack parts on these objects.
• We added the attribute MUHeightWithContent to the MUs. You can use it when stacking parts.
• We added the setting Throughput per Minute to the tab Tab Type-dependent Statistics of
the Drain.
• We added a setting to the object Interface to show the number of the next aimed at exit on the tab
Exit when you already determined that exit.
• We added the setting Only for empty blocking list to the tab Attributes of the
Pick-And-Place-Robot.
• We added the setting Target selection to the tab Exit of the Pick-And-Place-Robot.
• We added the Loading time and the Unloading time to the tab Attributes of the
Pick-And-Place-Robot.
• We added the command Delete Sensor to the context menu of length-oriented objects in the
Frame. To delete a sensor in 3D, press the Del key on the keyboard.
• We added the method getHTMLCode for all objects which can create a statistics table in the
HtmlReport.
• The button in the text box of the control on the tab Controls now provides these commands:
• We added the setting Assembly table > Depends on Main MU to the Assembly station.
• We added the menu command Calculate Dimensions from 3D to the Tools menu of the MUs.
• We added the method getStoragePlace to the MUs. You can use it to find out on which storage
place within a Store the MU is located.
• We increased the number of Parameters which observer methods accept. You can declare
observer methods with one, two, or three parameters.
• We added the optional parameters Destination and Name to the methods derive and duplicate
to enable these methods to replace the method createObject. To create the object at a certain
position in the Frame as with the method createObject, use the attribute Coordinate3D.
• We changed the behavior when querying the contents list of a length-oriented object or of the
position list of an MU on a length-oriented object with the methods contentsList and positionList.
The values for the positions are not rounded any more.
• We changed product statistics of the MUs: MUs, which are located in a blocking list, are now
always counted as waiting, no matter which state the material flow resource is in. MUs, which are
loaded or unloaded from a resource by a Pick-and-Place Robot, are always counted as working.
• We now enter root.Broker into the text box Broker by default into the sub-tabs of the Tab
Importer. For this reason Plant Simulation now does not show an error message any more when
you click on Apply. When Plant Simulation detects an invalid Broker during the simulation, it
opens the dialog of the object with the respective sub-tab.
• We changed the behavior of Plant Simulation. Now no events are calculated any more when
resetting your model. This now happens when initializing the model.
You can now also initialize attributes, which affect event generation, for example the availability,
in the Init Control. For this the init controls are now executed before the events are calculated.
The normal init methods, on the other hand, are executed after calculating the initial events.
Based on this enhancement the Init Control of the Transporter will now also be executed before
the events are calculated. In previous version the init control was executed after the events
were calculated.
• We changed the behavior of the Exit strategy > Carry part away. It is not allowed any more for
objects which are part of a balanced line. For models, which you created in previous versions,
Plant Simulation deactivates the object Cycle when you had activated Carry part away for
one of the objects it controls.
• We changed the behavior of the Assembly station. When it has objects of type Store as
predecessors, it requests the required mounting parts from the Store. If the required parts are not
available in the Store at the moment, the Store records the request and delivers the parts to the
Assembly station when they are available again.
The parts can also be carried from the Store to the Assembly station by a Worker. The Store
can only provide mounting parts, but no main parts and has to be connected with a Connector,
even when the Worker carries the part away.
• We changed the behavior of the method mu of the Container, the Transporter with a loading
space, and of the Store. You can now call it with the parameter -1. Then the method returns the
last MU on the object or VOID when the object is empty. You can, for example, use the method to
unload a Container in reverse order.
• We changed the behavior of Plant Simulation. The method finishedTime of the MUs is now
observable.
• We do not support the method createObject any more. Use the methods derive or duplicate
instead. To create the object at a certain position in the Frame, use the attribute Coordinate3D.
• We added a message when you try to change the source code of a read-only Method.
• We added a feature allowing you to set a class breakpoint and/or an instance breakpoint for
an encrypted method. The Method then stops at, respectively during, method execution in
the Debugger.
When you did set a breakpoint, this Method shows the breakpoint with the respective icon within
the Method editor or the Method debugger before the message Source code is encrypted.
• We added a function which shows the elapsed time in the status bar of the Method Debugger
when you execute one or several instructions in a Method with the commands Step Over (F10),
Step Into (F11), Step Out (Shift+F11) or Run to Cursor (Shift+F10) and when executing the
instructions takes 10 milliseconds or longer.
• We added the tab Anonymous Identifiers to the watch window of the Method. Plant Simulation
now shows the anonymous identifiers @ and ? on this tab instead of the Tab Variables as in
previous versions of the program.
• We now mark temporary breakpoints and bookmarks in the source code of a Method in a brighter
color than saved breakpoints and bookmarks. This might, for example, be the case when you
changed the source code of a Method and set a breakpoint or a bookmark after the original
end of the source code. These breakpoints or bookmarks are lost when you do not apply the
source code.
Now we reset the search and the search then starts in the first cell of the range as if a call
of the method setCursor had been executed.
• We added the columns Description and Creation Date to the tables in the dialog Select
Teamcenter Sync (Import). In addition, you can now sort the columns in the tables.
• We activated the setting Decimal places for the Variable for variables of data type time.
• We replaced the methods indexXDim and indexYDim of the TableFile with the read-only attributes
XDimIndex and YDimIndex.
• We changed how Plant Simulation exports data from tables with the command Export Excel File
to the Excel format: Until now Plant Simulation always used the proprietary SI units and not the
unit that you had selected. Now Plant Simulation exports the data with the settings that you
selected for the units. Suppose that you selected Foot as the length unit for a column of data
type Length. Then Plant Simulation exports the values in Feet to Excel and interprets the values
as Feet when you import them back to Plant Simulation.
• We added an optional parameter to the method openDialogBox. You can use it to set that the
column widths will be calculated automatically.
• We added a message that asks if you want to cancel your changes when you click Cancel or
press the Esc key in the dialog of the object HtmlReport.
• We enhanced the functionality of the object HtmlReport. You can set the table columns for
objects which show statistics tables in the report, compare Display Statistics Values of an Object
as a Table in the Report.
• We changed the unit with which Plant Simulation shows the width and the height of the objects
DropDownList and Button. In previous versions these were displayed in pixels, now they are
shown in meters.
To facilitate this, we introduced the attributes ObjectWidth and ObjectHeight and we removed
support for the attributes Width and Height.
• We moved the setting Data in the dialog of the object Chart from the tab Display to the Tab Data.
The setting Display in Frame on the tab Display now also affects 3D.
When Display in Frame is activated, you can now enter the Width and the Height of the
chart in length units, for example in meters. You can also set the dimensions with the attribute
SizeInFrame.
• We replaced the methods getValue and setValue of the object Display with the attribute Value.
• We added the keyword waitExpired. This way you can specify a time limit for waituntil- and
stopuntil-statements.
• We made these changes in connection with the internal web server of Plant Simulation:
o The internal web server will now only be started when you entered the start option -WebServer
or -WebServer:Portnumber.
o The function portNumber now returns 0 when the web server has not been started.
o For the function openHTMLBrowser URLs that begin with L/ only work when the web server
has been started.
• We changed the behavior of the wait instruction: When it is executed with a negative time, Plant
Simulation opens the Method Debugger and shows an error message. In previous versions a
negative wait time was implicitly changed to 0.
• We enhanced the functionality of the arrays. You can now add and subtract arrays of numerical
data types.
• We enhanced the fuctionality of SimTalk 2.0. You can now enter time literals:
wait 1:30 -- wait 1 Minute and 30 seconds
&Method.methCall(1:0:0:0.5) -- call the Method in 1 and half a second
• We changed the behavior of Plant Simulation. When the SimTalk functions for arrays min and
max are called with two values, which have the same physical unit, the return value now also has
this value. Compare these examples
min(time, time) -> time
min(length, length) -> length
min(length, speed) -> real
min(length, real) -> real
min(integer, integer) -> integer
min(integer, real) -> integer
min(real, integer) -> integer
min(integer, weight) -> real
• We changed which objects the method numOfLimitedObjects does not count as well, namely
objects of type Interface and EventController.
Miscellany
Tecnomatix Plant Simulation 14 provides a number of new and improved features.
• We moved the settings for Connectors, namely Connect objects automatically and Connector
positioning from the tab User Interface to the tab General in the dialog Preferences.
• We added the settings for Connectors to the tab General in the dialog Model Settings.
• We matched the categorization of the attributes and methods in the Online Help in the Online
Help with the categories in the dialog Show Attributes and Methods in Plant Simulation itself.
We now list the Methods of the Material Flow Objects, the Read-Only Attributes of the Material
Flow Objects, and the Attributes of the Material Flow Objects.
• We matched the categorization of the attributes and methods in the Online Help in the Online
Help with the categories in the dialog Show Attributes and Methods in Plant Simulation itself.
We now list the Methods of the Material Flow Objects, the Read-Only Attributes of the Material
Flow Objects, and the Attributes of the Material Flow Objects.
• We changed the selection that Plant Simulation offers when creating a new simulation model.
Plant Simulation now only asks if you want to create 2D model or a 3D model. The setting 2D
and 3D is not required any more as you can activate 3D any time for an existing 2D model by
clicking Activate 3D on the tab Windows of the ribbon bar.
• We changed how Plant Simulation shows a user-defined ribbon tab. In previous versions Plant
Simulation showed it under the ribbon tab/category Frame or 3D. Now Plant Simulation shows it
as a ribbon tab/category of its own named User.
• We renamed the tab Modeling to 2D. This allows us to hide the tab 2D when you are only
working with a 3D model.
• We moved the Connector settings Connect objects automatically and Connector positioning
from the tab 2D to the tab User Interface in the Preferences dialog.
• We changed the behavior of the View Options, such as Show Object Names, in the Frame.
When you change one of these settings Plant Simulation changes it in the class from which this
setting is inherited. If you only want to change the setting in the local instance, you have to
deactivate inheritance first. We changed this because, as a rule, you will want to change the
setting for all instances of the Frame.
• We added the check box Requires 3D to the dialog Edit Library Information. When you load a
library for which this setting is selected, and when the 3D Viewer is not activated, you will be
asked if you would like to activate the 3D Viewer. When you click No, the library will not be loaded.
• We moved the command Edit 3D Properties in the context menu of the selected object in the
Class Library up to the commands for opening the object.
• We added an error message that Plant Simulation shows when you created a new object with the
command Derive and when the new name, that you entered, could not be assigned.
• We enhanced the visualization of the BottleneckAnalyzer in 3D. We replaced the transparent box
with transparent sides with lid and we adjusted the width to the number of columns.
• We renamed the settings under Model Settings > General > Visualization. We added the setting
Ask Each Time to Preferences > General > Visualization.
• We added the folder User Objects to the Class Library and to the Toolbox. Create and store the
objects, which you yourself develop, in this folder.
• We added the folder Objects to the folder into which Plant Simulation is installed. By default it
contains sub-folders with object files for Containers and Transporters. You can also save object
files for re-usable objects which you and your colleagues created.
• We added the button Update All Libraries to the dialog Manage Class Library. You can use it
to update all libraries to the newest version.
• We changed the behavior of when selecting objects in the Toolbox: When you select an object in
the Toolbox while holding down the Ctrl key, the object remains selected in the Toolbox after
inserting it. Thus you can insert several instances of the selected object one after the other. You
can terminate this mode with the right mouse button or with the Esc key.
• We replaced the setting Auto graphics active for the MUs with the setting Scale automatically. It
adjusts the size and the position of the graphic of the MUs to the dimension and the booking
point of the MU in 2D.
• We added settings for the rotation to the tab point cloud. This allows you to set a rotation with a
rotation angle and a rotation axis. In previous versions you could only set the rotation angle and
the point cloud used the pre-defined axis (0,0,-1).
• We added the setting Obstacle for the worker > Sides to the command Insert Stairs.
• We added the button Adjust Graphics to MU Size to the tab Graphics of the MUs in the dialog
Edit 3D Properties.
• We replaced the command Create Cone with the command Create Cone Frustum.
• We added buttons for moving camera marks up or down in the list of camera marks.
• We added the tab Captions to the dialog Edit 3D Properties of the objects.
• We added the command Show Statistics Report to the context menu of the animatable objects
in 3D.
• We added the command Help on Dialog to the dialog Edit 3D Properties. It opens the help topic
for the dialog. You can then navigate to the help for the different tabs that the dialog provides.
• We added alternative graphics for Euro pallets of type EUR 2/ISO2, EUR 3, and EUR 6/ISO0 to
the Plant Simulation installation folder > s3d-graphics > Containers. We use the Euro pallet
of type EUR 1/ISO1 as the standard graphic.
• We added a message that Plant Simulation shows when you exchange the 3D graphic of an
object with matrix loading space, such as the ParallelProc, the Container, the Workerpool, etc.
Plant Simulation now asks if you want to use the number of places from the 3D MU Animations
of the new graphic as the new capacity. This applies when the number of loading spaces differs
between the original graphic and the new graphic.
• We added the objects Dropdownlist, CheckBox, and Button to the objects which the 3D Viewer
shows in 3D windows. When you set scaling on the tab Transformation in the dialog Edit 3D
Properties, this does not affect the width and the height in the dialog of the object in 2D. The 3D
Viewer only distorts the graphic of the object and does not change its dimensions.
• We added the setting Show sensors to the dialog Edit 3D Properties > Tab Graphics.
• We added the command Show Corner Points to the context menu of the Connector. You can use
it to attach the Connector to another object.
• We added SolidEdge files (*.asm, *.par, *.psm) to the data types that Plant Simulation can
import as graphics.
• We added the method _3D.exportAsBitmap. It exports the designated 3D scene as a .PNG file.
• We changed the functions of the command Insert Cylinder. You can now select the individual
parts of the cylinder that you want to create.
• We changed how the 3D Viewer searches for applicable MU animation paths for showing
Workers. This no longer works based on animation path names, for example Default for the
FootPath or #0#1, etc. for the WorkerPool, but based on the consecutive number in the MU
animation attribute as already implemented for MUs on the PickAndPlace robot or on a Worker.
When the 3D Viewer does not find the path with the required number, for example the second path
to show the second Worker on the WorkerPool, it uses the path named Default if that path exists.
• We removed the commands Show/Hide Camera Icons and Toggle Camera from the tab View
of the 3D-Viewer.
• We separated inheritance of the state graphics from inheritance of the object graphics on the tab
Graphics. You can now activate or deactivate them separately with the toggle buttons next to
Object graphics and State group.
• We changed the behavior when modifying the orientation of a State group. The last transformation
of the vertical or horizontal state group now does not get lost any more.
• We changed how the 3D Viewer scales. In previous versions you could also enter a negative
scaling factor. From version 14 on we split this into settings for unsigned scaling (settings for
scaling) and settings for mirroring.
As opposed to 2D it only shows a single Worker in 3D. If you would like to see how many Workers
are staying in the WorkerPool, open it in a new 3D window.
• We changed how the command Lock Structure works. It now also prevents you from inserting
graphics.
• We changed the data type of the 3D attributes and the parameters of 3D methods, which refer to
a position or to dimensions. In previous versions the data type was real. From this version on the
data type is length or an array of data type length.
• We changed the behavior for the first anchor point of an extrusion polycurve. For the first anchor
point you cannot open the dialog Edit 3D Properties.
• We changed the behavior when selecting something in a 3D window. From this version on this
selection is only visible in this 3D window except the selection is an MU instance.
In previous versions this selection was visible in all open 3D windows. If, for example, you
selected a graphic in an open SingleProc, this graphic was marked as selected in all 3D windows
for all SingleProcs which inherit their graphics from this SingleProc or from the SingleProc from
which this graphic inherits. When you selected an object this object was shown as selected in
all windows, for example in an inserted Frame instance as well as in the Frame class and in all
windows which were opened for that object. Now this is only the case when you select an MU
instance, namely the object and not its graphic.
• We activated the buttons for controlling the simulation on the mini toolbar in the 3D window of
an animatable object.
• In Full Screen mode you can now also show the frame rate by pressing the F key and use the
multimedia buttons on multimedia keyboards.
• We changed the behavior when rolling the mouse wheel in the window of a 3D scene. Plant
Simulation now zooms the 3D scene in when rolling the mouse wheel forward. In previous
versions it zoomed the scene out. To facilitate this, we changed the standard setting under
Preferences > 3D > Mouse wheel behavior to Move camera. In previous versions it was Move
scene. The new standard setting is the same as in NX and on Web sites.
• We enhanced the behavior of the 3D Viewer. You can now combine the functions Align to Grid
and Snap to Grid.
• We enhanced the behavior of the function Align to Grid. It now also applies to graphics.
• We changed the behavior of the feature Show Shadows. You can now only activate it for objects
of type Frame.
• We changed the behavior of the extrusion configuration of the length-oriented objects on the
tab Appearance in the dialog Edit 3D Properties. We renamed the conveyor type setting Not
defined to User-defined.
We moved the settings for defining a user-defined conveyor from a series of sub-dialogs to
the tab Appearance itself.
We limited the values for graphic group IDs in the extrusion configuration to values between
0 and 10.
• We removed the button Show Preview from the dialog Edit 3D Properties. The program now
shows changed values immediately after changing them.
• We enhanced the behavior of the 3D Viewer for displaying objects of type Display, Comment,
and Variable in 3D windows. The 3D Viewer now shows them with the font size that you selected
in the dialog of the object in 2D.
• We enhanced the behavior of the 3D Viewer for displaying angle-dependent Connectors. They
are now displayed as in 2D, namely depending on the angle between the objects.
• We changed the coordinates with which we define the bounding box of an obstacle for the
Worker:
o From this version on we use the object coordinates. Previous versions used the coordinates
of the graphic nodes.
• We changed the behavior when calculating the bounding box of the objects in 3D: Displayed path
nodes and objects, which are located on the object, are now excluded from the calculation.
o If you selected an object or a graphic in the active 3D window, the 3D Viewer exports the
selected object or the selected graphic.
o If you did not select anything, the 3D Viewer exports all graphics that are visible in the 3D
window.
• We changed the behavior when Plant Simulation automatically inserts Connectors. The 3D
Viewer now uses the Interface, when you insert an Interface into 3D Frames with visible contents
and move it with the mouse or with keyboard keys.
• We added four additional settings to the function MU side to attach and we changed the
functioning of the existing settings.
• Miscellany
As the program changed at a number of places, you might have to adapt simulation models you
created in previous versions of Tecnomatix Plant Simulation, when you open them in Tecnomatix
Plant Simulation 13.
Back to What’s New
The most important new function in Tecnomatix Plant Simulation 13 is the Worker who moves
freely within the area of the model. This way he is not bound to Footpaths any more which you
insert into your model.
To enable free movement within the area, we added the following functions:
• We replaced the text box Workers can beam to the Workplace with the dropdown list travel
mode in the WorkerPool.
• We enhanced the functionality of most of the 3D objects to allow you to set if these are an
obstacle for the Worker moving freely within the area. You find the setting Obstacle for the
Worker on the Tab Graphics or on the Tab Graphic Settings. For most of the material flow objects
the bounding box is an obstacle for the worker by default.
• We added the function Insert Barred Area to the 3D Viewer to create areas which the Worker can
enter but should not be, for example the pivoting range of a crane.
Tecnomatix Plant Simulation 12.1 provides a number of new and improved features.
• We changed the user interface theme of Plant Simulation 12.1 to match the standard Siemens
PLM theme. This affects the look-and-feel of the entire application, i.e., of the main program
window, of the docking windows, of the object windows, and of the dialog windows.
Note that we have not replaced all screenshots of dialogs and windows in the Online Help yet.
• We introduced SimTalk 2.0. It’s features make programming methods in Plant Simulation faster,
easier, and less error-prone. You can activate it by clicking New Syntax on the Tools
ribbon tab of the Method. If you want to use SimTalk 2.0 syntax for all new Methods which you
are going to program, activate New Syntax in the Method class in the Class Library. Changes
caused by SimTalk 2.0 also affect how the dialog Show Attributes and Methods displays the
signature of attributes and methods. There turn value of a method is now displayed to the right of
the keyword -> instead of to the right of the colon (:).
You can select if you want to use the SimTalk 2.0 or SimTalk 1.0 notation for each and
every of your Methods. You can also freely mix SimTalk 2.0 or SimTalk 1.0 notation
in your simulation models. There is no need to reprogram your existing source code.
Clicking for an existing Method, which you created in SimTalk 1.0 notation,
automatically converts the source code to the correct SimTalk 2.0 notation.
To convert the source code of all existing Methods in a simulation model to the new
syntax, hold down the Shift key, click the object Basis in the Class Library with the
right mouse button, and click Convert All Methods to New Syntax
• We only deliver the 64-bit version of Plant Simulation. We do not provide a 32-bit version any
longer.
• We added support for the following 3D graphics formats to the command Import Graphics:
Parasolid Text, Parasolid Binary, PLMXML, STEP, IGES, and Catia V4.
These formats require a Professional, an Educational, a Research, an Application, or a
Standard License.
• We added the Exit strategy > Carry part away to the Store. This enables a Worker to pick a
part up at the Store and carry it to another station.
• We added the method findPart to the ParallelProc, the Store, and the Container.
• We added a number of statistics methods to the MUs, for example statProdFailTime, etc.,
statStoreFailTime, etc., and statTranspFailPortion, etc.
o When setting a straight segment by clicking on an existing object, Plant Simulation uses,
depending on the mouse position, either the angle of the object or +- 90 degrees to this angle
as the start tangential angle of the new object.
o When setting a curve segment without clicking an existing object, Plant Simulation now
proceeds as follows: When you enter an angle for straight segments, Plant Simulation uses
this angle as start tangential angle of the new object. When you hold down the Ctrl key,
Plant Simulation uses, depending on the mouse position, 0, +-90 degrees or 180 degrees
as start tangential angle.
• We changed when the processing time is evaluated. From now on no Workers are requested
when you entered a processing time of 0. For this reason the processing time will now be
calculated when the MU enters the object or when setting-up is finished, not when the Worker is
requested or when he arrives as in previous versions.
If you would like to request a Worker in spite of a processing time of 0 enter a processing time
that is slightly greater than 0, for example 0.001.
• We changed the user interface color of Plant Simulation from a dark teal to a dark cyan.
• We changed the behavior of the user-defined ribbon. The 3D Viewer now also shows and
activates it when you click on a Frame for which a user-defined ribbon tab is defined in Plant
Simulation 2D.
• We changed the layout of the Tab Attributes of the MUs. In addition it now also shows the
absolute position of the booking point.
• We changed the behavior when manually inserting MUs on Line, Track, and TwoLaneTrack. In
previous versions Plant Simulation always inserted the MU at the end of the object. Now it inserts
the MU at the position of the mouse pointer on the object.
• We changed the behavior when moving an MU with the method transfer. The MU is now moved
with the command transfer after unblocking it, not with the command move.
• We added the attribute CurrentSpeed to the Line. For the Line, the attribute is not observable.
• We renamed the method movingSpeed of the MUs to currentSpeed. The method now also
applies to the Transporter as opposed to previous versions which provided the attribute
CurrentSpeed. For the Transporter you can also set the current speed.
• We changed the behavior of the object Cycle. From now on you cannot drag two objects at the
same time onto the object Cycle with the mouse anymore and drop it there.
• We changed the behavior of the method setRoute of the Transporter. It now also accepts material
flow objects other than objects of type Track. In previous versions these objects were allowed
as destination of the route, but not as objects along the way. When assigning a route, which
contains such objects with setRoute, then the Transporter passes these objects on its way to
the destination. While automatically computing a route, Plant Simulation only takes Tracks and
TwoLaneTracks into consideration.
• We changed the behavior of the methods insert, move, and transfer of an MU that is located on
a Converter. These cannot be called with an index for the successor any longer. In previous
versions the index was ignored when you passed one and Plant Simulation showed a warning in
the Console. From this version on the Method Debugger will be opened with an error message
instead.
• We changed the behavior of Transporters that were stopped by Plant Simulation, for example in
an Exit control. When you change the direction of movement by changing the setting Backwards
of a Transporter, now the Transporter immediately starts moving. In previous versions you had to
make the Transporter start moving again by entering Stopped := false. As a result of this change
you may have to adjust your model by Stopping the Transporter before changing the state of
Backwards. Otherwise the Transporter starts moving in the previous direction in order to reduce
its Speed to 0 before being able to turn around.
• We changed the behavior when opening the Blocked exit of a material flow object. In previous
versions the Line or the Transporter started accelerating again with the Speed that these objects
had before. Now they accelerate starting a speed of 0.
• We limited the Capacity of MUs to 1 million storage places per MU and we limited the Capacity
of Stores and ParallelStations to 10 million places per object to prevent slowing down the
computer by using up too much RAM.
• We enhanced the behavior of the Assembly station. For the setting Attributes > Assembly
table > MU Types the Worker can now deliver mounting parts to the Assembly station without
you necessarily having to connect the Assembly station with the station which provides the
mounting parts.
• We changed the behavior of the method getDestination of the PickAndPlaceRobot. It now also
returns a destination object when it rotates to the destination without transporting a part.
• We removed the view option Enlarge Objects from the General ribbon tab of the Frame.
• We enhanced the behavior of the method removeObserver. You can now also enter void as
second parameter. This deletes all observers which point to nonexisting methods.
• We changed the behavior of the Exit strategy > Carry part away. The Exit strategy will be
executed once only when the part is moved onto the Worker and when Exit control once is
activated.
• We added a function allowing you to add the MaterialsTable to the objects DePortioner and
Mixer with drag and drop.
• We added the fluid objects to the objects which the LockoutZone can control.
• We replaced the text box Workers can beam to the Workplace with the dropdown list travel
mode in the WorkerPool.
Instead of rolling the mouse wheel, you can also use these key combinations:
Ctrl plus + increases the font size
Ctrl plus 0 resets the font size to the standard size of 10 points
Ctrl plus - decreases the font size
• We added horizontal scrolling in the Method Editor by holding down the Shift key and by rolling
the mouse wheel.
• We added the command Show Object to the context menu of the selected object in the source
code in the Method Editor and in the Method Debugger. The command opens the Frame in which
the object is inserted and selects the object in the Frame.
If the selected object references another object, for example with a Variable, the command shows
the referenced object, not the referencing object! The context menu of the Variable in the Method
Debugger also provides the command Show Object.
• You can now add an integer value to a string. This applies to SimTalk 1.0 as well as to SimTalk 2.0.
Example: param obj : object -> string
return obj.Name + obj.XPos
• We added renamed the control structures, compare Insert Control Structure. Note that they
create SimTalk source code.
• We extended the function Auto Complete of the Method. When you insert a function or a Method
with parameters into a Method, Plant Simulation now shows the status bar. The status bar
shows the signature of the function/Method and thus makes entering the required parameters
easier. Plant Simulation hides the status bar again when you type in the closing parenthesis or
when you press the Esc key.
• We replaced the methods getFormatData and setFormatData of lists and tables with the method
copyFormatTo.
• We changed the behavior of the Options (Syntax-controlled Indentation, Show Line Numbers,
View) on the Tools ribbon tab in the Method Editor: When you change one of these settings, this
change now applies to the entire Plant Simulation session for all newly opened Methods.
When you deactivate Toggle Outline in the Method Editor for example, it now remains
deactivated when opening an additional Method or when reopening this Method in the current
Plant Simulation session. These changes do not affect the preferences.
• We changed the behavior when changing the font size in the Method Editor. When changing
the font size with the mouse wheel, this now does not affect the Preferences any more. The
Method only uses the changed font size until you change it the next time or until the end of the
current session for all Methods which you open afterwards. Changing the font size does not
affect any opened Methods at all.
• We changed the behavior when a Method accesses outdated, i.e., no longer officially supported
attributes, methods, and functions. As opposed to previous versions Plant Simulation no longer
shows a message in the Console. Instead, you can use the command Find Outdated Functions
on the Debugger Ribbon Tab to find outdated attributes, methods, and functions.
• We changed the behavior of the TableFile. When you accessed a cell via a column or row index
of data type string, Plant Simulation only matched the case when the Fast index access was
activated. From now on Plant Simulation ignores case sensitivity.
• We changed/enhanced the behavior of the SQLiteInterface. If you do not enter a File Name for
the database, Plant Simulation creates it in memory. This then is the same as if you had entered
:memory:.
• We changed the behavior of the method createNestedList of the CardFile. In methods, which use
SimTalk 2.0 syntax, the method createNesteList does not insert the new sublist between already
existing sublists, but overwrites the sublist without moving existing sublists one row downwards.
• We changed a number of functions of the HtmlReport when you add objects on the Tab Content:
o When the text cursor is located within an object reference ([…]), Plant Simulation opens the
dialog Object Parameters for entering the object parameters of the object within the square
brackets, when you click Add Object .
o When the text cursor is located within an object reference ([…]), Plant Simulation opens the
dialog Select Object preset to the path detected within square brackets, when you hold down
the Shift key while clicking Add Object
o When the text cursor is located within a picture reference ([!…]), Plant Simulation first opens
the dialog Open File and then the dialog Object Parameters for the path within square
brackets when you click Add Image
o When the text cursor is located within a picture reference ([!…] ), Plant Simulation first
opens the dialog Open File Object and then the dialog Object Parameters preset to the
path detected within square brackets when you hold down the Shift key while clicking Add
Image
o When you select a Frame to be inserted, which provides the user-defined attribute
StatisticsObject, the dialog Object Parameters shows the available statistics functions.
• We changed what the function closeAllWindows does. As opposed to previous versions it now
also closes 3D windows.
• We added the functions regex_replace and regex_search to search and replace regular
expressions.
• We added the attributes X, Y, and Z to the one-dimensional arrays which are of data type integer,
real, or length and which have a fixed dimension of two or three elements.
• We changed the behavior of the method str_to_method and we added a second, optional
parameter.
• We introduced SimTalk 2.0. It’s features make programming methods in Plant Simulation faster,
easier, and less error-prone.
When you save a Frame or a folder as an .obj file Plant Simulation now also saves the list of
the assigned MU-Trace-Route-Callback-Methods to the .obj file. This only applies to those
callback methods whose Method objects are also written to the .obj file. If you load the .obj file
into another simulation model, Plant Simulation adds the MU-Trace-Route-Callback-Methods in
the .obj file to the callback methods contained in the model.
Miscellany
• We added the function Find a Command. Enter words and phrases about what you want to do
next and quickly get to features you want to use or actions you want to perform into the text box
Find a Command.
• Plant Simulation now uses the SPLM license mechanism version 8.0.1. For this reason Plant
Simulation now requires the license server version 8.0 or higher.
• We removed the View Option > Show Animation Points of the Frame.
• We removed the Preference/Model Setting > Modeling > Show Animation Points.
• We added the function setVisible to the COM Interface. When Plant Simulation is created as a
COM server it is invisible by default. You can use setVisible to make it visible.
• We enhanced the behavior of the feature Find Outdated Functions on the Debugger ribbon tab:
In addition to finding outdated attributes, methods, and functions in the source code of Methods, it
also finds observers of outdated attributes, for example observers of the attribute ChannelID. For
such observers Plant Simulation opens a window containing a list of all outdated attributes for
the observers. When you double-click an entry in the list, Plant Simulation opens the dialog Edit
Observers for the observed object, as long as only a single observed object exists. If several
observed objects exist, Plant Simulation opens a window with a list of all observed objects. To
open the observer window for the respective object, double-click the respective entry in the list.
• We changed the behavior when you modify the Axes origin X and the Axes origin Y of the Frame.
When you change the axes origin, Plant Simulation now keeps the 3D coordinates and changes
the pixel coordinates. Plant Simulation checks if your changes create allowed pixel coordinates.
It only changes them if that is the case.
• We changed the behavior when you modify the Scaling Factor of the Frame. When you change
the scaling factor, Plant Simulation now keeps the 3D coordinates and changes the pixel
coordinates. Plant Simulation moves the axes origin if your change would create negative pixel
coordinates.
• We changed the behavior when zooming the contents of a Frame: In previous versions you
could hold down the right mouse button and drag a marquee over the objects of interest. Now
you have to hold down Ctrl + Shift and drag a marquee with the left mouse button.
• We changed the behavior of user-defined attribute methods, which are deleted while they are
being executed. Method execution is now terminated immediately, it will not be continued.
Compare the following examples:
o Suppose that an MU has a user-defined attribute method, which was suspended via a
waituntil instruction. Then, the MU is deleted in the Drain, which naturally also deletes its
user-defined attributes. Thereupon the Method is deleted from the list of suspended methods
and method execution is terminated, i.e., the instructions after the waituntil instruction will
not be executed. If the attribute method was called from another Method, execution of this
Method will be continued. When the attribute method had a return value, the value, which
the implicitly existing local variable result had at this point in time, will be returned to the
calling Method.
o Suppose that an MU has a user-defined attribute method, which is called by the entrance
control of a SingleProc. The attribute method in turn calls a Method that is inserted in the
Frame. This Method deletes the MU with the statement SingleProc.cont.delete. Both the
execution of the attribute method and of the Method called by it are terminated immediately.
The return value of the attribute method (or VOID if no return value was declared) will be
returned to the entrance control, whose execution is continued.
• We added the setting Visualization to the tab General of the Model Settings. It sets how Plant
Simulation creates the new simulation model.
• We added the method unshare to the user-defined attributes and to the object Variable.
• We changed the layout of the Tab Importer and integrated the failure importer into it. It now shows
the Sub-tab Processing, the Sub-tab Set-up, and the Sub-tab Failure.
• We replaced the attributes ImporterActive and FailImporterActive with the attribute imp.Active/
failImp.Active. We added the attribute setupImp.Active for the set-up importer.
• We changed the notation for the Tolerance for about equal (~=) comparison. Instead of using
== for the operator, we now use ~=.
• We enhanced the functions Open Origin and Open Class. When you hold down the Shift key
while clicking the buttons, Plant Simulation shows the location of the origin of the object or the
location of the class of the object respectively.
• We removed the setting User interface concept. We do not provide the setting Menus and
Toolbars any more.
• We removed the button Hide All Dialogs from the Window ribbon tab.
• We removed the tab Communication from the dialog User-defined Attributes of the objects.
• We removed support of the graphics formats .ppm and .ppm_raw for the command Import
Bitmap File.
• We moved the user-defined attributes of the object GaOptimization from the Tools menu to the
Tab User-defined Attributes.
• We extended the functionality of the Student License. You now can also load models, which you
created with a Student License in any of the commercial licenses.
• We added new 3D graphics for a number of material flow objects, which represent these objects
more realistically in your installation.
To replace existing graphics in a model, which you created in a previous version of the program,
with the new graphics, select the respective graphic and select Exchange Graphics. Navigate to
the folder 3D > BasicObjects and select the new graphic of the object.
In addition we offer alternative graphics for special applications for the Buffer, the Sorter, and
the Transporter. To use one of it, select one of these objects in the 3D window, click Exchange
Graphics, and select an alternative graphic.
• We extended the functionality of most of the 3D objects to enable you to set if these objects are
an obstacle for the Worker who moves freely within the area. You find the setting Obstacle for
Worker on the Tab Graphics or on the Tab Graphic Settings.
• We added the Tab Graphic Settings for graphics. Here you can set if the graphic is an Obstacle
for the Worker or not.
• We added the Tab Appearance of the Store. Here you can set its configuration for its appearance
in 3D.
• We added the Tab Material to the Worker. You can now add a material to them, just as you can
do for the MUs, which applies to all graphics for which no other material applies. As opposed to
the MUs you cannot use a 2D material for the Worker, when no material is defined, as the 2D
vector graphics material that is required for does exist.
• We added the Tools Menu to the dialog Edit 3D Properties of the Frame.
• We added the button Add Camera to the View ribbon tab. This button replaces the button
Capture Current View in the dialog Path Anchor Points.
• We added new mouse button combinations to move or zoom the scene with the mouse:
• To zoom the scene in Planning View, hold down the Shift key and the right mouse button
and drag the mouse.
• To move the camera backwards and forwards in normal 3D view, hold down the Shift key and
the right mouse button and drag the mouse.
To do this Do this
Move the camera backwards and forwards in Hold down the middle and the right mouse
normal 3D view buttons and drag the mouse
• We added a function for showing information about the open scene. To do so, press the F
key on the keyboard.
• We added CAD Layout Files (*.dgn, *.dwg, *.dxf) to the files types which the command Import
Graphics can import.
• We added the commands Controls and Edit User-defined Attributes to the Context Menu of the
Selected Animatable Object in the 3D Scene.
• We added the command Generate SimTalk Code and Copy to Clipboard to the command View >
Camera Marks.
• The command also copies the corresponding SimTalk code to the clipboard. You can then paste
this code into a Method object to set the material of another graphic.
• We added the buttons Copy the Current Material Settings and Paste a Previously Copied
The command also copies the corresponding SimTalk code to the clipboard. You can then
paste this code into a Method object to set the material of another graphic.
• We added the command Calculate Angles to the context menu of the objects PickAndPlace
Robot and Turntable in the 3D Viewer.
• We added the command Find Object to the Context Menu of the Opened 3D Object.
• We changed how the 3D Viewer inserts materials. You can now also insert a material from the
Clipboard into the Tab Material when the material is not active. Then the 3D Viewer automatically
activates a material that was deactivated before.
• We changed the behavior of the MU Animation of Container and Transporter with matrix
loading space and with automatically generated graphics. The 3D Viewer distributes the MUs
on these objects now automatically and ignores existing MU animation paths.
For the Store the 3D Viewer also distributes the MUs automatically and ignores existing MU
animation paths.
You can activate and deactivate the automatically generated animation graphics jointly with the
automatically generated graphics with the checkbox Auto graphics active on the Tab Appearance
of the MUs or Auto graphics active on the Tab Appearance of the Store.
• You can now subsequently change the settings of a Box, a Shelf, a Barred Area and a Fence
which you insert into your simulation model in version 13. To do so, click the shape with the right
mouse button and select Edit 3D Properties.
• We changed the behavior of the command Insert Rack. The topmost shelf is now included in the
amount of shelves (board count). In the example below the rack has four shelves.
• We changed the behavior of the 3D Viewer when it could not import a Jt file because that Jt file
originated in a not supported Jt version. Now the error message points this out. If you imported
the file with a Method it still returns -1.
• We changed the behavior of a model which you created in 3D Only mode: Now Plant Simulation
moves the axes origin, if this is possible, when inserting or moving an object would create invalid
pixel coordinates. In previous versions Plant Simulation moved the object in such a way that
the pixel coordinate was located within the valid area and thus changed the 3D coordinate if an
invalid pixel coordinate would have resulted.
• We changed the behavior of a model which you created in 3D Only mode. Then the dialog Show
Attributes and Methods does not show these attributes and methods of the objects any more:
Method/Attribute
All objects
maximizeWindow
XPos
Method/Attribute
YPos
setPosition
setXYWH
getXYWH
Icons
setCurrIconFromClipboard
putIconToClipboard
setIconFromFile
saveIconToFile
createIcon
deleteIcon
CurrIcon
CurrIconNo
existsIcon
turnIcon
resetIcon
mirrorY
mirrorX
inheritSizeAndOrientation
setPixel
getPixel
CurrIconTransparent
redraw
openImg
openImg
getIconSize
setIconSize
ObjectAngle
ObjectMirrored
getRefPoint
setRefPoint
getBoundingBox
StatusWithIcons
RotateAroundRefPoint
RotateMUs
NumAnimationEvents
getAniPoints
setAniPoint
setAniLine
moveAniPoint
delAniPoint
delAniPoints
Method/Attribute
linkAniPoint
unlinkAniPoint
DisplayPanel
Frame
AxesOrigin
drawLine
drawRectangle
drawEllipse
drawText
eraseLayer
eraseAllLayers
redraw
setXYOrigin
rearrange
setBackgroundImage
copyBitmapToClipboard
selectContents
BackgroundColor
ScalingFactor
ZoomFactor
ShowObjectNames
ShowObjectLabels
ShowDisplayPanels
RepresentationMode
ShowObjectLabels
setRepresentationArea
• We changed the behavior when inserting a new graphic. When you select an invisible graphic
group as the insertion target, Plant Simulation now makes this graphic group visible. When
the visibility of the respective object was inherited, Plant Simulation asks if you want to cut
inheritance of the graphics.
• We changed the label of the check box Hide this object in the representation of the location
on the Tab Graphics to Exclude from Show content of the location.
We renamed the attribute _3D.HideInRepresentationOfLocation to
_3D.ExcludeFromShowContentOfLocationon.
• We renamed the tab Auto Graphics of the dialog Edit 3D Properties to Tab Appearance and
changed some of its functions:
o You can now define materials for all MUs, not only for MUs with an automatically generated
graphic.
o We changed the group labels Override 2D vector graphic color and Assign a material
to Material active.
• We changed the behavior of the 3D Viewer. The dialog Edit 3D Properties can only be open for
an object or for a graphic once, not several times simultaneously.
• We changed the behavior of the 3D Viewer. When you clickEdit and Apply on the tabs MU
Animation, Self Animation, or Camera Animation, paths now remain displayed.
• We changed the behavior of the 3D Viewer. The tabs MU Animation, Self Animation, or
Camera Animation now show the path type Generated in the column Type instead of the
column Generated for animation paths which the 3D Viewer created and which you cannot edit.
• We changed the behavior of the 3D Viewer. To confirm the current changes to an animation path
in the dialog Edit Path Anchor Points, you now click the new button Apply in the dialog. In case
the path is displayed at the moment, this also updates the visualization of the path.
• We changed the definition of the Reduction level when you optimize a graphic.
• We changed the behavior of the 3D Viewer. You now enter the setting Screen coverage threshold
in pixels instead of one-hundred-thousandth of the window area.
• We simplified the layout and the settings in the dialog Optimize Selected Graphic. You can now
use all of the provided optimization strategies at the same time instead of one setting only as
in previous versions.
• We simplified the layout and the settings in the dialog Create Rotation Path. You can now define
the path via the r instead of the start position. The 3D Viewer now automatically computes
the number of steps for the path.
• We simplified the layout and the settings in the dialog Create Locations.
• We changed the behavior of the 3D Viewer. When playing a camera animation in the dialog
Fly on Path, the tab Camera Animation of the dialog Edit 3D Properties, or via SimTalk
commands, the 3D Viewer automatically terminates the camera animation when reaching the end
position. You can then edit the camera setting again with the mouse.
• We changed the behavior of the 3D Viewer. You can now define vertical curve segments for a
length-oriented object. This only works when the tangential angle is 0° for arriving and departing
segments in all directions.
• We changed the behavior of the 3D Viewer. You can now insert vertical curve segments into
polycurves with the mouse. To do so, proceed as follows while inserting curved object, compare
Edit a Curved Path with the Mouse:
o Press and hold down the Up arrow on the keyboard to insert a curve pointing upwards in the
Z dimension. Press and hold down the Down arrow to insert a curve pointing downwards
in the Z dimension.
o Enter the radius and the angle of the segment into the dialog Edit Parameter of Curve.
• We changed the behavior of the 3D Viewer. Scaling of a 3D object now only applies to its own
graphics, not to the simulation objects contained within. Contained animatable objects, on the
other hand, are scaled as they are part of the graphic. This way neither the visible contents of
a scaled Frame nor MUs located on scaled objects are scaled. The graphics of an object are
now shown on each hierarchy level according to its scaling, ensuring that the proportions which
you selected are visible everywhere.
• We changed the behavior of the 3D Viewer. When you load graphics, except in the
format s3d, into your simulation model, the 3D Viewer now removes suffixes in the format
.<extension>;<no>;<no> from the imported node names. This matches the naming conventions
which TcVis shows when loading the same files. In addition the 3D Viewer now automatically
removes empty group nodes.
• We changed the behavior of the 3D Viewer. You can now also activate the Planning View for
objects other than Frames and folders.
• We changed the behavior of the 3D Viewer. The setting if a 3D window shows shadows or
not is now saved to the model file.
• We replaced the button on the tab Graphics of the dialog Edit 3D Properties with the
button .
• We removed the setting for activating inheritance of the position for the class of an object
in the dialog Edit 3D Properties.
In Tecnomatix Plant Simulation 12.1 we changed or improved these features of the 3D Viewer:
• We enhanced the functionality of the length-oriented objects in the 3D Viewer: You can now
activate or deactivate the connection of the rotations in 2D and 3D independent of the connection
of the positions.
• We enhanced the Drag-and-Drop function in the 3D Viewer: You can now duplicate 3D objects
and graphics in 3D windows with Drag-and-Drop. When you drag a graphic from one 3D window
to another or when you want to duplicate generated graphics, the 3D Viewer allows you to select
the graphics group to which it adds the new graphic. If you do not select a graphics group, the
3D Viewer adds it to the graphics groups of its original object.
• We enhanced the Drag-and-Drop function in the 3D Viewer: You can drag a 3D object or a 3D
graphic into the Method editor and drop it there to insert the path to this 3D object or 3D graphic.
• We enhanced Editing path anchor points in the dialog Path Anchor Points. You can now also
double-click the row of the anchor point, whose values you want to change in the list in the dialog.
• We integrated the setting for selecting the Graphic group into the dialogs for creating shapes.
• We changed what the attribute _3D.Position does. It now shows the local positions for MU
instances which are calculated by the animation. It now also is available for MU classes.
• We changed how you define an extrusion profile with the attribute _3D.ExtConfiguration.
• We added the attributes _3D.AniRotationAxis and _3D.AniRotationCenter. They now define the
rotation axis and the rotation center used in the method _3D.<Type>Animations.scheduleRotation.
In previous versions you used the attribute _3D.Rotation to set the rotation axis and the rotation
center. This resulted in the following changes:
o The attribute _3D.Rotation now only returns an array of four values, excluding the rotation
center.
o The Tab Transformation in the dialog Edit 3D Properties does not contain settings for the
rotation center any more.
o The Tab Self Animation now has settings for the rotation axis and for the rotation center of
the object.
o The Turntable now uses the rotation center you set on the tab Self Animation. In previous
versions it used the center you set in the attribute _3D.Rotation.
o An anchor point of an animation path of type Lines, compare Edit Path Anchor
Points, now only contains 8 instead of 11 values. You can still set paths
with 11 anchor points in the methods _3D.<Type>Animations.setTable and
_3D.<Type>Animations.<AnimationPathName.setTable, they will ignore the three values
for the rotation center though. The methods _3D.<Type>Animations.getTable and
_3D.<Type>Animations.<AnimationPathName.getTable now only return 8 instead of 11
values.
• We changed how the 3D Viewer handles the background color of 3D Frames. As long as you
do not set a model-wide background color, the 3D Viewer does not save a background color in
the model but uses the predefined color our programmers set. When loading models which
were created in previous versions of the program, the 3D Viewer interprets these background
colors as the predefined background color.
• We replaced the icons of the state graphics in the dialog Show 3D Graphic Structure. They now
are spheres with the color matching the color of the respective state in 2D.
o We removed the setting External graphic groups. Now external graphics groups always
represent their owning 3D object except those which are not marked visible.
o We renamed the setting Contained objects and internal graphic groups to Show content
and moved it to the Tab Graphics.
o The removed the check box Hide this object temporarily in all 3D windows. You can still
click Hide Object/Unhide Objects on the View ribbon tab.
• We removed the function Show Coarse Grid and renamed the function Show Fine Grid to
Show Grid.
• Miscellany
As the program changed at a number of places, you might have to adapt simulation models you
created in previous versions of Tecnomatix Plant Simulation, when you open them in Tecnomatix
Plant Simulation 12.
Back to What’s New
• The most important and noticeable new feature in Tecnomatix Plant Simulation 11 TR 2 is
the Ribbon Bar.
It replaces the menus and toolbars which the main program window and the object windows in
previous versions of the program offered. In this version you can still use Menus and Toolbars
though.
Along with the ribbon bar, we also introduced context menus with the mini toolbar and with
symbols for most of the commands on the context menu itself.
• We further integrated the 3D Viewer into Plant Simulation 2D. In most cases the 3D Viewer now
behaves the same as Plant Simulation 2D.
• We added the command Open Without Control to the context menu of an object in the Frame.
• We activated the command State Icons/LEDs for the Frame. In previous versions you could only
activate it with the attribute StatusWithIcons.
• We added the method importExporter. You can use it in the Request control of the importer.
• We added the check box Exit control once / ExitCtrlOnce to the Exit control.
• We added the optional parameter EndSim to the method stop of the EventController.
• We added check box Part can only enter on cycle to the Cycle.
• We added the settings Relative converting point for the length and Relative converting point for
the width to the Converter. We also added the corresponding attributes RelConvertingPointL
and RelConvertingPointW.
• We changed the behavior of the point-oriented material flow objects which can accept several
parts. When several MUs were moved to a ParallelProc, a Store, a Container, a Transporter with
a matrix loading space, or a Worker, the arrangement of the MUs on the object sometimes was
chaotic, i. e., the MUs were oftentimes not placed from top left to bottom right onto the free
storage places on the object. From now on the MUs are placed onto the free storage places from
top left to bottom right on the object.
This change also prevents the following problem: When all MUs on the object were to exit at the
same simulation time and when the object was failed before the MUs exited, the exit order of
the MUs sometimes changed once the failure was repaired.
• We changed the behavior of the Converter. When an MU is moved from a Converter to another
object with the methods insert, move, or transfer specifying an index is not allowed any more.
Plant Simulation ignores the specified index and moves the MU onto the target object designated
in the target control.
• We changed how to enter the Booking point length, the Booking point width, and the Booking
point height of the mobile objects. In previous versions you entered these as an absolute value for
the length, width, and height. Now you enter the values as a relative value between 0 and 1.
When you change the dimension of the MU, Plant Simulation automatically changes
the absolute position of the booking point because the existing relative position is
preserved. When you then access the attributes BookPnt, BookPntH, BookPntL, and
BookPntW, Plant Simulation now returns different values than in previous versions.
When you set the absolute booking point with the attributes BookPnt, BookPntH,
BookPntL, and BookPntW, the relative position of the booking point will be
calculated with the currently existing length/width/height of the MU. When
you subsequently change the length/width/height of the MU, this results in a
different position of the booking point, as the one which you previously set wit
the attributes.
We recommend to use the attributes BookPntHRelative, BookPntLRelative, and
BookPntWRelative from now on.
• We changed the behavior of the Store. When you drag a Method onto a Store and drop it
there, Plant Simulation now enters this Method as the Entrance control not as the Exit control
as before.
• We changed the order in which the Exit control and the Release control of the Importer are
called when you defined both: In previous versions the exit control was called first and then
the importer release control was called twice. Now the importer release control is called
first and then the exit control is called once.
• We changed the behavior when you selected Times > Set-up time > Matrix(Type) or Formula.
When a set-up time of 0 results, Plant Simulation does not start setting up, in particular it does
not request Workers. The type of part for which the station is set up will be set to the new type
of part immediately.
• We changed how you define a polycurve (Tab Curve) in Plant Simulation and in the 3D Viewer:
• When you insert a straight segment after a curved segment, Plant Simulation now always
enforces a tangential angle of 0°.
• When you create a new polycurve by clicking on an existing polycurve, Plant Simulation now
uses the end angle of this polycurve as the start angle of the new polycurve. You can prevent this
by holding down the Alt key.
• We changed the behavior of the setting setup After n parts and setup after last part. In previous
versions a new Worker / Exporter was requested each and every time. Now Plant Simulation
uses the Worker / Exporter, who just finished working.
• We made the argument of data type table of the methods brokerStat, getOfferedServices,
getOpenImporters, getSatisfiedImporters, and serviceStat of the Broker optional.
• We made the argument of data type table of the methods typeStatistics and
typeStatisticsCumulated of the Drain optional.
• We changed the behavior of the Source when you select Time of creation > Interval adjustable:
When you change the interval before the next time of creation, an existing CreateMU event will
be deleted and will be scheduled anew with the interval starting from the time of change.
• We extended the functionality of the method move of the moving objects. You can now also
enter an array of objects to which the MU tries to move. When none of the objects you entered
as members of the array can accept the MU, it will be entered into the blocking list of each
of the objects that are members of the array.
• We changed the behavior when you Merge Method classes. When the Method to be replaced
was being executed while merging, for example because of the Method was suspended or when
it was stopped at a breakpoint in the Debugger, the old program code was executed again when
method execution was continued. The Method then behaved like a deleted attribute method,
i.e., relative paths could no longer be evaluated correctly. The Method debugger then opened
with an error message.
When the replaced Method was continued after merging, the new program code will now be
executed and relative paths will be evaluated correctly.
• We made vector graphics mode, compare the Tab Graphics, the default setting for the mobile
objects. The default vector graphic of the Entity looks like this , the Container looks like this
,and the Transporter looks like this .
• We changed the name of the command Frame > Modify Structure to Lock Structure.
• We changed the return value of the attribute Speed of the conveying objects, such as the Line
and the Transporter. When you enter -1 for an infinite speed, the SimTalk functions and the dialog
Show Attributes and Methods now return or show -1. Previous version returned/showed 1.#INF.
The current speed still returns/shows 1.#INF as the function returns negative values when
the object moves in reverse.
• We changed how the Source creates parts. When you select the Operating mode > Blocking,
the Source now stops creating parts when the simulation time has reached the Stop time. In
previous versions it stopped creating parts when the planned points in time for creating parts
were reached.
You can now also clear Blocking, i.e., activate non-blocking mode, and enter an Interval of 0.
• We changed how Plant Simulation calls the Pull control of the Converter. It now also calls it
for parts that move onto it moving in reverse.
• We changed how the Container shows its state. Now a pause always has precedence over a
failure. This also applies for statistics.
• We changed how Plant Simulation computes the next event for MUs. From now on it computes
the event before calculating the event of the following MUs. In previous versions this was not
always the case for collided MUs. This then could lead to a changed order of simultaneous
events of two MUs after they collided.
• We changed how Plant Simulation moves parts on from an Interface or a ParallelProc with a Pull
control if this Interface or ParallelProc only has a single successor. The setting Exit Strategy >
Strategy > Blocking has no effect from now on. Plant Simulation enters all MUs into the blocking
list of the simulation successor again as it did in version 10.1.
• We enhanced drag-and-drop for a Frame class on a Connector in a Frame. When that Frame
contains a suitable Entrance Interface and a suitable Exit Interface, Plant Simulation inserts an
instance of the Frame between the end objects of the Connector and adjusts the Connectors.
• We added the read-only attribute AvailableForMediation to the Exporter and to the Worker.
• We changed the behavior of a failed Worker. They now stop instead of walking towards their
destinations as they did before.
• We changed the behavior of the Worker. In previous versions a Worker, who picked up parts
to carry them to the target station, forgot the dwelling time after a failure of the station and
delivered the parts immediately after picking them up. Now it also considers the dwelling time
after a failure.
• We changed the behavior of the method engage of the Broker. Up until now it did not interrupt
Importers with a lower priority although the method testImportFor also returned Exporters whose
current job had a lower priority.
• We made the argument of data type table of the method getStatisticsTable of the Variable
optional.
• We changed how Plant Simulation executes observer methods: When an observer and another
control were triggered at the same time, until now the control was executed first and when
then the observer was executed. We changed this that now observer is called first and only
then the control is called.
The previous execution sequence had the disadvantage that calls of an observer method could
pass each other. If the control changed the observed attribute anew, the observer was triggered
again anew, i.e., the control was interrupted and the observer was executed with the second
value change. Then the execution of the control was continued and only then the observer was
executed with the first value change.
With the new, changed execution sequence this problem cannot occur any more, as the observer
with the first value change is executed before the control. In addition, the new execution
sequence has the advantage that observers now behave more similar to suspended methods,
which always had precedence over controls and observers.
• We added the return value of data type boolean to the method setCursor of the TableFile.
• We renamed the command Highlight Void Cells on the List ribbon tab to Highlight Empty Cells.
• We changed the behavior of built-in methods which expect a list or a table, for example
putAttributeNamesIntoTable. In previous versions these could only be called with an instantiated
list or table, i.e., you had to tell Plant Simulation to create it first:
Example: local tab: table;
tab.create; -- was required in the past
SingleProc.putAttributeNamesIntoTable
From now on you can also pass a non-instantiated list or table. Plant Simulation then creates
it automatically:
Example: local tab: table;
SingleProc.putAttributeNamesIntoTable
• We changed the behavior of the Trigger: For a TriggerStart event Plant Simulation does no
longer assign the value to the attribute, which corresponds to the start time (in most cases the
first value in the Values table), but the previous value on the table. If this value does not exist,
because the first row in the values table applies to the start time, Plant Simulation assigns
the Default value.
• We removed the button Attributes from the tab Actions of the Trigger.
• We changed the behavior of the AttributeExplorer. It no longer adds Connectors when you drag
connected objects onto it and drop them there. It also removes empty rows from the tables on its
tabs when you click OK or Apply .
• We added the menu command Outlining to the Edit menu of the Method.
• We added the text box Decimal places and the attribute DecimalPlaces to the Variable.
• We added the statistics values Time to set single item, Time to get single item, Time to set
multiple items, and Time to get multiple items to the object OPC.
• We added the return value -1 to the method selectSyncFromDialog of the Teamcenter interface.
It tells that the user closes the dialog by clicking Cancel.
• We changed the behavior of Lists and Tables, which you opened in the foreground as a dialog
with the method openDialogBox.
o Changes you make to the contents of a cell are now displayed immediately in that cell.
o The list object now also accepts the decimal point, in addition to the comma, for floating-point
numbers and times.
• We removed support of the methods closeFile, openFile, readFileRow, and of the attribute
FileCursor of lists and tables. You can use the method readFile instead.
• We removed the HtmlWizard. The HtmlReport now provides most of its functionalities.
• We added the object HtmlReport. It replaces the Report, which previous versions of the program
provided.
• We changed the behavior of the objects Button, Checkbox, and Drop-Down List. When you enter
a Height of more than 30 pixels or drag the border of the icon of the object, Plant Simulation uses
a larger font to display their label.
• We changed the behavior of the object Comment. You no longer have to click Apply after
activating Save the contents in rich-text format to actually activate the feature.
• We added the text box Interval and the attribute YGridLineInterval to the object Chart.
• We added the menu command Use Metric Prefix and the attribute UseMetricPrefix to the object
Chart.
• We added the setting Right, stacked to the drop-down list Legend of the object Chart.
• We added the attribute Items to the object Drop-Down List. It replaces the methods getItems and
setItems.
• We added the method max for one-dimensional arrays with a numerical data type and with
the data type string.
• We added the method min for one-dimensional arrays with a numerical data type and with
the data type string.
• We added the method sum for one-dimensional arrays with a numerical data type.
Miscellany
Tecnomatix Plant Simulation 12 provides a number of new and improved features.
• We added the topic Available Features of the Individual Licenses to the Online Help
• We removed the buttons Previous Icon and Next Icon from the Edit ribbon tab of the Icon
• We removed the options to show or hide Print messages, Info messages, and other messages
under File > Preferences > User Interface > Console filter. These messages are now always
active.
• We removed the setting for entering the size of the toolbox icons from File > Preferences >
User Interface.
• We added the function Take preferred position to the Cross Sliding Car.
• We changed which icon of an object Plant Simulation displays in the Toolbox by default. In
previous versions it always displayed the first icon, i.e., the icon with the number 1. It now
checks if an icon named ToolboxIcon exists. If this is the case, it displays this icon, if this is not
the case, it displays the first icon.
• We replaced the button Open EventDebugger on the Home ribbon tab with the button
Real-Time .
• We changed the order in which the Importer request control and the Exporter request control,
which you defined on the Tab Controls of the Broker, are called.
o When you defined Exporter and Importer request controls, the Exporter request controls
will now be executed first. This way you can make the Worker follow the part when the part
moves to the next station. This causes changed behavior as compared to modeling without
controls. Without controls, the Worker is brokered for the new station in the Workerpool.
o When several Importer request controls are executed at the same time, for example
because an Exporter is released and when several open Importers exist, the sequence of the
controls now matches the sequence of the Importers in the list Open Importers. This way
brokering of Exporters now behaves identical when you model with our without controls.
• We added the VSM (Value Stream Mapping), Shop, and Assembly libraries to the libraries
which you can borrow in the dialog Borrow Licenses.
• We added the functions Encrypt Model File and Restrict Permission to the Tools Menu.
all user-defined attributes of data type method, which inherited their source code from a not
encrypted Method class or user-defined attributes of data type method, from being encrypted
when you called the command.
• We added the tab 3D to Tools > Preferences and the tab 3D to Tools > Model Settings. It
replaces the 3D preferences which you could select under Tools > 3D Preferences in previous
versions of the program.
• We added the setting User interface concept to Tools > Preferences > User Interface. You
can select if you want to show menus and toolbars in the Plant Simulation user interface or
if you want to use the ribbon bar.
• We integrated the 3D Library into the Class Library in the main program window. You find
information about the 3D structure of the selected object in the window Show 3D Graphic
Structure.
• We changed the sort order of the interaction controls, which you defined for an object, on its
context menu in the Frame. Thecontrols are sorted now alphabetically.
• We changed how you can select the currency you want to use in your model. In addition to
selecting it, you can now also enter it directly into the drop-down combo boxCurrency under
Tools > Preferences > Units.
• We modified the function Print for printing the contents of a Frame or for printing the source code
of a Method. It now shows the last selected printer when you print one of the above.
• We removed the button Switch Console Messages On/Off from the Console window.
When you display the Console, Plant Simulation now records messages, when you hide it, it
does not record messages.
• We changed how Plant Simulation shows on the labels of the tabs of minimized windows on the
tab bar. The length of the displayed label now depends on the number of displayed tabs and
the width of the program window as well as the median width of a character of the font used. If
the tab is too narrow, Plant Simulation abbreviates the displayed object path, just like it does in
the title bar of the object window, by showing an ellipsis … The tooltip always shows the entire
path though even if a window is minimized.
• We changed the behavior of the method getLibraryInfo. The fourth optional parameter now
designates the file path of the library file (.lib).
• We added the optional parameter Password to the method loadModel of the COM Interface.
• We added a number of topics to the chapter Modeling in the 3D Viewer of the Step-by-Step Help.
• We added the command Show Point Clouds to the View ribbon tab of the 3D Viewer.
• We added the Tab Point Cloud to the dialog 3D Properties of the Frame. We also added the
corresponding Built-in Attributes for Point Clouds of the Frame.
• We added the Tab Graphic Sequences to the dialog 3D Properties of the Worker.
• We added the command Edit 3D Properties to the Context Menu of a State Graphic.
• We raised the number Camera Marks, which you can define, from 20 to 40.
• We enhanced the Paste command. It now pastes the object with an offset to the original position.
• We added the command State Graphics to the Context Menu of a 3D Object. This way you can
create state graphics that match the LEDs in 2D. These replace the state objects of previous
versions.
• We added the button Add Rotation to the Tab Transformation of the dialog Edit 3D Properties.
• The 3D Viewer now uses anti-aliasing for displaying objects in the 3D scene.
• We switched to version 8.1 of the Direct Model engine for displaying 3D. We strongly recommend
to update your graphics card driver to make sure that your 3D model will be displayed correctly.
Update the graphics card driver from the website of the manufacturer of your graphics
card to make sure that you receive the most up-to-date drivers.
• We removed the tab Connect data from the dialog Edit 3D Properties. We moved the functions
Connect 2D and 3D positions and Connect 2D and 3D rotations to the Tab Transformation.
• We removed the buttons Accept Rotation and Accept Scale (and the corresponding attributes
_3D.acceptRotation and _3D.acceptScale ) from the Tab Transformation.
• We removed the button Reset Camera from the View ribbon tab.
• We changed the behavior of the 3D Viewer when an object camera is active, which you attached
to an object with the command Attach Camera:
• You cannot change the view as long as the view of the object camera is active. To return to
interactive navigation mode, you have to remove the camera by clicking Detach Camera or
switch camera mode by clicking Toggle Camera.
• The 3D Viewer removes the camera, when you delete the object to which it was attached.
Removing an object camera automatically resets the view.
• We added the function Internal to the context menu of the dialog Show 3D Graphic Structure.
It determines if the selected graphics group will be used for visually representing the object to
which the graphic belongs.
• We added settings for entering the object coordinates for objects you create with the commands
Make Animatable Object and Make Simulation Object.
• We added the settings Animation object and MU side to attach to the tab MU Animation of the
dialog Edit 3D Properties.
• We adjusted the drag-and-drop function of the 3D Viewer. When you drag something onto a
3D Viewer window this now has the same effect as when you drag something onto a Frame
window in 2D.
• We removed the function Connect 3D Viewer and the corresponding SimTalk functions. You
cannot run the 3D Viewer without a connection to Plant Simulation any more.
• We removed the menu command View > Hide > Unhide Scene Graphics as you cannot hide
individual graphic groups any longer with the command Hide.
If you want to change the visibility of individual graphic groups of the selected object,
for example temporarily while modeling, you can select the check box Visible on the
context menu of the dialog Show 3D Graphic Structure or on the Tab Graphics >
Visible of the dialog 3D Properties of the object.
This setting is, in contrast to the command Hide Object, permanent and applies to all 3D
windows which contain the object.
• We removed the check box Show Graphics under File > Preferences > 3D > View Settings as
you can now define graphics to be internal or external graphics.
Note that graphics of models, which you created in previous versions of the program, initially are
treated as external graphics. As Show External Graphics now always is deactivated by default
when you open a model, you might have to define some graphics as being internal in your old
models so that these look the same as before.
• We removed the check box Select Children under File > Preferences > 3D > View Settings.
• We removed the tab 3D Library from the program. We integrated the 3D Library into the Class
Library and replaced parts of its functionality with the dialog that the command Show 3D Graphic
Structure of the selected object in the Class Library opens. The context menu command Show
Graphic Structure in the 3D scene window shows the same information. So does the button
Show Graphic Structure in the dialog 3D Properties of the object.
• We moved the settings for the Grid from the Tools menu to the View menu. We also simplified
the settings.
When you open the 3D Viewer, the grid in the scene window looks like this:
When you insert and move an object towards the borders of the grid, it automatically extends in
that direction. The grid always expands or shrinks to show all objects in the scene.
• We changed the functionality of the command Edit > Attributes. You can now only view them,
you cannot edit them any more. We removed the command Tools > Attributes > Viewer.
• We changed when the program offers MU animations in the 3D Viewer via SimTalk. They are
now only offered for those 2D objects which actually can accommodate MUs or Workers.
• We changed how you can paste graphics. You cannot paste graphics into the selected graphic
in the 3D scene window any more. Instead, you can only paste the graphic into the graphic
group of the selected object in the 3D scene window. You can now paste graphics in the dialog
Show 3D Graphic Structure.
• We added a new feature: The 3D Viewer can now also show the icons of most of the objects,
which are not relevant for 3D, such as the information flow objects, in the 3D scene. To do so,
double-click the icon of the object, for example of the TableFile, in the Toolbox and select Tools >
3D. Select the check box Create in 3D. When you then insert an instance of this object into the
3D Scene, it shows the icon of the object. You can then click the icon with the right mouse button
and select Open 2D Counterpart to open the dialog of the object in 2D.
• We added the Tab Auto Graphics for MUs to the dialog 3D Properties.
• We added the menu command Optimize Selected Graphic to the Edit Menu.
• We added the menu command Make Simulation Object to the Edit Menu.
• We added the functions Show Fine Grid and Show Coarse Grid to the toolbar
3D Modeling.
• We added the submenu commands Cancel Recording, Pause Recording, and Finish Recording
to the Tools Menu.
• We added the menu command Edit 3D Properties to the context menu of the Frame in the
Class Library.
• We added the menu command Edit 3D Properties to the context menu of the dialog Show
Structure in the Class Library.
• We enhanced the way you can select objects in the 3D Viewer. Just like in Plant Simulation 2D
you can now drag a selection rectangle around the objects you want to select. When you do not
hold down a modifier key, dragging a marquee cancels an existing selection. When you hold
down the Shift or the Ctrl key, the objects within the marquee are added to the existing selection.
• We changed the version of Direct Model on which the 3D Viewer is based on to Direct Model
8. For it to work correctly driver version 8.911.3.3 or higher has to be installed for AMD FireGL
and FirePro graphics cards.
• We changed the JT format version when saving models containing a 3D part and when saving
.s3d files. We now use version 10.0. When exporting JT files we use version 9.5.
• We changed when you can model in the 3D Viewer. It now only works when a connection
between Plant Simulation and the 3D Viewer has been established and is active.
• We changed how you can cancel moving an object in 3D while holding the left mouse button
down and dragging the mouse. To do so, press the Esc key, just like you do in 2D. Each action
with the mouse or keyboard keys, which transforms an object or a graphic, is applied as soon as
you release the mouse button or the keyboard key.
• We removed the menu command Background Color from the Tools Menu. You can now
change the background color of each Frame on the Tab Background Color in the dialog 3D
Properties. As opposed to previous versions, you can now also assign white as the background
color.
We also added the corresponding attributes _3D.BackgroundBrightness and
_3D.BackgroundColor.
• We renamed the menu commands Tools > Import Geometry and Tools > Export Geometry
to Tools > Import Graphics and to Tools > Export Graphics.
• We adjusted the position and the dimension of the racks and the conveyors in the library High
Bay Warehouse (HBW) so that no gaps appear when you insert them into your model.
• We enhanced the functions of the object Warehouse Management System (WMS) in the library
High Bay Warehouse (HBW).
• We add the check box Use product groups to the Tab Statistics of most objects.
• We added the object Rework. This was necessary to allow Plant Simulation to identify the correct
Interface then connecting the object using for example the material flow connector or for example
the [information flow connector.
You can use the object Rework object to model a reworking process within your value stream
processes.
• We added the object LeadProcess. You can use this processing object to simulate a lead time
and a cycle time. First the product has to spend the lead time for processing. The products
then leaves the object using the cycle time. If the lead time is the same as the cycle time, the
LeadProcess behaves like the object Process.
• We added the object ScheduleBox. You can use it to define a list of production orders which will
be transferred to the processing object connected with the ScheduleBox.
• We removed the object Analyzer from the library. You can use object FlowGrade instead.
• We modified the behavior of the object ProcessIndexed. The processing time is now defined
again during the initialization phase. This fixed a problem which sometime prevented the
processing time from being set to a fixed time.
• We modified the behavior of the object UtilizationAndStock. Its display can now be closed with
one click.
• We fixed a bug in the object ProcessAssembly, which occurred when you double-clicked into the
table of the sub-products.
• We modified the behavior of the object Check. It now checks if there are more than one object of
type FIFO/Transport is located in front of a ProcessAssembly station. Only one object of type
FIFO/Transport is allowed.
• Process_indexed
We changed the statistics evaluation.
• Inventory
We fixed a bug that occurred when closing the edit table.
• Check
o We changed the behavior of the object. It now checks if all connections are VSM Connections.
o We changed the text of some error messages to make them easier to understand.
• MRP
We fixed a bug that occurred when you modeled rework processes without using a Rework
Connector.
• Kanban
o We revised the Heijunka functions. You cannot enter any values into the time slot after the
last time entry any more.
o We extended the Heijunka function. You can now define any value for the interval of the
Heijunka board.
• Customer
We extended the functions of the object. You can now directly connect the Customer with an
Information Connector with a Supermarket. In this case, the Customer orders the products from
the Supermarket and the Supermarket handles the production of the products.
• Supermarket
We changed the behavior of the object. When products arrive at the Supermarket, and the
order is finished, it now checks if the reorder level has been exceeded. If this is the case, it
creates a new order.
We extended the functionality of the object. You can now also define Parts per Kanban Card
as 1 part. If you defined scrap or rework in the line where the Kanban parts are processed,
this will also be treated correctly. In a Kanban production line you can now define XBP>1 and
XBP<1. Both cases will be treated correctly.
o You can now use a Supermarket for ordering parts from the Supplier.
o A Kanban object can also order parts from the supplier (Supplier-Kanban ).
o You can now also export the delivery days and the data for cyclical delivery.
o We added a chapter to the help of the Supplier object in which we demonstrate how to use
the different functionalities.
• We added the object EPEI. It computes the EPEI value of all processing objects in your value
stream mapping model.
• We redesigned the object Check. Now the consistency check of the objects PPS and Check
use the same functionality.
• We added help for the Value Stream Mapping library to the Tecnomatix Plant Simulation Online
Help.
• We extended the functionality of the object DataExchange. It now also stores the Heijunka boar
of the object Kanban as well as the contents of the table of the Kanban box.
• Note that because of these changes is no longer possible to read in Excel files created with older
versions of the value stream mapping library.
• Within descriptions in the main text on the help pages the names of objects begin with an
upper-case letter and are italicized, for example ParallelProc, SingleProc, etc. In the Online Help,
the italicized term sometimes is a link to an object, for example ParallelProc.
• Names of methods begin with a lower-case letter. Each new expression after that begins with
an upper-case letter (lower camel case). Methods are italicized, for example absSimTime,
dataTypeColumnIndex, etc. In the Online Help, the italicized term sometimes is a link to a
method, for example absSimTime.
• Names of attributes begin with an upper-case letter. Each new expression after that begins with an
upper-case letter (upper camel case). Attributes are italicized, for example CreationTableActive,
ReferenceTime, etc. In the Online Help, the italicized term sometimes is a link to an attribute, for
example CreationTableActive. Click the link to open that topic in the Online Help.
• Data types of methods and attributes are italicized, such as integer, string, boolean, etc.
• When you get to a command by selecting a sequence of steps, we use this convention:File
> Model Settings/Preferences > Simulation > Maximum Number of Samples. To set the
maximum number of samples for probability distributions, select the File menu, select the
command Model Settings/Preferences, click the tab Simulation in the dialog that opens, go to
the text box Maximum Number of Samples and type in a number.
• For commands, such as Close Model and dialog items, we use bold face.
• For commands which you enter, for example into Method objects, we use the monospaced
font Courier.
• Blue terms are cross references, for example Dialog Window of the Interface.
These conventions only apply to the Online Help. The internal programming language
SimTalk does not distinguish between upper- and lower-casing for the names of methods
and attributes which you enter into the source code of your Method objects.
The Tecnomatix Plant Simulation Online Help is fully integrated into the program. You can always
open the help by clicking the button on the menu bar. You can also open the help without a
connection to the program by double-clicking the file PlantSimulationENU.chm in the folder Help in
the installation folder.
The language of the Online Help depends on the user interface language of Plant
Simulation. When you start Plant Simulation with a German UI, it opens the German
Online Help.
The Online Help provides these topics for Plant Simulation in the following books:
• What's New describes the new functions of the current and of the previous two releases.
You can also open the description of the new functions by clicking the button What's New on
the Start Page.
• The Step-by-Step Help describes how to solve modeling tasks that you are facing in your
everyday work day.
• The Reference Help describes the objects which the tabs on the Toolbox provide. The objects are
grouped just like they are grouped in the program itself in the Toolbox and in the Class Library.
• The Add Ins Reference Help describes the functions of the add-in programs that you can
purchase.
You can browse through the help with the buttons , just like you would leaf through a printed
book.
In the Plant Simulation Online Help you can:
Open help without displaying a particular topic
To open help for the selected object in the Frame, click on the ribbon bar.
Or press the F1 key on the keyboard.
The first topic describes the object as such. If we also have a sample model in the Example Models
collection, we also mention that here.
The Related Topics list all topics which are of interest for the current topic. The topics themselves
are extensively cross-referenced, showing for example how and for which purposes you can use
the object.
Under SimTalk we list the methods/read-only attributes/attributes which correspond to a dialog item.
You can switch between the description of a dialog item and the respective SimTalk function. To do
so, click the link below SimTalk/Related Topics. To switch from the description of the attribute
AssemblyMode in the example below back to the description of Assembly mode, click on at
the top of the window.
To open help for the open Frame, click on the tab Home on the ribbon bar of the Frame.
Open help in the open dialog of an object
To open help in the open dialog of the object, select Help > Help on Object.
To show What's This help for a dialog item, click the question mark in the title bar of the dialog
window, and then click the dialog item in the dialog window for which you need help.
Copy source code examples in the help and paste them into your Methods
You can copy source code examples in the help with Ctrl+C and then paste them into your Method
with Ctrl+V. You can then edit the source code to meet your modeling needs.
Until further notice we provide an example for the SimTalk-2.0-Syntax and for SimTalk-1.0-Syntax.
• Click a topic with the right mouse button, and select the command Print on the context menu.
When you print from the Contents tab (by right-clicking a heading/book, and then
choosing Print) the viewer will display a dialog allowing you to print only the current
topic, or the current topic and all subtopics.
If you opened a topic via an index entry or via the tab Search of the help and would like to know
where in the structure of the help, i.e., in the Table of Contents, it is located, click Locate .
If the current topic is not listed on the table of contents, this command will not work. This
might, for example, happen if you clicked an index entry, which does not exactly match
the title of the page. To locate the topic anyway, click the button or the button in the
Topic pane and then click Locate again and return to the topic, which you wanted to
locate in the first place.
• Click the question mark in the title bar of the dialog window, and then click the dialog item in
the dialog window for which you need help. In general, the text boxes and the fields that show
a value provide What’s This Help. The fields with the label to the left of such a dialog item do
not show What’s This Help.
• Press Shift+F1 while the mouse is located over the dialog item for which you would like to
receive help.
If the index contains more than one entry about the topic, for example because several objects have
an attribute, a read-only attribute, or a method with the same name, look for the respective entry and
double-click it to show the corresponding topic. In our example below we need help for the method
replace. When we press F1, the index shows the main entry for the expression Replace and jumps to
the last topic under Replace, namely source code in Methods. As we wanted to look up the method
replace, we double-click Replace method to show this topic.
When displaying help topics from the Index, the HTML Help Viewer matches the case.
This can, in rare cases, cause it to show a topic that matches the case when the Index
contains two similar topics with different upper and lower casing. The displayed topic might
not always be the topic for which you needed help. If you find that this is the case, just
scroll up or down in the Index pane until you found the correct topic.
General Topics
General Topics
The topics below cover general information about using the online help.
• How to Use the HTML Help Viewer
• The Topic pane on the right side of the window. It shows the selected help topic, or the default
help topic.
To find more information when using the Help Viewer use any of these techniques.
• Click the colored, underlined words to link to another topic, a Web page, a list of other topics, or a
program.
• Add a particular help topic you often use to the List Favorite Help Topics.
• Click the Contents tab or the Topic pane with the right mouse button to display a context menu.
• Click in a page in the Display pane to move to the Previous page in the sequence of pages
on the table of contents.
• Click the Index tab, and then type a word or scroll through the list to see a list of index entries.
Note that topics are often indexed under more than one entry. If an index entry has second level
entries, scroll to the second level entry and double-click it to get help for this topic.
When you click the main entry, the help viewer jumps to the last topic in the list of
second level entries, as most of the time the main entry does not have an index entry
of its own. In the printed and the online index only the second level entries have page
numbers, the main entry does not have one.
• Click the Search tab, and then type the word to locate every occurrence of a word or phrase that
may be contained in the help file, compare Working with Full Text Search.
Click the contents entry, index entry, or search results entry to display the respective
topic.
• Locate show where the current topic is located on the table of contents.
If the current topic is not listed on the table of contents, this command will not work.
This might, for example, happen if you clicked an index entry, which does not exactly
match the title of the page. To locate the topic anyway, click the button or the
button in the Topic pane and then click Locate again and return to the topic, which
you wanted to locate in the first place.
• Home show the Home page topic for the help file you are viewing.
Click the Favorites tab, select the topic, and then click Display to return to a favorite
topic. If you want to rename a topic, select it, type a new name in the Current topic
text box and click Add. Select the topic and then click the Remove button to remove a
favorite topic.
• Click with the right mouse button again, and then select the command Copy or press Ctrl+C.
This copies the topic to the Clipboard.
If you want to copy only part of a topic, select the text you want to copy, click the right
mouse button and select the command Copy.
• To show the Navigation pane, which contains the Contents, Index, Search, and Favorites tabs,
If you close the Help Viewer with the Navigation pane hidden, it will appear that way
when you open the Help Viewer again.
To do this Press
Switch between the Help Viewer and other open windows. Alt+Tab
Move forward to the next topic (provided you viewed it Alt+right arrow, or Alt+O, and then
just previously). press F
To do this Press
To do this Press
To do this Press
Type a keyword to search for. Alt+ W, and then type the word
Select a topic in the results list. Alt+ T, and then up arrow/down arrow
The following options are only available when you enabled full-text search.
To do this Press
Search for words similar to the keyword. For example, to find words like
Alt+M
“running” and “runs” for the keyword “run.”
To do this Press
Select a topic in the Favorites list. Alt+P, and then up arrow and down arrow
Close all books or folders. This command only Click on the table of contents with the right
works when the Contents tab is displayed. mouse button, and then select Close All.
• Click List Topics, select the topic you want, and then click Display.
Related Topics
Highlight Words in Searched Topics
Advanced Full Text Search
• Select Options > Search Highlight On in the toolbar to highlight all instances of a search
word or phrase,
Select Options > Search Highlight Off in the toolbar to deactivate this feature. If you
are viewing a long topic, the Help Viewer will only highlight the first 500 instances of a
search word or phrase.
• Locate show where the current topic is located on the table of contents.
If the current topic is not listed on the table of contents, this command will not work.
This might, for example, happen if you clicked an index entry, which does not exactly
match the title of the page. To locate the topic anyway, click the button or the
button in the Topic pane and then click Locate again and return to the topic, which
you wanted to locate in the first place.
• Home show the Home page topic for the help file you are viewing.
• You can search for any combination of letters (a-z) and numbers (0-9).
• The search ignores punctuation marks such as the period, colon, semicolon, comma, and hyphen
• Group the items of the search using double quotes or parentheses to set apart each item. You
cannot search for quotation marks.
If you are searching for a file name with an extension, group the entire string in double
quotes, (“filename.ext”). Otherwise, the period will break the file name into two
separate terms. The default operation between terms is AND, so you will create the
logical equivalent to “filename AND ext.”
• Click List Topics, select the topic you want, and then click Display.
• To sort the topic list, click the Title, Location, or Rank column heading.
You can precisely define a search by using wildcard expressions, nested expressions,
and boolean operators.
You can request similar word matches, search only the topic titles, or search the
results of a previous search.
You can set the Help Viewer to highlight all instances of search terms it found in topic
files by choosing Options > Search Highlight On.
You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you
to search for one or more characters using a question mark or/and asterisk. The table describes
the results of these different kinds of searches.
To include minor grammatical variations for the phrase you search, select the check box
Match similar words
The AND, OR, NOT, and NEAR operators enable you to precisely define the search by creating a
relationship between search terms. The following table shows how you can use each of these
operators. If you do not select an operator, the Help Viewer uses AND. The query “spacing border
printing”, for example, is equivalent to “spacing AND border AND printing.”
The |, &, and ! signs do not work as boolean operators (you must use OR, AND, and NOT).
Nested expressions allow you to create complex searches for information. For example, “control
AND (active OR dde) NEAR window)” finds topics containing the word “control” along with the words
“active” and “window” close together, or containing “control” along with the words “dde” and “window”
close together.
The following basic rules for searching help topics using nested expressions apply:
• You can use parentheses to nest expressions within a query. The search engine evaluates
expressions in parentheses before the rest of the query.
• If a query does not contain a nested expression, it is evaluated from left to right. For example:
“Control NOT active OR dde” finds topics containing the word “control” the word “active,” or
topics containing the word “dde.” On the other hand, “control NOT (active OR dde)” finds topics
containing the word “control” without either of the words “active” or “dde.”
• Click List Topics, select the topic you want, and then click Display.
When you use this feature, the Help Viewer searches all HTML topic files, including
any that are not listed on the table of contents.
• Click List Topics, select the topic you want, and then click Display.
This feature only locates variations of the word with common suffixes. A search on the
word “add,” for example, will find “added,” but it will not find “additive.”
• Click List Topics, select the topic you want, and then click Display.
If you want to search through all of the files in a help system, clear this check box.
The Search tab opens with this check box selected if you previously used this feature.
• To resize the Navigation or Topic pane, drag the mouse over the divider between the two panes.
When the pointer changes to a double-headed arrow, drag the divider right or left.
• To proportionately shrink or enlarge the entire Help Viewer window, point to any corner of the
Help Viewer. When the pointer changes to a double-headed arrow, drag the corner.
• To change the height or width of the Help Viewer, point to the top, bottom, left, or right edge of the
Help Viewer. When the pointer changes to a double-headed arrow, drag the edge.
• To reposition the Help Viewer in the screen, click the title bar and drag it to a new position.
The Help Viewer will be displayed with the last size and position settings you selected
when it is opened again.
• Select the options you want in the dialog Accessibility, and click OK.
These changes do not apply to the Navigation pane or the toolbar of the Help Viewer.
• Select the fonts you want in the dialog Fonts, and click OK.
• Click OK in the dialog Internet Options to apply the new font settings.
These changes do not apply to the Navigation pane or the toolbar of the Help Viewer.
• If you do not have a wheel mouse, close the Help, change to the Internet Explorer, select View
> Text Size, and then select a size. Open the Help again to display the topics with the text
size you selected.
• Select the options you want in the dialog Colors, and click OK.
• Click OK in the dialog Internet Options to apply the new color settings.
These changes do not apply to the Navigation pane or to the toolbar of the Help Viewer.
Plant Simulation runs on the 64-bit version of the operating systems Windows Vista,
Windows 7, Windows 8, Windows 8.1, and Windows 10.
The current Plant Simulation version can open simulation models (.spp files) that were created
in SiMPLE++ 7.0 or higher.
Related Topics
Before You Install Plant Simulation
Setting Plant Simulation Up
Licensing Plant Simulation
Plant Simulation License Types
Plant Simulation Options
Starting Plant Simulation
Opening a Crashed Model
Installing Product Updates
Exiting Tecnomatix Plant Simulation
Copyright © 2017 Siemens Product Lifecycle Management Software Inc. All rights reserved.
This documentation is proprietary to Siemens Product Lifecycle Management Software Inc.
This document contains proprietary information and is protected by copyright. No part of this
document may be reproduced, stored in a retrieval system, translated, transcribed, or transmitted, in
any form or by any means, without the prior explicit written consent of Siemens Product Lifecycle
Management Software Inc. Information in this document is subject to change without notice.
• For the ODBC interface you also need 64-bit drivers for ODBC. Starting with Microsoft Office
2010 Microsoft provides 64-bit ODBC drivers for Access, Excel, etc.
• The OPC interface can only address a 64-bit version of an OPC server.
• Insert the program DVD into the DVD drive or change to the folder on your computer to which you
downloaded the .msi file from our website.
• If the setup program on the DVD does not start automatically, double-click the file setup.exe on
the DVD to start it. Or double-click the .msi file if you downloaded the program.
• Click the Next button in the dialog that opens to proceed with the installation.
• Select the folder into which you would like to install Plant Simulation. Click Next to proceed
with the installation.
• Click the Install button to start the installation or click the Back button to return to the previous
dialog and modify any of the settings there.
The setup program shows the percentage of the installation it completed. Click the Finish button
after the installation is done.
• Log on as Administrator to ensure that the operating system correctly registers all files.
To run a silent installation, i.e., to install Plant Simulation without having to respond
to dialogs or messages, open a Command Prompt window and enter the this to
install Plant Simulation into the default folder: msiexec /qn /i msi file> for example
msiexec /qn /i PlantSimulation64bit.msi.
SimTalk
applicationHome
getRegistry
licenseName
After you did set up your license, you can also Borrow Licenses.
Related Topics
File > Preferences > License
License file
Borrow Licenses
The SPLM License Service has to run on a server to assign and manage the licenses. You do not
have to install it on the individual client computers running Plant Simulation.
Related Topics
Installing the Siemens PLM License Server
Activating Licenses
Borrow Licenses
• WIBU Dongle ID: A software protection dongle is a piece of hardware which you plug into an
USB port of your computer. The dongle ID is located on the dongle itself.
Using a WIBU dongle enables you to move the dongle and the license files to different computers.
This is useful when you replace or reinstall the license server computer, or disconnect it from the
network. The portable dongle makes licenses available again quickly and easily.
A WIBU Dongle ID might look like this: WIBU=1234
• Composite Host-ID (CID): The Composite Host-ID ( CID) factors in the name of the computer
and the network card. Use the first COMPOSITE in the field Query Host-IDs. It might look like
this: COMPOSITE=A12345B67899
Related Topics
File > Preferences > License > Query Host IDs
Activating Licenses
Related Topic
Activating Licenses
If you install Tecnomatix Plant Simulation for the first time and if you are Using a Floating License or if
you are Using a Named-User License, you will have to install the Siemens PLM License Server.
• To install the Siemens PLM License Server, log on as Administrator on the computer on which
you would like to run the license server.
• Double-click the program setup.exe on the DVD. Or double-click the MSI file if you downloaded
the program.
• Select the installation language, English in our case, and click OK.
If you would like to use a WIBU dongle on your computer, you have to Install the WIBU Drivers
first.
If you would like to use a WIBU dongle to get your license, you have to install the WIBU driver on
your computer in addition.
If a previous version of the WIBU driver is installed on your computer, please update your
driver so that they work together with the dongle you received.
• Double-click the program setup.exe on the DVD. Or double-click the MSI file if you downloaded
the program.
• During the installation a dialog opens. Click Next and follow the instructions in the dialog.
• After the computer has started up all the way, insert the WIBU dongle into the appropriate port of
your computer in the direction indicated by the arrow on the dongle.
• If you would like to, you can test the new functionality of the WIBU dongle by double-clicking
the respective entry in the Control Panel of your computer. Note that the dongle number is
3001 in the example below.
For detailed installation instructions, consult the file ReadMe.pdf in the folder WIBU
Driver on the DVD.
Related Topics
Installing the Siemens PLM License Server
Activating Licenses
• Select File > Help > Online Technical Support > License Retrieval. Be sure to have your
Webkey Username, your Password, and your Sold To ID ready. Select File > Help > About
Tecnomatix Plant Simulation to query the Sold To ID.
• Enter the host ID into the form on the website. Enter the names of the applications, the version,
the number of licenses, and the license type that you purchased.
To order a license for redundant license servers, make sure to include the names and ID’s of
the three license server computers.
We’ll send you your license file in an e-mail.
Activating Licenses
Activating Licenses
When you start Plant Simulation for the first time after installing it, it detects that you do not have
a license. It then opens the Preferences dialog with the tab License and asks you to enter the
required information.
The set-up processes for the different types of licenses are slightly different from each other,
depending on the license you are using.
Copy the license files to a folder of your choice.
• If you are Using a Floating License or are Using a Node-Locked License, this is a license.lic file.
• If you are Using a Named-User License, this is a license.lic file anda ugslmd.opt file. Create a
text document on the license server computer in the folder to which you copied the licens file and
name it ugslmd.opt. You can then add the names of users to the options file, change the names
of users, or remove users from it.
You can add any number of users to the ugslmd.opt file. The SPLM License Server only assigns
the number of licenses which you purchased and which the Tecnomatix Customer Service
Department added to the license.lic file it sent to you.
The license.lic file contains the number of licenses, 3 in our example, the ugslmd.opt file contains
the names of the users for whom the licenses are reserved:
SERVER Servername>
VENDOR ugslmd
FEATURE EMPLANT_FULL_DEMO ugslmd 13.2 permanent 3 SIGN="0141 8A53 6041 0FF8 158A C
INCLUDE 1 EMPLANT_FULL_DEMO USER Larry_Jones
INCLUDE 1 EMPLANT_FULL_DEMO USER Curly_Meyer
INCLUDE 1 EMPLANT_FULL_DEMO USER Moe_Johns
Related Topic
License file
Since every product can consist of several modules requiring separate licenses, we use licenses
packages. We have one package for every Tecnomatix product. Therefore the license file contains a
PACKAGE line for every INCREMENT line which defines the licenses for the modules for each Tecnomatix
product.
The name after the keyword INCREMENTis the package name for this product, in our example, a Plant
Simulation Research license. In most cases, this package name starts with a prefix CAR_ for the
base application, and FEA_ for optional products.
INCREMENT CAR_PLANTSIM_RESEARCH ugslmd 13.2 permanent 5 USER_BASED \
SUPERSEDE DUP_GROUP=UHD user_info="Plant Simulation Research" \
ISSUED=17-11-2014 SIGN="01BF …" SIGN2="02F8 …"
Use this package name to assign users to applications and features in the ugslmd.opt options file.
The number before the keyword USER_BASED designates the number of licenses you purchased for this
product, which is the number of users you might assign to this product.
INCREMENT CAR_PLANTSIM_RESEARCH ugslmd 13.2 permanent 5 USER_BASED \
SUPERSEDE DUP_GROUP=UHD user_info="Plant Simulation Research" \
ISSUED=17-11-2014 SIGN="01BF …" SIGN2="02F8 …"
Note that the licenses are not available for any user unless you assign users to these licenses.
Therefore we recommend to make sure that you really did assign users to every INCREMENT line in the
license file at the end of the process. If you need help to identify which products belong to which
package names, consult your local Siemens PLM customer service department.
The licensing mechanism uses the login name for your computer to identify you as the user.
Related Topic
License file
Related Topic
License file
Our example for the login names BobM, VladimirK, and ManoM looks like this:
INCLUDE CAR_PLANTSIM_RESEARCH USER BobM VladimirK ManoM
If you would like to define groups, use the keyword GROUP followed by a group name of your choice,
followed by the login names. The syntax is:
GROUP group name> login name1 login name2 login name3 …
Related Topic
License file
If you are using Plant Simulation with a license other than Professional, you can use the start
parameter -L parameter> or /L parameter> to start Plant Simulation with one of these licenses.
Naturally, you can also select the License type in Plant Simulation itself under File > Preferences
> License.
For licenses, which limit the number of objects you can use, the root object (Basis) in the Class
Library shows how many objects are used and how many are allowed. For a Student license
it looks like this:
SimTalk
licenseName
numOfLimitedObjects
• Modify, adjust or extend optional libraries as well as work with interactive communication
interfaces and with user-defined dialogs.
• Access tables and lists at any time during the simulation runs.
• Modify the simulation model and its parameters during the simulation run interactively or via file
interfaces, databasesor binding of DDE, RPC, and Socket interfaces.
• Evaluate and display model sizes by with the built-in analysis and evaluation tools.
• Access the built-in objects for the material flow and the information flow, as well as other objects
for controlling, managing and visualizing your model.
• Use the HTML integration for standard browsers with access to all Plant Simulation objects for
fast visualization of data and simulation results.
• Use the objects Attribute Explorer, DataFit, Dialog, Experiment Manager, FlowControl, Generator,
TimeSequence, and Trigger.
• Use the built-in merge-mechanism for updating classes in the class library in existing models.
Use the Profiler for analyzing time usage of the methods contained in the model, enabling you
to optimize the SimTalk source code within.
• Use the integrated interfaces: COM, DDE, DWG, DGNand DXF Reader, HTML Interface, and
XML Interface.
Back to
Plant Simulation License Types
• Create models with application-specific user-defined objects, as well as access the built-in
objects that are part of the user-defined objects.
• Execute simulation runs with 2D and 3D graphics and animate simulation models, record
statistics, analyze simulation runs, and save the results and the statistics tables.
• Optimize the simulation results by modifying the model parameters with file interfaces or
databases.
• Use pre-defined application objects from object libraries available for many industries.
Back to
Plant Simulation License Types
• Use the integrated interfaces ActiveX, COM, DDE, ODBC, SQL for Oracle, Socket, and XML
Interface.
• Use the libraries Plant Simulation Assembly, Plant Simulation Shopas well as all libraries which
do not require a license.
Back to
Plant Simulation License Types
The Plant Simulation Standard license allows to interactively create simulation models using
the built-in objects covering material flow objects (SingleProc, ParallelProc, Sorter, Buffer, Store,
Track, Line, etc.), mobile objects (Transporter, Containerand Entity), display objects (Gauge, Chart,
HtmlReport), and listsand tables. You can use these built-in objects as a starting point to create
customized objects that meet your modeling needs by employing the programming language SimTalk.
With the Plant Simulation Standard licenseyou can:
• Interactively model with the built-in objects and with user-defined objects, controls and processes
with up to 4000 objects. TableFiles and control logics are not included in this number.
• Modify, adjust, continue modeling with of optional libraries as well as work with interactive
communications.
• Modify the simulation model and its parameters during a simulation interactively or via the file
interface (.txt, .xls), DDE or COM interface.
• Evaluate and display model sizes by with the built-in analysis and evaluation tools.
• Use the built-in material flow objects and information flow objects, as well as objects for
controlling, managing and visualizing your model.
Back to
Plant Simulation License Types
• Execute simulation runs with 2D and 3D graphics and animate simulation models, record
statistics and analyze simulation runs and save the results and the statistics tables.
• Optimize the simulation results by modifying model parameters via file interfaces, databases or
binding of ActiveX, COM, C-Programming, DDE, ODBC, Socket, ORACLE SQL interfaces.
Back to
Plant Simulation License Types
• Executes simulation runs with 2D and 3D graphics, animates simulation models, records data
and evaluates simulation runs.
• Allows using Genetic Algorithms for the automated optimization of your simulation models.
• Provides an integrated presentation of the results in Gantt charts depending on resources and
orders.
Back to
Plant Simulation License Types
Objects
Interface Package:
ActiveX, C, ODBC, OPCClassic, OPCUA, O O O Yes Yes O -
Oracle, PLCSIM Advance, SIMIT, SQL, Socket
Experiment Manager:
Design of Experiments Confidence Analysis Yes Yes Yes Yes Yes Yes (Yes)*
Factorial Analysis distributed simulation
Statistical Tools:
Fitting statistical distributions (DataFit)
Goodness-of-Fit Test Analysis of Variance Yes No Yes Yes Yes Yes (Yes)*
(ANOVA) Regression Analysis Confidence
Analysis
Features/Functionalities
Import CAD files (DWG, DXF, DGN) Yes No Yes Yes Yes Yes Yes
Create user-defined licenses Yes Yes Yes Yes Yes Yes Yes
Prohibit access to the computer Yes Yes Yes Yes Yes Yes Yes
Yes Included
No Not available
Back to
Plant Simulation License Types
• The ODBC interface to connect to databases and applications which support ODBC drivers
• The OPC Classic interface to connect to an OPC server to exchange signals with PLCs
• The OPC UA interface to read and write control variables and the signals of PLC controls
• The Oracle11g SQL interface to exchange data with Oracle databases via an Oracle client
• The PLCSIM interface to exchange signals and data between Plant Simulation and virtual PLCs
• The SIMIT interface to connect to process control devices, such as PLC controls, via SIMIT
(Simulation & Testing)
• The Socket interface to exchange data with other applications via an TCP/IP connection
The Gantt Chartcan visualize data from a simulation run. You can also modify it manually. You can
then use the modified data as input data for further simulation runs. In addition to the mere occupation
data, the Gantt Chart can also display failures of machines, pausing times, and blocking times.
The Gantt Chart can display the data in two views:
• The orders view shows when the production started and ended on which machine for every
order or product
• The resources view shows for each machine when the production of which order or product
started and ended on that machine
This way the Gantt Chart immediately shows which machines or stations are overloaded or have a
low utilization and which production orders or products have long waiting times during the production
process.
You might enter the information from the screenshots below to start Plant Simulation with an English
or with a German user interface.
Related Topics
Entering Start Options
Setting Default Values in the Windows Registry
• Extend the path to Plant Simulation in the text box Target with one or several of these start
options.
To do this Enter
Compare setConsoleFilter.
/UILanguage:ENU
/UILanguage:DEU
Start Plant Simulationwith the user interface
language English, German, Japanese, /UILanguage:JPN
Chinese, Russian, or Hungarian.
/UILanguage:CHS
Compare userInterfaceLanguage.
/UILanguage:RUS
/UILanguage:HUN
Instead of a - (minus) you can also type in a / ( forward slash). You can, for example,
type -f MyAssemblyModel.sppor /f MyAssemblyModel.spp, both execute the same
command.
You can also pass any other command-line arguments which you can then query with
the function getCommandLineArg. Plant Simulation itself will ignore them.
We recommend to not continue working with the crashed simulation model, but to go
back to the last version you saved normally.
• Enter your WebKey Username and your WebKey Password to log on to the GTAC site. You
will typically use the WebKey Access Code that the About Tecnomatix Plant Simulation
dialog shows.
To run a silent installation, i.e., to install the product update without having to respond
to dialogs or messages, open a Command Prompt window and start the downloaded
executable with the following command-line parameters: /s /a /s
The maintenance pack uses the registry value
HKEY_LOCAL_MACHINE\SOFTWARE\Tecnomatix\eM-Plant\13.1\eMPlantHome to determine the
installation folder. If this registry value does not exist, you can specify the folder with
the following command-line parameters:/s /a /s /t "C:\My Plant Simulation Folder"
• Click Close in the title bar of the program window. Plant Simulation prompts you to save
your simulation model.
• Select the command File > Exit. Plant Simulation prompts you to save your simulation model.
Related Topics
exitApplication
Exiting when Plant Simulation Locks Up
Step-by-Step Help
The Tecnomatix Plant Simulation step-by-step help introduces the most common modeling tasks. It
shows how to proceed, when you create your simulation model and how to use the built-in objects to
solve your tasks. The detailed instructions help you to quickly learn a procedure.
The step-by-step help covers these topics:
• Getting to Know Tecnomatix Plant Simulation
Also consult
What’s New
Using HTML Help
The Reference Help
The 3D Viewer Reference Help
The Add-Ins Reference Help
Copyright © 2017 Siemens Product Lifecycle Management Software Inc. All rights reserved.
This documentation is proprietary to Siemens Product Lifecycle Management Software Inc.
This document contains proprietary information and is protected by copyright. No part of this
document may be reproduced, stored in a retrieval system, translated, transcribed, or transmitted, in
any form or by any means, without the prior explicit written consent of Siemens Product Lifecycle
Management Software Inc.
Information in this document is subject to change without notice.
What is Simulation?
VDI (Verein Deutscher Ingenieure, Association of German Engineers) Directive 3633 defines
simulation as the emulation of a system, including its dynamic processes, in a model one can
experiment with. It aims at achieving results that can be transferred to a real world plant. In addition,
simulation defines the preparation, execution and evaluation of carefully directed experiments
within a simulation model.
As a rule, you will execute a simulation study like this:
• You first check out the real-world plant you want to model and collect the data you need for
creating your simulation model.
• You then abstract this real-world plant and create your simulation model according to the aims
of the simulation studies.
• After this, you run experiments, i.e., execute simulation runs, within the simulation model. This will
produce a number of results, such as how often machines fail, how often they are blocked, which
set-up times accrue for the individual types of station, which utilization the machines have, etc.
• The next step will be to interpret the data the simulation runs produce.
• Finally, management will use the results as a base for its decisions about optimizing the real plant.
Developing your simulation model is a cyclical and evolutionary process. You will start out with a
first draft of your model and then refine and modify it to make use of the intermediary results the
simulation runs provide. Eventually, after several cycles, you will arrive at your final model.
As a simulation expert, you must never loose sight of these questions:
• What do you want to accomplish with the simulation study?
• Which conclusions do you draw from the results of the simulation study?
• How do you transfer the results of the simulation study to the real-world plant?
In reality, on the other hand, time elapses continually. When watching a part move along a conveyor
system, you will detect no leaps in time. The curve for the distance covered, and the time it takes to
cover it, is continuous, it is a straight line.
A discrete, event-controlled simulation program on the other hand only takes points in time (events)
into consideration that are of importance to the further course of the simulation. Such events may,
for example, be a part entering a station or leaving it or of it moving on to another machine. Any
movements in between are of little interest to the simulation as such. It is only important that the
entrance and the exit ( Out ) events are displayed correctly. When a part enters a material flow
object, Plant Simulation computes the time until it exits that object and enters an exit event into the
list of scheduled events of the EventController for this point in time.
Thus, the simulation time that the EventController displays, leaps from event to event. This happens
as soon as an event is processed.
Go to What is Simulation?
Back to Simulation and Modeling Concepts
o Determine and optimize the times, such as processing time, failure time, recovery time, etc.,
and the throughput of the plant.
o Determine the size of buffers and the number of machines your intended throughput requires.
When a single machine costs hundreds of thousands of dollars, it certainly helps to know if
you need one or more machines of one type.
o Determine the limits of performance of the machines and of the plant as a whole.
o Investigate how failures affect the throughput and the utilization of the machines.
o Determine how many workers and staff members are required for the intended throughput.
o Determine suitable control strategies of the machines and of the way the machines interact.
o Minimize the investment cost for production lines without jeopardizing required output
o Optimize the sequence of orders that have to be fulfilled to make as few tool changes
necessary as possible.
o Test the daily proceedings to make sure that everything works smoothly.
• Put the plan you formulated into practice. Here simulation helps you to:
o Develop a template for creating the control strategies.
o Train the operators of the machines in the different states, which machines and the plant
can be in.
• Find out about the data you need and how to acquire it.
Ensure early on that the data you need to run the simulation experiments is going to be available.
Frequently a lot of time and effort is involved to acquire the data. Make sure that you have
the name of a person who responsible for acquiring the data from your client, which may, for
example, be another department of your company.
You can familiarize yourself with Plant Simulation in a number of ways. You can:
• Work Through the Tutorial
To get acquainted with Plant Simulation you also can move along at your own pace by working
through the lessons of the Tutorial. It shows how to build a simulation model for a testing line for
TVs and VCRs.
To open the tutorial:
• Start Plant Simulation.
• Open one of the model files for the tutorial in the Plant Simulation installation folder > Plant
Simulation > Tutorial, compare the example below.
To get acquainted with Plant Simulation and the 3D Viewer, you also can view the sample models.
These models demonstrate how to approach a number of problems and will give you ideas on how to
solve your modeling tasks. To do so, click Example Models under Getting Started on the Start Page.
To get acquainted with Plant Simulation, you also can view the pdf documents describing the
application object libraries on the Tecnomatix Plant SimulationDVD. You might find that one of these
libraries might already cover the intentions of your modeling task.
You have to purchase a separate license for some of the application object libraries.
To get acquainted with Plant Simulation, you also can consult the Tecnomatix Plant Simulation
step-by-step help and the online help that are part of the program. The former will cover most of your
modeling tasks and provide you with information on how to solve them. Start Plant Simulation,
go to the Help menu and select Contents. Double-click the book and select
the topic you need information about.
If you prefer to read the documentation as a book in consecutive order, consult the printed materials
that are part of your program package. You can also locate the pdf file of the manuals on the DVD
and view it online or print it in its entirety or only sections of it.
When you print a topic of the pdf file, do not enter the page number on the bottom of the
page you are viewing, but the page number the Adobe Reader shows on the toolbar
Page Navigation.
This tutorial is intended for those of you who are new to modeling in Plant Simulation. It is short and
yet comprehensive enough to get you started with creating and executing simulation models in Plant
Simulation. If you have not already done so, we recommend that you familiarize yourself with the
Plant Simulation user interface, with the Ribbon Bar, with the Class Library, with the Toolbox and
the objects it provides, and with the Icon Editor.
Theme
The theme of the tutorial model is a testing line for TVs and DVD players. You will first create a
testing station before adding two stations to the main line. TVs and DVD players will enter the
processing line, will be put into containers, moved across a line to a pre-testing station, then to the
main testing station, before being packed and shipped.
Creating the entire model is quick and easy. You can, however, save your models and return to them
at a later point in time. If you do not want to start at the beginning of the tutorial, you can start at the
beginning of any of the three sections. The respective model files are located in the Plant Simulation
installation folder > Plant Simulation > Tutorial, compare the example below.
Go to Section 1
Go to Section 2
Go to Section 3
Section 1
Section 1
In section 1 we will create a folder for our simulation model, name it TestingLine, and build a basic
test station for the production line.
• Click the item Basis in the Class Library with the right mouse button and select New > Folder.
• Click the new folder with the right mouse button, select Rename, and rename it to TestingLine.
We now have a folder in which to store all the objects that we create. Next, we will create a Frame in
which to build our simulation model.
• Click the folder TestingLine in the Class Library with the right mouse button and select New
> Frame.
• Click the Frame with the right mouse button, select Rename, and rename it to Test.
The Frame is the container in which we create our simulation model. We have created the first
Frame, named Test, for the TV and DVD player test line. Now we can insert the stations that make up
the testing line.
Go to Section 2
Go to Section 3
The Source
The first object that we’ll insert into our simulation model is the Source. It produces the parts, in our
case the TVs and DVD players, which will be moving through the production system. The Source
might, for example, represent the machines that produce the parts in the plant or the receiving
department of the plant.
• Double-click the Frame named Test to open it.
• Move the mouse over the Frame and click anywhere on the left side of the Frame to insert it.
The SingleProc
Next, we will insert two objects of type SingleProc. The SingleProc is a generic object which
represents any station or machine on which parts spend a certain amount of time to be processed.
• Hold down Ctrl and insert one SingleProc to the right of the Source and a second one to the
right of the first one.
• Click the second SingleProc with the right mouse button and rename it to Testing.
The Drain
The last object we need is the Drain. The Drain removes the parts from our plant. It might, for
example, represent the shipping department of our plant.
The Connector
The Connector connects the stations which we inserted into our model. It determines how the parts
move through our plant, i.e., it determines the flow of the materials.
• Select the Connector on the tab Materialflow in the Toolbox to activate connect mode.
• Move the mouse over the object Source, which is the starting point of our connection. Click on
the Source to start connecting the objects.
• Next, move the mouse over the icon of the first SingleProc, the first target object, and left click
to connect the two objects.
To connect several objects one after the other, hold down Ctrl before you click on
the Connector in the Toolbox.
• Once you have connected all objects, click the right mouse button to deactivate connect mode.
We can now test the Frame by running a basic simulation, to do this we have to insert an
EventController.
To run the simulation we need to insert an EventController into our simulation model. The
EventController starts, stops, and resets your simulation models and controls the speed of the
simulation.
Select the EventController on the tab Materialflow in the Toolbox and insert it in the top left
corner of the Frame.
Instead, you can also click the EventController icon on the ribbon tab Start in the ribbon bar. Plant
Simulation then automatically inserts an EventController.
• Click the Start/Stop Simulation and Reset Simulation buttons in the EventController
to stop the simulation and to reset your simulation model.
We will now change the processing time of the SingleProc Testing from the default time of 1 minute
to a mathematical distribution, let’s say the Normal distribution. This way the processing time for
each part will be based on a random number according to the Normal distribution.
• Open the dialog window of the SingleProc Testing and click the tab Times.
Plant Simulation shows the parameters, which this distribution requires, above the text box.
In Plant Simulation we separate seconds from minutes with a colon (:). So 1:30 stands for 1 minute
and 30 seconds.
The processing time for the station Testing now follows the Normal distribution with a mean value
of 55 seconds and a standard deviation of 5 seconds.
Next, we’ll select a distribution in the Source according to which it produces parts.
• Open the dialog window of the Source.
Run the simulation again. You will notice that the parts sometimes have a yellow border around
them. This shows that the parts are blocked, i.e., they cannot move on to the next object because it
is still occupied by the preceding part. We need to solve this issue.
The Buffer
As we have created a potential bottleneck within the model, we will insert a Buffer between the
Source and the Testing station.
• Select the object Buffer on the tab Materialflow in the Toolbox and replace the SingleProc
with the Buffer.
• Connect the Source with the Buffer and the Buffer with the station Testing i.e., Source- Buffer-
Testing.
• Open the dialog window of the Buffer and change to the tab Attributes. Change the Capacity
from 4 to 20.
When you now run the simulation, you will notice that the Buffer holds more than one part.
Rather than being blocked immediately, it accumulates parts to a maximum of 20 parts. Once it
reaches the capacity of 20, it will not allow any more parts to enter until a part has moved on.
We will now insert a Chart to view the number of parts that occupy the Buffer while the simulation
is running.
• Click the object Chart on the tab User Interface in the Toolbox.
• Drag the Buffer onto the Chart and drop it. Make sure that Occupancy is selected in the dialog
Statistics Type. Click OK.
The histogram shows how many parts were located in the Buffer how often.
If you closed the display window of the Chart, click it with the right mouse button, and select Show
on the context menu.
Section 2
Section 2
If you have not completed Section 1 of the tutorial, you can open the respective tutorial model from
the Plant Simulation installation folder > Plant Simulation > Tutorial, compare the example below.
We will start this section by creating another Frame within our folder TestingLine with a Source, a
Drain and several SingleProcs. We will also be using the Frame named Test, which we created
in Section 1 of the tutorial.
• Create a new Frame is described in section 1.
• Click the folder TestingLine in the Class Library with the right mouse button and select New
> Frame.
We will now insert the objects which we need into the Frame named ProcessingLine.
• Insert a Source .
• Insert a Drain .
Next, we will insert the two Test stations, which we created earlier, between the station PreTest
and the Drain.
• Drag it between the station PreTest and the Drain, and drop it there.
• To create a second Test Frame, hold down the Ctrl key, move the mouse over the Frame named
Test1, and click the left mouse button.
Back to Section 1
Go to Section 3
Inheritance
Before we can connect and run this model, we have to edit the Test objects. To do this, we will edit
the object Test in the Class Library. Editing the class object automatically propagates our changes
to all of its instances in our simulation model.
• Open the Frame Test in the Class Library.
• Delete the Source, the Drain, and the EventController from the Frame named Test.
You will notice that this also deleted the Source, the Drain, and the EventController from the Frames
Test1 and Test2.
The Interface
We will now insert two Interface objects in place of the Source and the Drain into the Frame Test.
Interface objects determine where the flow of materials enters and exits a Frame.
When you open the Test Frames inside of the model ProcessingLine, you will detect that the Source
and the Drain have been replaced with Interface objects in both objects. This is known as Inheritance
and is a crucial feature when creating simulation models in Plant Simulation.
Now we connect all objects within the Frame ProcessingLine using the object Connector .
• Click the icon of the Connector in the Toolbox.
• Connect all the objects so that your model matches the screenshot below.
• Insert an EventController.
Let’s now run the simulation with the EventController. You will notice that the Test Frames behave
like any other object within the model. When you open the Test Frames however, you can view the
activities of the parts within the Frames.
When running the simulation in the Frame ProcessingLine, you will not see any parts moving across
the Test stations. To display the actions inside the stations, we’d have to open the individual stations.
Instead, we will define an animation point on each Frame to also display the animated parts on
the Frame named ProcessingLine.
• Click the class object Test in the Class Library with the right mouse button and select Edit Icons.
• Click the button Link Animation Point in the ribbon tab Animation.
• Save the changes by clicking the Apply Changes button on the toolbar and close the Icon
Editor.
When you now run the simulation, you’ll see the parts moving across the Test stations as they
are processed.
Next, we will use an exit strategy to distribute the flow of materials. To do so, change to the tab
Exit Strategy of the station PreTest.
We are going to distribute the flow of materials so that 60 % of the parts move to the station Test1
while the remaining 40 % move to the station Test2.
• Click the tab Exit Strategy in the dialog of the SingleProcPreTest.
• Select Percentage from the drop-down list as the Strategy and select the check box Blocking.
Then click Apply.
• Click the button Open List below the drop-down list box Percentage.
• Type 60 into the first row, press the Enter key on your keyboard, then type in 40 into the second
row. This means that 60 % of the parts move to the successor with the number 1 and 40 % to
the successor with the number 2.
• Click OK to apply your changes and to close the SingleProc named PreTest.
When you now run the simulation and analyze the Charts in the two Test stations, you will notice
that more parts are processed in the station Test1 than in the station Test2. This is caused by the
distribution we entered into the Percentage table of the station PreTest.
If it is the other way round, namely more parts are processed on the station Test2 than
on the station Test1, delete the connectors between PreTest and the Test stations. Then
first connect PreTest with Test1 and then PreTest with Test2. The test station which
you connected first to the PreTest station is successor number 1, the station which you
connected after that with the PreTest station is successor number 2. Successor number 1
is always served before successor number 2.
The Line
Now we are going to insert an object of type Line into our simulation model. It represents a conveyor
feeding parts to the testing stations. First, delete the Connector between the Source and the
SingleProc PreTest. To fit the Line between the stations, you might have to move the rest of your
objects to the right. Drag a rectangle with the mouse across all objects to select them. Then, drag
them to the right.
• Insert the Line between the Source and the station PreTest.
• The first mouse click determines the starting point, the second click sets the end point of the Line.
• Set the end point six grid points away from the first, then click the right mouse button to finish
inserting the Line.
• Connect the Line with the Source and the station PreTest.
As you run the simulation, you will see the parts moving along the Line to the station PreTest. To
count the parts entering the Line, we will insert a sensor at the beginning of the Line. We will then use
a Method to make Plant Simulation increase a counter whenever a part passes the sensor.
You can write source code in a Method to define special behavior which cannot be set by selecting
or entering settings into the dialogs of the objects. Plant Simulation provides the proprietary
programming language SimTalk for this purpose.
Insert a Variable into your simulation model from the tab Information Flow in the Toolbox
above the Line.
• Double-click the Variable and name it NumberOfDevices. Select the check box Initial value and
enter the value 0. This way the value of the Variable is automatically set to 0 when the simulation
starts.
• Insert a Method from the tab Information Flow in the Toolbox below the object Line.
• Click the Method with the right mouse button and rename it to counter.
• Click Sensors.
• Click New and enter 0 as the Position of the sensor. This places it at the start of the Line.
• Click the button in the text box Control, select counter and then click OK.
• Click OK again to apply your changes and to close the dialog window of the Line.
• Copy the following source code and paste it into your method. To do so, select the text, then
click it with the right mouse button and select Copy on the context menu, or press Ctrl+A,
Ctrl+C, and then Ctrl+V.
-- SimTalk 2.0 notation param sensorID: integer, Front: boolean NumberOfDevices :=
NumberOfDevices + 1
• Apply the source code by clicking the button on the Edit ribbon tab and then close the
method window.
• Run the simulation to watch the parts moving along the Line triggering the sensor and
increasing the counter. To better follow the simulation, decrease the simulation speed in the
EventController.
Section 3
Section 3
If you have not completed Section 2, you can open the respective tutorial model from the Plant
Simulation installation folder > Plant Simulation > Tutorial, compare the example below.
In this section we will insert a second Source to produce Containers. We will also insert the object
Assembly Station to load parts onto the Containers before the parts are processed.
• Insert another Source below the existing Source in the Frame ProcessingLine.
• Click the new Source with the right mouse button and rename to SourceContainers.
• Select the object Container in the folder MUs in the Class Library and drop this Container
on the SourceContainers in the Frame ProcessingLine. This way we tell the Source to produce
containers. Double-click the SourceContainers and check the field MU on the tab Attributes. It
shows that it now produces Containers.
Back to Section 1
Back to Section 2
Loading Containers
• Drag the object Assembly Station from the tab Material Flow in the Toolbox on the
Connector between the Source and the Line and drop it there. This way you don’t have to delete
the Connector between the Source and the Line and insert it anew.
• Double-click the LoadingStation and select the Assembly mode > Attach MUs on the tab
Attributes. Change to the tab Times and type in a Processing time of 0:50.
As the Assembly station is connected to two stations, the order in which you connect it with the
predecessors is important. If the assembly process does not work as expected, check the numbering
of the predecessors by activating More View Options > Show Predecessors
on the ribbon tab General of the Frame.
The TableFile
Next, we will introduce a second type of MU, name it TV and DVD_Player, and use a TableFile to set
the percentage of each part that will be tested in the model.
• Insert a TableFile from the tab Information Flow in the Toolbox above the Source.
• Click the TableFile with the right mouse button and rename it to SourceData.
The TableFile SourceData is now formatted to serve as the distribution table for the Source. We will
now type in TV and DVD_Player as the products that we are going to process.
• Open the TableFile SourceData.
• Select the object Entity in the folder MUs in the Class Library. Drag this object to row 1 of the
column MU of the table SourceData and drop it there.
• Drag the object Entity from the Class Library to row 2 of the column MU and drop it there.
• Click outside the table cell which you just edited and close the table.
• Once you run the model, you will see that the Source produces 70 % TVs and 30 % DVD players
for testing.
The next step will be to separate them after they have been tested in the Testing stations and to
record the amount of each that have been tested within a TableFile.
Next, we will introduce another control to separate the TVs and the DVD players after they have been
tested, and write the amount of each of these parts into a table.
• Click the Drain with the right mouse button and rename it to TVs.
• Delete the Connectors between the stations Test1 and Test2 and the Drain.
• Insert a SingleProc between the Testing stations and the two Drains.
• Click the SingleProc with the right mouse button and rename it to Packing.
When you run the simulation now, you will detect the default behavior of the SingleProc, namely
that the parts, on leaving the station Packing, alternate between the two Drains. We need to
separate the TVs from the DVD players and send them to their respective Drain though. We
accomplish this by using a Method as an exit control in the station Packing.
• Click the button in the text box Exit and select the Method named packingControl.
After the parts have been processed on the SingleProc Packing, they are sorted by the Method
packingControl and are sent on to their respective Drains.
• Open the table Results and click Inherit Format on the ribbon tab List.
This will prevent that the table Results inherits the format from the table in the Class Library.
• Select the entire table by clicking the button in the top left corner of the cell grid.
• Then, click the right mouse button on the Select All button, select Format, and change the
data type of the cells.
• Select the data type Integer on the tab Data Type from the drop-down list:
• We have now activated the column index, i.e., the column header into which we can enter our
product names.
The Results table can now record the amount of TVs and DVD players that have been tested by the
TestingLine. The next step will be to modify the exit control named packingControl of the Packing
station to record the results.
• Open the Method named packingControl.
You can also insert the column numbers in place of the index headings TVs and
DVD_Players.
When you run the simulation, the amount of TVs and DVD players, which have been tested, will be
recorded in the Results table. Try running the simulation and compare the results with the table
SourceData.
The Chart
We will now insert a Chart to view the number of parts that have been tested by our ProcessingLine.
• Click the TableFile named Results and hold down the left mouse button.
• Drag the TableFile onto the icon of the Chart and drop it there.
• Click the Chart with the right mouse button and select Show to reopen the display window of
the Chart.
At the moment the numbers of the parts in the Results table increase with each and every simulation
run. We would like to delete the contents of the table though when we reset the simulation with the
EventController. To do so, we insert a reset method.
• Insert another Method object.
• Rename the Method to reset (notice how the default icon changes).
• Click Apply in the Edit ribbon tab of the Method window and close the Method.
This completes our tutorial as we have solved all of our modeling tasks.
Back to Section 1
Back to Section 2
Back to Section 3
Back to Working Through the Tutorial
Plant Simulation is a multiple-document interface application. It shows its windows in the common
parent window.
The different window types open in a certain order within the program window. At times it
may happen that the window you want to work with opens in the background, instead of
the foreground, where you would expect it to be. If this is the case, move the windows in
the foreground aside to access the window into which you want to enter data.
Instead of closing and reopening the Class Library, the Favorites, the Toolbox, and the Console, you
can hide them: Click to auto hide the window. When you then click in another window, Plant
Simulation hides the window until you move the mouse over the name of the window again. To
deactivate auto hide, click .
For further information compare The Plant Simulation Program Window in the Reference section of
the Online Help.
Docking Windows
Plant Simulation docking windows are the Class Library, the Favorites, the Toolbox, and the Console.
Docking windows have a red border in the figure below Working with Window Types. Docking
windows always open in the foreground, on top of any other windows, i.e., they will also be placed
on top of any open dialog windows.
• To undock a docking window, click into the title bar of the window with the right mouse button
and select Floating.
• To redock a floating window again, click in the title bar of the window with the right mouse button
and select Docking.
• To dock a floating window to any of the sides of the program window, drag the title bar on a
floating window to another location. When you drag the window to the edge of the program
window or to a location beside another docked window, it docks there.
When you move a docked window, this might affect the location and size of other
windows in the same row within the program window.
• To prevent a floating window from docking when you drag it, hold down Ctrl, and move the
window to a position of your choice.
• To make a docked window a floating window, double-click the move handle or hold down Ctrl,
and drag the window.
• To dock a floating window again, double-click its title bar or drag the window to one of the sides of
the program window or to a location beside another docked window, it docks there.
• To show or hide the Class Library, click on the Window ribbon tab.
• To show or hide the Favorites window, click on the Window ribbon tab.
• To customize the Quick Access Toolbar and the Ribbon, click the down arrow on the Quick
Access Toolbar and select More Commands.
Dialog Windows
Plant Simulation dialog windows are the dialog windows of the Plant Simulation material flow objects,
the mobile objects, the resource objects, the information flow objects, and the user interface objects.
Dialog windows have a green border in the figure below Working with Window Types.
A dialog window always opens in the front as it expects that you select or enter something. You
cannot minimize or maximize it.
You can drag a dialog window outside of the program window and move it around on the entire screen.
Object Windows
Plant Simulation objec twindows are the object windows of the Frame , the Method , the Method
Debugger, the QueueFile and StackFile , the CardFile , the TableFile , the Icon Editor,
and the Plant Simulation 3D Viewer.
Object windows always open in the background. Object windows have a blue border in the figure
below Working with Window Types.
To bring an open object window to the foreground, click the icon of the window in the window tab bar.
To arrange the windows, i.e., to cascade, to tile them horizontally, or to tile them vertically, you can
select the respective command on the Window Ribbon Tab.
To bring an open object window to the front, select the name of the window on the Window Ribbon
Tab. You can also arrange these windows with one of these commands.
You can also open the CardFile, the QueueFile, the StackFile, and the TableFile in the
foreground as a dialog window with the method openDialogBox.
You can close all object windows with the function closeAllWindows.
You can minimize and maximize an Object window and move it around within the program window.
When you maximize an object window, Plant Simulation adds the button combination Minimize,
Maximize, Close that is otherwise located in the title bar of the window, above
the Ribbon Bar.
You can also add links to the following object windows to the Favorites:
• Frame windows.
• Method windows
• CardFile windows
• TableFile windows
• windows of user-defined attributes of data type method, table, list, stack, and queue.
You can then quickly open the respective window by double-clicking its name in the favorites list.
Before you start working with Plant Simulation, you might want to change some of the default settings
that affect your simulation model.
• To select settings, which apply to the active model, select File > Model Settings. Plant
Simulation saves these settings in the model file.
• To select settings, which apply to new models, select File > Preferences. On the tabs General,
Modeling, User Interface and Editor you can select general settings, which are independent of
the simulation model. On the tabs Simulation and Units you can select model-specific settings,
which apply to new models.
You will:
• Select General Options
Compare Preferences
Compare Select Options in the Frame
Back to Working with the Program, Basics
Select the language Plant Simulation uses when it creates a new simulation model. This language
determines the names of folders and objects, such as MaterialFlow or Materialfluss, SingleProc
or Einzelstation, etc.
The language of the operating system of your computer determines the language of the
Plant Simulation user interface.
• The return value of the attributes that correspond to the entries of the drop-down lists, such as
SingleProc.ProcTime.Type.
• The names which the feature Auto Complete within the method editor suggests.
Select if you want to use the English 12 hour, the English 24 hour, or the German date and time
format on the General ribbon tab.
yyyy/mm/dd 12 hour
yyyy/mm/dd 24 hour
dd.mm.yyyy 24 hour
Select which kind of comment Plant Simulation adds to your model file each time you save it:
• Without comment adds no comment to the model (.spp) file.
• With comment opens a comment window, each time when you save the model. Enter your
comment here.
• When you select Without comment or With comment Plant Simulation adds a row to the dialog
Model Saving History each time you save the model.
When the model crashes, Plant Simulation adds a description of the problem to the model history
window instead of a comment. This helps our software engineers detect what caused the crash.
• None does not save the history of how you saved your model.
To view the comment you entered:
Select File > Show Model History in the program window.
Compare General
Back to Selecting Settings in Plant Simulation
Select which items the Frame shows on the 2D ribbon tab. Which features you want to show or hide
largely depends on your modeling situation. The more items you choose to show in the Frame, the
more cluttered its display gets. We recommend to experiment with the different settings.
You can override these settings for each individual Frame in the ribbon tab General >
Options.
If it annoys you that Plant Simulation opens a dialog prompting you to confirm, when you delete
objects, clear the check box Confirm.
If you want to use another spacing for the grid in the Frame, enter a larger or a smaller number for
the Frame grid.
Compare Select Options in the Frame
Compare Modeling
Back to Selecting Settings in Plant Simulation
As daylight saving time is widely used internationally, you will also use it in your simulation model.
To select units and time settings, which only apply to the active model, select File >
Model Settings > Units.
To select units and time settings, which apply to all new models, select File > Preferences > Units.
• Select the check box Daylight saving time.
• If the plant you are modeling is located in the European Union, you do not have to change the
default settings. Here summer time starts at 02:00 o’clock in the morning Greenwich Mean Time
(GMT) on the last Sunday in March. It ends at 03:00 o’clock in the morning on the last Sunday in
October. In the EU, all time zones change at the same moment.
• If the plant you are modeling is located in the United States of America, you have to change the
settings. For most of the US daylight saving time starts at 02:00 o’clock in the morning on the
second Sunday of March. It ends at 02:00 o’clock in the morning on the first Sunday of November.
If your specific modeling needs require it, you can also change the display of the Time scale. You
can enter a number between 0 and 86400. You can enter an integer greater than 1 into the text
boxes next to Transfer if.
You might, for example, divide a minute into 100 units, instead of in 60 seconds, or you might want
to read 1:50 as 1.5 hours instead of 1 minute and 50 seconds.
You can only change the display of the time scale, not the time scale itself.
A time statement consists of four numbers, separated by colons, normally in the format
days:hours:minutes:seconds. Plant Simulation stores the value itself in seconds and converts it at
output time for the display.
Plant Simulation converts times according to the values you enter into the text boxes Time scale
and Transfer if.
The following examples illustrate what to enter to achieve different displays of the time:
• If you want to use the standard time format, 24 hours to the day, 60 minutes to the hour, 60
seconds to the minute, use the default setting Time Scale 1/1.0 Transfer if 24:60:60.
• If you want to simulate a longer period of time and want to display the time in the format
years:months:days:hours, enter Time Scale1/3600 Transfer if12:30: 24, as an hour has 3600
seconds, a year has 12 months, a month has 30 days, and a day has 24 hours.
• If you want to divide a minute into 100 subunits instead of 60 seconds, enter Time Scale1/0.6
Transfer if 24:60: 100.
You can change the settings of the objects, i.e., the values of attributes, in a number of ways. You can:
• Change Values in the Dialog of the Objects
As a rule you are going to select the settings of the individual objects in your simulation model in
the dialogs of the respective objects.
To do so, you either enter a value into a text box.
All of these settings correspond to attributes which you can also access with the programming
language SimTalk. The What’s This help for the respective dialog item shows the name of the
attribute in the bottom row next to SimTalk.
You can also change the settings, which you can select in or enter into the dialogs of the objects, by
assigning a value to an attribute in SimTalk. Compare the examples below.
To set a constant processing time of three minutes, you can enter the setting below into the dialog.
When you enter a string into an assignment Plant Simulation does not differentiate between
sentence case and lower case. When you query the value, it shows it in sentence case
as the respective drop-down list shows it. In the example above you could enter “Linear
sequence”, “linear sequence”, “LINEAR SEQUENCE”, etc. When you query the value with
print, Plant Simulation shows Linear sequence.
To manually set the SingleProc up, you can clear the check box Automatic.
You can also access the values of the settings of the objects in the dialog Show Attributes and
Methods of the respective object.
• To open the dialog, click the object and press the F8 key.
• Enter the new value into the dialog that opens or select a value in the drop-down list.
To toggle the value of an attribute of data type boolean from true to false and vice versa, double-click
the row of the attribute in the dialog Show Attributes and Methods.
Instead of opening the dialog of each and every material flow object in your model and entering
values for a single attribute or for a number of attributes into the text boxes, you can define which
attributes of which objects the AttributeExplorer gets.
This way you can manage the attributes defining the settings of the individual stations in your
simulation model at a single location. You can then enter different values for the capacities, the
times, etc. Plant Simulation writes these values back to the dialogs of the objects and uses them
in your simulation model. You can also export this settings table as a tab-delimited text file and
import this file into the AttributeExplorer of another simulation model, thus using identical settings in
several of your simulation models.
You can also use the AttributeExplorer to find objects of the type you define, to find attributes, for
example the position of a number of objects, to align them in the Frame, etc.
Compare Set Parameters with the AttributeExplorer
Compare Enter the Attributes You Want to View or Change
Back to Change Values in the Dialog of the Objects
Back to Change Values by Assigning a Value in SimTalk
Back to Change Values in the Dialog Show Attributes and Methods
Back to Changing the Settings of the Objects
2. Click the right mouse button anywhere in the Class Library and select Find Object on the context
menu.
3. Select what you want to find from the left drop-down list. You can select to:
To find the name of an object you inserted into your simulation model:
1. Select Name from the left drop-down list.
2. Type in the name of the object you want to find into the right drop-down list. We entered
singleproc.
3. When you do not select the check box Match whole word only, Plant Simulation finds all
words that contain the word you entered. In our example it finds all word containing the word
SingleProc, such as SingleProc, SingleProc1, SingleProc11, MySingleProc, etc.
4. Type the name of the folder or the Frame into the text box Look in, where Plant Simulation is
going to start searching for the expression you entered into the text box.
Instead, you can also click and select a folder or a Frame in the dialog Select Object.
To search on the highest level of the structure, accept the default setting that Plant Simulation
enters, namely the period (.).
5. Select Include subframes to also search all Frames located in the Frame in which the item you
are searching for is located.
7. Double-click the name of the object in the results field, to open its dialog. You can then change
any settings.
8. When you select Match whole word only, Plant Simulation only finds entire words that exactly
match the word you entered. In our example it only finds the word singleproc.
9. When you select Match whole word only, and also select Match case, Plant Simulation only
finds words that exactly match the word you entered, including upper and lower casing. In our
example it only finds the word singleProc.
10. When you select Regular expression, Plant Simulation also finds the regular expression you
select. Click and select any of the items displayed in the window Regular Expression. Plant
Simulation enters the special characters designating that expression into the right drop-down list.
Beginning of line ^
End of Line $
Group \(\)
Or \|
Searching with regular expressions allows you to use wild cards in the string you are searching for.
• To find all strings that contain a sequence of the character a, followed by any character, and
the character b, enter a.b into the text box.
• To find all objects whose name starts with an upper case S, enter ^[S].
• To find all objects whose name does not end with an e, enter [^e]$.
• To find all objects whose name contains an upper case L, followed by any character, followed
by proc, enter L.*proc into the text box.
2. Enter any SimTalk expression whose attributes or methods are identical to the expression you
enter in the drop-down combo box. You might, for example, enter the name of an attribute or a
method and the expression you are looking for, such as Proctime = 100, or OpenCtrl = void, etc.
4. Click Find.
To find any text or any value contained in a built-in or a user-defined attribute of an object which you
inserted into your simulation model:
1. Select Attribute from the left drop-down list.
2. Enter any text or value contained within a built-in or a user-defined attribute of an object in the
search scope.
4. Click Find.
To find any text, which you entered as source code into any Method object which you inserted into
your simulation model or in any user-defined attribute of data type method:
1. Select Source Code from the left drop-down list.
3. When you select Ignore inherited name or text Plant Simulation then only finds the original
source code you entered into a Method object, and not the source code in derived or duplicated
objects.
4. Click Find.
5. To open the Method that Plant Simulation found and to jump to the first occurrence of the item,
double-click it in the results pane. Double-clicking or selecting Open again jumps to the next
occurrence of the found item.
To jump to the previous occurrence in the source code, hold down Shift and double-click.
6. To replace the found source code with other source code, click one or several Methods in the
results list with the right mouse button and select the command Replace With. Then, enter the
replacing source code into the dialog which opens.
2. Enter any text or any value contained within a list or table in the search scope.
4. Click Find.
• To run the simulation you will insert an EventController that starts, stops and resets the simulation
run. You can re-use each and every simulation model you created as an application object
in other simulation models.
By inserting Frames into Frames you create a randomly nested hierarchy of models. This way
you can build and structure simulation models that exactly match the plant you are simulating,
and break down complex tasks into manageable chunks.
• You can derive or duplicate each object and re-use it as often as required, which introduces an
important time-saving key feature of Plant Simulation, namely inheritance: A derived object, i.e.,
a child object, retains a controllable link to the template object, i.e., the parent object. In many
cases the immense advantage of inheritance regarding productivity and the low number of errors
only becomes clear at a later point in time, when you actively work with your simulation models.
Naturally you can also turn inheritance for individual features off, by clicking the inheritance
button, so that it looks like this .
• The active material flow objects transport and/or actively process mobile objects (MUs), i.e.,
parts, within the simulation models.
The passive material flow objects to not actively process parts. They store parts and represent
tracks on which the processed parts are moved.
• The mobile objects(MUs) represent the parts that are created in, stored in, transported in,
processed in and removed from your simulation model.
• The fluid objects serve for simulating free-flowing materials, be they in liquid, gaseous, or
pourable form. The fluid objects are suited for the food and beverages processing, and for the
pharmaceutical industries.
• The resource objects are intended for modeling how and when Workers move from the
WorkerPool to the Workplaces at the stations.
• Employing objects of data type method you can program the actions that you need to take place
when the conditions you program become true. For this we integrated a powerful programming
language into Plant Simulation. The Methods are either activated as controls by the material
flow objects or by other Method objects. The Method also provides a Debugger to locate errors
and allow you to correct faulty code.
• Lists and tables ensure the random exchange of information between all objects. The powerful
processing of information in Plant Simulation is the result of a variety of functions, data types
and operators.
• The objects Chart and Report allow you to graphically display the statistical values that the
material flow objects collect during the simulation runs.
• With the object Dialog you can create a dialog window similar to the built-in dialog windows
that Plant Simulation provides. This way you can provide a simple user interface for complex
simulation models other users work with. You can also prevent another user from manipulating
a Frame. To accomplish this, insert a Method object as an open control into the Frame.
Double-clicking the Frame will then not open it any longer, but call the control method in which
you might, for example, program it to open a dialog, where the user can then select the settings.
• With the objects BottleneckAnalyzer and SankeyDiagram you can analyze and evaluate the
results the simulation runs provided. Use the ExperimentManager to define how Plant Simulation
executes the simulation experiments.
• Naturally you can also exchange data with other programs and processes using the interfaces we
provide. For integration purposes with other software it is important that data can be exchanged
not only at the beginning and the end of the simulation run but also during the simulation run.
When you create your simulation models, you will more than likely combine these two modeling
strategies:
• The top-down strategy is characterized by a roughly structured model that you break down
step-by-step. The more refined the model becomes, the more detailed it becomes. This approach
requires a large degree of abstraction. The big picture becomes obvious quickly though.
• The bottom-up strategy is characterized by a detailed model that you created by using
prefabricated components with a rather small degree of abstraction. This enables a quick
analysis of the details, but makes it harder to recognize the big picture.
The Source produces the parts that the stations, symbolized by the SingleProcs, are going to
process. The Drain removes the parts, symbolized by the Entities, from the production line after the
SingleProcs have processed them. The Source can represent the receiving department, while the
Drain can represent the shipping department. We also insert a Chart that visualizes the results of
our simulation run in different ways.
You will:
Compare the video Creating a Simple Model under Window ribbon tab > Start Page > Getting
Started > Videos.
Compare Work Through the Tutorial
Compare Working with the Frame
Back to Creating a Simulation Model
Proceed as follows to insert the objects, which symbolize the machines and stations in your plant, into
the Frame that symbolizes the installation or plant you are modeling:
• Start Plant Simulation and open a new model: Click Create New Model on the Start Page,
selectFile > New or click in the Quick Access toolbar .
This opens the Class Library with the built-in objects Plant Simulation provides, the Toolbox and
an empty Frame—in the folder Models—for creating your simulation model.
o Use drag-and-drop to insert objects from the class library into the Frame.
o Click the folder or the tab User Interface and insert a Chart .
o To move the selected object one pixel at a time in the direction of the key, press one of
the arrow keys.
o To move the selected object one grid unit at a time, hold down the Shift key, and press
one of the arrow keys.
• To align all objects to grid points in the Frame window, select all objects by dragging a marquee
over them and click Align to Grid in the Icons ribbon tab of the Frame.
• To delete an object, press the Delete key on the keyboard or click it with the right mouse button
and select Delete.
Once you have inserted the objects, you have to connect them, so that Plant Simulation can move
the parts from object to object through the plant.
• Click the Connector in the Toolbox to activate connect mode. The mouse pointer turns into
crosshairs(+), when it is located over an object to which you can attach a Connector.
• Click the Source and then on the SingleProc to the right of it. This establishes the connection
between the two objects, symbolized by a line. The arrow in the middle shows the direction of
the connection.
To connect several objects one after the other without having to return to the Toolbox
each time you established a connection, hold down Ctrl, while you establish the
connection.
To run the simulation, click in the Home ribbon tab, to insert an EventController
into the model.
• Double-click the EventController to open its dialog window.
• Click the Start/Stop Simulation button to start the simulation, click Start/Stop Simulation
to stop it.
• Click Single Step Simulation to process one simulation event at a time and to proceed
through your model step by step.
• Drag the slider to set the speed of the simulation. The slower the simulation is running the better
you will be able to watch how the parts move through the model.
Now change different components of the model and check the impact of these changes. You might:
• Manually pause SingleProc1 for a while, re-start the simulation, remove the pause and continue
the simulation.
• Select a different Exit strategy for the SingleProc to see how it distributes the parts to the
succeeding machines.
• Change the type of MU which the Source produces: Double-click the Source and click MU. Select
the Container in the dialog Select Object.
Instead of using the buttons in the dialog of the EventController, you can also click the corresponding
buttons in the EventController section of the Home ribbon tab.
• To view the statistics, which the object collected, in the statistics report, select the object and
press F6. This opens a report showing the most important statistics value in meaningful overview.
• To present the results of our simulation run to management, we will use the object Chart . Drag
the objects whose data you would like to show over the icon of the Chart and drop them there or
right-click the Chart and select Statistics Wizard. Then, select the objects there.
Right-click the Chart and select Show.
If you want to, you can play around with the settings to show the values in different ways.
Introducing Classes
Introducing Classes
Imagine that, for example, you have to find the optimum type of store for a production plant. First, you
have to come up with different types or stores that might work for the specific plant, such as fully
automated high bay warehouse, manually operated shelving system, etc. To be able to compare
the different types of stores, you are going to build several simulation models, execute simulation
runs and suggest the type of store with the best cost/gain relation.
Your simulation models are going to be variants of a single basic model, i.e., you are going to use the
same production plant and are going to modify the store.
When creating the model variants you are going to build the basic model first. In conventional systems
you would then copy this basic model until you arrive at the number of variants you need. In Plant
Simulation, on the other hand, you will inherit this basic model, which we call the parent model, and
arrive at child models. The main difference between a copied and an inherited model is that a child
model recognizes which parent it is derived from while a copied model knows nothing about its origin.
Now you are going to insert the different types of stores into the model variants you created. If you
now find a modeling error while modeling the basic model or if a specification changed, a conventional
system requires changing all copies, which is time-consuming and error prone.
In Plant Simulation, on the other hand, you make the change once in the parent model. It then
immediately propagates all of your changes to all of its children, provided you did not change the
setting in the child model. This saves a considerable amount of time and the hassle of manually
updating a number of sub-models.
Go to Classes, Subclasses, and Instances
Go to Using Inheritance
Go to Working with Classes in the Class Library
Back to Creating a Simulation Model
By changing a property in the class object, you change that property for all objects you derived from
this class. This is much less error-prone than having to change the same property for each and every
individual object over and over again.
We recommend to not change the standard settings of the built-in objects if possible. If you
customize them and then merge models later on or if you update the class library later on,
your customized settings are going to be discarded and replaced by the standard settings.
You then have to make your customizations again.
If you need objects with your own settings, we recommend to duplicate the respective
object in the Class Library and then work with this class.
• A class passes all of its properties on to an instance you derive from it.
• A class passes those of its properties on to a subclass you derive from it, for which you do not
deactivate inheritance. Remember that a button that looks like this means that inheritance
is active.
Inheritance only works from class to subclass/instance, not the other way around!
• A subclass is an object in the Class Library, which inherits some, but not all, of its properties
from another class. By deactivating inheritance for certain dialog items, you can define properties
that only apply to this subclass. An example of subclasses could be several lines that only
differ in their length.
To create a subclass from a class, right-click the class in the Class Library and select Derive.
When you open the dialog of the derived object, you will notice that inheritance is active for all
dialog items, denoted by a button that looks like this . Then, change the identifying property
of the subclass. In our example below we derived the object Line to create the subclass. We
renamed it to Line_5m and changed its length to 5 meters.
Instead, you can hold down Ctrl and Shift, and click the object you wish to derive an instance
from with the left mouse button. Then, hold down the mouse button, drag the object to the
location of your choice, for example into another folder in the Class Library, and release both
keys and the mouse button.
• To create a copy from a class, right-click the class in the Class Library and select Duplicate.
When you open the dialog of the duplicated object, you will notice that inheritance is deactivated
for all dialog items, denoted by a button that looks like this .
Instead, you can hold down Ctrl, and click the object you wish to duplicate with the left mouse
button. Then, hold down the mouse button, drag the copy to the location of your choice in the
Class Library, and release Ctrl and the mouse button.
• An instance is an object, which you insert into your simulation model from the Class Library or
the Toolbox by dragging a class object to a Frame and dropping it there.
The objects use class relations and origin relations to inherit their properties from other objects:
• The object inherits all of its basic properties from its class object. This includes settings it has by
default, built-in Methods, basic functionalities, etc. The class is the object in the Class Library you
instantiated the selected object from.
• The object inherits its settings from the origin object, provided you did not change them locally
within the object. The origin of the selected object is the object you derived it from.
Making full use of the potentials of inheritance saves a considerable amount of time and effort during
modeling.
• Merge classes by holding the Alt key and the left mouse button down. Then drag the replacing
object in the Class Library ever the class to be replaced, and drop it there.
Go to Using Inheritance
Go to Working with Classes in the Class Library
Compare Load Object
Compare Replacement Mode
Compare replace
Back to Introducing Classes
Using Inheritance
Using Inheritance
Inheritance allows one class or object to incorporate data or behavior of another class or object.
Inheritance has a number of applications, among them:
• Specialization of existing classes or objects. Here, the new class or object has data or behavior
aspects, which are not part of the inherited class.
• Code re-use to allow a new class to re-use code, in our case any of the settings you selected,
which already exists in another class.
The toggle button to the right of a dialog item activates or deactivates inheritance for that
item in the dialogs of the Plant Simulation objects.
• A button that looks like this means that inheritance is active. Then the object inherits, i.e., uses,
the value from the origin object from which you derived it. When you modify the value of the origin
object, Plant Simulation also modifies the value of the derived object.
Let us illustrate this with an example. We derive the SingleProc in the Class Library and insert
it from the Class Library into the FrameModel1. Then, we derive Model2 from Model1. The
origin of the SingleProc in Model2 is the SingleProc in Model1. When we now change the value
of an attribute that inherits its value in the SingleProc in Model1, the SingleProc in Model2 also
applies this value.
• A that looks like this button means that inheritance is not active. The values you enter only
apply to the current object.
The object might display the current value only after you click Apply.
The objects can use class and origin relations to inherit some, or all of their properties from other
objects. To get an overview over which object inherits from which other object, right-click the object
you are interested in in the Class Library and select Show Inheritance. The dialog Inheritance
show the paths of all objects that are derived from the selected object and thus inherit some or
all of its properties from it.
The objects can use class and origin relations to inherit some, or all of their properties from other
objects.
To select the object in the Class Library that the selected object was instantiated from, right-click the
object you are interested in in the Class Library and select Show Origin.
You can repeat this to move up in the hierarchy until Plant Simulation does not select another object.
Then you have reached the object from which the selected object was derived from originally, i.e., its
origin.
Go to Show the Origin of an Object in the Class Library
Go to Working with Classes in the Class Library
Back to Using Inheritance
The Class Library show the built-in objects in a hierarchical structure in folders and sub-folders. By
default the Class Library contains a folder with MaterialFlow objects, with Resource objects, with
InformationFlow objects, with MUs, with UserInterface objects, for Models and for Tools. When you
start modeling, you will derive child objects from the built-in class objects or from class objects
you, or a co-worker, built from scratch.
Plant Simulation initially opens the frame Frame for creating your simulation model, and any other
Frames you add later on, in the Models folder. The folders in the tree window share a number of
properties with the other objects. Among others you can apply a number of control methods, for
example the rename control, etc.
When you add an add-in program, the Class Library also shows its objects—either loose or in a folder
of its own—on the topmost level of the structure below Basis . Note that Basis designates the Class
Library itself, compare the anonymous identifier basis.
You can configure the Class Library to best meet your needs. You can do this for new simulation
models which you create and for any of your existing models. This results in a lean Class Library and
an uncluttered Toolbox, preserving precious screen space. You can:
• Add Basic Objects to the Class Library or Remove Them from It. Naturally you can also add or
delete objects at a later point in time.
• Update a Library.
When you select the command File > New Model for the first time, Plant Simulation opens the
dialog Manage Class Library by default.
Compare Using Inheritance
Compare Saving a Folder or an Object and Loading it into Another Model
Compare Save a Folder as a Library
Compare Update the Class Library
Go to Set the Root Folder for Your Simulation Model
Back to Working with Classes in the Class Library
To add the built-in objects, which are part of your program package, to the Class Library and
to the Toolbox:
• Select the objects, which you need for creating the current and future simulation models.
Deselect the objects, which you do not need.
• Click Apply to add the selected objects to the Class Library and to the Toolbox or to remove
them from it.
• If you want Plant Simulation to always show this dialog, when you open a new model, select the
check box Always show this dialog when you open a new model. Then you can configure
each simulation model to your liking. If you want to use the same settings for all new simulation
models, clear the check box.
• If you want Plant Simulation to apply the settings you selected in the dialog to all new models,
which you create hereafter, click Apply to New Models.
To add any of the built-in tools or libraries, which are part of your program package, to the Class
Library and to the Toolbox:
• Select one or several tools and libraries, which you need for creating the current and future
simulation models.
Deselect the tools or libraries, which you do not need.
• Click Apply to add the selected objects to the Class Library and to the Toolbox or to remove
them from it.
Plant Simulation adds the folder AssemblyLine within the folder Application Objects to the
Class Library and the Toolbar AssemblyLine to the Toolbox.
To add one of the libraries, which you yourself developed, to the Class Library and to the Toolbox:
• First you have to tell Plant Simulation there to look for the library, which you are going to add.
This location may be a folder on a local computer or on a network drive.
Select File > Preferences. Click to the right of Libraries directories and select the path.
You can also type in several directories separated by a semicolon. The library manager checks
this folder/these folders for the most up-to-date version of a library and lets you download it to
your hard drive from there. This allows you to add company-specific and project-specific libraries
to your simulation model.
Click OK.
• The dialog Manage Class Library show the library, FinalAssemblyEU in our example, on the tab
Libraries under Additional Libraries.
Go to Update a Library
Update a Library
You can also update an outdated library on your computer with a newer version with the library
manager. Let’s say you have to update a model, which you haven’t worked with for a while and which
contains a library. If the library manager finds a newer version of the used library in the directory, which
you entered under File > Preferences>Libraries directories, the Caption Bar show this message:
• Click Manage Libraries. The dialog shows libraries in red for which a newer version is available.
• Click in the cell below version to show the version number of the newest version and select it if
you want to update the Class Library. Click OK.
Plant Simulation show a Merge Report with detailed information about added and deleted
objects, about the instances of the objects which were affected by the changes and which
classes were deleted.
• You can also update all outdated libraries in your model, by clicking Update All Libraries.
Before you start modeling, we recommend to think about the structure in the Class Library of your
simulation model, as a clear structure will facilitate locating the objects.
To get an idea about structuring, you might want to take a look at the application object libraries
that were installed, when you set up Plant Simulation. By default these are located in C:\Program
Files\Siemens\Tecnomatix Plant Simulation XX\Libraries.
When you start modeling, we recommend to create new folders for the objects you use in your
model, rather than store the objects within the built-in folders. Otherwise the risk of changing the
built-in objects inadvertently might have confusing and unpredictable effects. This also facilitates
saving your application object libraries as an object file, which you can then load into any existing
simulation model.
To create a new folder:
• Right-click Basis in the Class Library of you want to insert the new folder on the same level
as the built-in folders.
• Right-click any folder in the Class Library of you want to insert the new folder into that folder.
• Rename the folder: Click NewFolder once and type in a meaningful name. In our application
object libraries we use ApplicationObjects.
We also recommend to create a sub-folder for the basic, built-in objects that your simulation model
uses, within the folder ApplicationObjects. In our application object libraries we named this
sub-folder BasicObjects. This facilitates that your application object libraries are independent of the
language of the model that the user selects and of the naming conventions of the built-in objects you
use in your model. In addition, this simplifies loading the application object library into other models,
as this mechanism makes merging objects superfluous.
Compare Using Inheritance
Compare Saving a Folder or an Object and Loading it into Another Model
Compare Update the Class Library
Go to Set the Root Folder for Your Simulation Model
Back to Working with Classes in the Class Library
To prevent Plant Simulation from wasting RAM, you might, for example, not want to insert a Method
that has a large number of instances into a large number of Frames. Instead, you can directly call this
Method in which you programmed an action that many object use, from the Class Library. In this
case, you can use the anonymous identifier rootFolder to avoid long paths.
When you use rootFolder in a Method, the rootfolder is a folder in the Class Library for which you
have set the attribute RootFolder to true. Then, Plant Simulation searches for that folder, starting
with the class of the Method, upwards in the hierarchy of objects.
In your application object library, you will, as a rule, set the top folder that contains all your application
objects as the rootfolder. This allows you to access any of the application objects you created, to
access any of the dialogs you, or your colleagues designed, and so on.
To set the root folder:
• Use the attribute RootFolder. You might, for example, enter into a Method:
.ApplicationObjects.RootFolder := true
Or
• Right-click the folder you would like to use as the root folder in the Class Library. Select Show
Attributes and Methods, and click in the window. Press r in the keyboard and scroll down to
RootFolder. Double-click it. Plant Simulation adds an upper-case R to the icon of the folder .
You can also use the anonymous identifier rootFolder within Methods in which you programmed
controls. Here Plant Simulation looks for the folder for which you set the attribute RootFolder, starting
with the class of the Frame into which you inserted the object in which you programmed the control.
Compare Create a Folder Structure for Your Simulation Model
Back to Working with Classes in the Class Library
To create your own customized classes, you can either derive one of the built-in classes in the Class
Library and modify its features, or you can built a class of your own from scratch, for example in a
Frame in the Class Library.
To create a class that shares all of its features with the parent class:
• Do not change anything in the class object you want to derive an instance from. Then, right-click
that object in its folder in the Class Library and select Derive. This adds the derived class to
the bottom of that folder, below the icon for the toolbar and adds a number to its name, for
example SingleProc1. Then, rename the new class.
Or
• Select multiple objects in the Frame and drag-and-drop them onto the respective folder in the
structure in the Class Library to create classes of these objects.
Or
• Hold down Ctrl and Shift, and click the object with the left mouse button. While holding the
mouse button down, drag the object into another folder in the Class Library, and release both
keys and the mouse button. Be aware that the class object keeps its previous name, when you
proceed like this. Then, you can rename the new class.
To create a subclass that shares some, but not all, of its features with the parent class:
• Deactivate inheritance in the class object for the features you want to modify in each of the
instances separately. Remember that a button that looks like this designates that. The features
with active inheritance will be passed on unchanged to the instances of the class object.
• Right-click the class in its folder in the Class Library that has the features you would like to use and
select Derive. This adds the derived class to the bottom of the folder, below the icon for the
toolbar and adds a number to its name, for example SingleProc1. Then, rename the new class.
Or
• Hold down Ctrl and Shift, and click the object with the left mouse button. While holding the
mouse button down, drag the object into another folder in the Class Library, and release both
keys and the mouse button. Be aware that here the class object keeps its previous name. Then,
you can rename the new class.
To create a class of its own, which originally shares the settings of the original class, but does not
keep an inheritance relation with it:
• Right-click the class in its folder in the Class Library that has the features you would like to use
and select Duplicate. This copies the selected object or model and creates a new class from
it, severing all inheritance relations. Changes you make to the original class object are not
passed on to the copy you create. Or
• Hold down Ctrl, and click the object you wish to duplicate with the left mouse button. While
holding the mouse button down, drag the copy to another folder in the Class Library, and release
Ctrl and the mouse button.
Compare the video Creating a Class under Window ribbon tab > Start Page > Getting Started
> Videos.
Compare Classes, Subclasses, and Instances
Compare Using Inheritance
Back to Working with Classes in the Class Library
• Drag it to the folder above which you want to place it in the structure and drop it there.
To move a folder, a Frame or an object into another folder in the tree window:
• Click the folder, Frame or object you want to move into another folder with the left mouse button
to select it.
• Hold down the Shift key, drag the object to the destination folder and drop it there.
To copy a folder, a Frame or an object into another folder in the tree window:
• Click the folder, Frame or object you want to copy into another folder with the left mouse button
to select it.
• Hold down the Ctrl key, drag the object to the destination folder and drop it there.
To merge folders, hold down Alt and drag the replacing folder in the Class Library into the folder to
be replaced and drop it there. Plant Simulation then forms the superset of both folders and merges
those classes, which are present in both folders.
To merge objects, hold down Alt and drag the replacing object in the Class Library into the object to
be replaced and drop it there.
To arrange the order in which Plant Simulation show objects within a folder in the tree window,
for example sort them by function or by name:
• Click the object with the left mouse button to select it.
• Hold the mouse button down, drag the object to the location of your choice in the folder and
drop it there.
• Drag the object to the object name of the toolbar located at the bottom of the respective
folder and drop it there.
• To rename an open object, press F4 and enter another name into the dialog Rename.
Plant Simulation does not show objects you insert into any Frame in the Models folder, as it only
shows classes of objects in the Class Library, not instances of those classes.
To view the hierarchical structure of objects within a Frame, right-click the Frame in the Class Library
and select Show Structure on the context menu.
You can load an application object, which may be a single object or an entire simulation model you
created in a Frame, into other simulation models or share it with your co-workers.
As compared to an object file a library is a collection of objects for which you enter a version,
which you maintain over time and which you share with your colleagues. The version number
enables you to either update your simulation models with a newer version of the library or to stay with
the present dated version.
You can:
• Save a Folder as a Library
To save a folder as a Plant Simulation library (.lib), right-click it in the Class Library and select Make
Library.
• Type in the name of the library. You can type in any combination of letters, numbers, spaces,
and special characters.
• Type in the version of the library. You can enter any number of number and letters separated
by periods.
• Click OK.
In addition, you can type in one or more alternative paths for your library. As a rule, you will not
enter an alternative path.
Plant Simulation identifies a library by its absolute path to the library folder in the Class Library. When
you type in an alternative path, this absolute path will also be assigned to this library. This may
be helpful for two reasons:
1. When you rename the library folder in a new version of your library or when you move the
library into another folder, the absolute path of the library changes:
Plant Simulation will from then on treat the library as another
library. If you do not want this, you can type in the previous path to the library as an alternative
path. This way you can update a model, for which the library is still located under the previous
path, with the new library. For this model, the library remains at its previous location in the
Class Library.
2. You can use alternative paths to assign several names in different languages to the library folder.
We, for example, also assigned the German path .Tools.EngpassAnalyse language to the library
.Tools.BottleneckAnalyzer. For this reason Plant Simulation considers both folders as the same
library and can thus update both folders with the same library file.
When you type in the name of a language between $ signs in front of the alternative
path, for example $German$ or $Japanese$, Plant Simulation will automatically use this
path, when you load this library into a model with this language, i.e., when the model
did not already contain this library. The alternative path for the BottleneckAnalyzer is
$German$.Tools.EngpassAnalyse for example.
You can type in any number of alternative paths. Separate alternative paths with
a line break.
When renaming a library in the Class Library, pay heed to the messages that Plant Simulation
displays!
Click No in the dialog to retain the library properties of the folder. Clicking Yes will make the folder a
normal folder again without any of the properties that designate a library.
If you want the renamed library to be treated as a different library from now on, click Yes.
Renaming the library folder does not changed the name of the library as such, it will still have the
same name as before.
To preserve the existing objects in your simulation model, and to discard duplicate objects that are
contained in the model you load, you will use Load Object, and then select to Replace the loaded
class with the one in the class library.
To port a lower version of a simulation model or of an application object library to a higher version with
modified and improved classes, you will use Update Class Library.
• Right-click any folder in the Class Library and select Load Object on the context menu.
• If an object or a Frame with the same name as the object to be loaded already exists in your
simulation model, Plant Simulation opens the dialog Replace or Rename Class.
• To Replace the loaded class with the one in the class library , select the radio button. Then,
Plant Simulation does not load the new object, but replaces it with the existing object and merges
all inheritance hierarchies into one.
• Enter a new name for the duplicate object into the text box.
When the object to be replaced is a Frame, click Replacement Mode on the General
ribbon tab of the Frame. Then, select if you want to Merge the contents of the new
Frame with the existing one or if you want to Exchange the existing Frame with the
new Frame.
• Hold down the Alt key, click the replacing object and drag it over the object to be replaced while
holding the left mouse button down.
• When replacing and merging is possible, a dialog opens where you can confirm that you want to
replace the object or not replace it.
Instead of using Load Object, you can also drag an . obj file from the Windows Explorer to the
Class Library, and drop it there.
Compare Save a Folder as a Library
Compare Save an Object or a Folder as an Object
Compare Load an Object or a Folder into Another Folder
Back to Saving a Folder or an Object and Loading it into Another Model
As a rule, you will create a new folder before you load the object or the folder.
You will use Load Object into Folder, when you do not want to replace any of the existing objects
and their hierarchical structure in your simulation model with the object/objects you are going to load.
The tools in the Tools folder in the Class Library, such as the BottleneckAnalyzer, use this technique
and provide their own parametrized BasicObjects that are independent of the object classes in the
built-in folders.
Compare Save a Folder as a Library
Compare Save an Object or a Folder as an Object
Compare Load an Object or a Folder into Your Simulation Model
Back to Saving a Folder or an Object and Loading it into Another Model
• Right-click any folder in the Class Library and select Save/Load > Update Class Library. This
loads the object into the Class Library at the Basis level.
When loading the object file, Plant Simulation supposes that the classes in the file it is loading are the
most recent ones, and replaces any existing classes with the same name in your model file. Note that
this replaces the old class with the new class, but attaches any instances of the old class to the new
class, and thus preserves the settings you made in these instances. This applies for classes that
are located in the hierarchy directly below the newly saved class.
For classes that were saved through an inheritance relation, and that are located outside of this
hierarchy below a class, Plant Simulation opens a dialog, where you have to select to replace any
duplicate classes or to rename them.
Compare Saving a Folder or an Object and Loading it into Another Model
Back to Working with Classes in the Class Library
When you add an add-in program by clicking Manage Class Library in the Home ribbon tab, Plant
Simulation also adds a tab/toolbar with the objects of this add-in.
• To add your own toolbars to the Toolbox, right-click the folder you want to add the toolbar to
and select New > Toolbar.
Plant Simulation adds toolbars you define, toolbars with the objects of add-in products ( Home
ribbon tab > Manage Class Library), and toolbars of object libraries to the right of or below
the tabs of the built-in objects in the Toolbox.
• To add an object to a toolbar you defined, drag the object from a folder of the tree view in the
Class Library to the window/toolbar you defined into the Toolbox and drop it there.
After you inserted an object from the Toolbox into a Frame, Plant Simulation
automatically switches back to the tool Select on the toolbars of the Toolbox.
• To change the name Plant Simulation show on the toolbar, go to the folder that contains the
objects in the tree view, select the icon at the very bottom of the folder, press the F2 key and
enter a term of your choice into the textbox Label. If you do not enter a label, Plant Simulation
show Toolbar, i.e., the name of the toolbar in the Toolbox.
• To open the class of the object, right-click it and select Show Class.
You will:
• Add Objects to the Toolbox or Delete Them from It
Compare Toolbox
Back to Working with Classes in the Class Library
When you derive an object from another object in the Class Library, modify the icon of
the new object, and add it to the toolbar, you might have to resize the window before
Plant Simulation displays the new icon.
• To add multiple objects to a toolbar, select them and drag them from their folder in the Class
Library to the toolbar of your choice and drop them there.
• To remove a button/object from the toolbar, right-click it and select Delete from Toolbar.
• To change the order in which the icons of the objects are displayed on the toolbar, click the button
you would like to move and drag it to a different location on the toolbar.
• Right-click the folder whose tab you would like to add the object to in the tree window and select
Show Structure. This opens the window Structure. Expand the folder here.
• Hold down the Ctrl key and click the object you would like to copy on its toolbar in the Toolbox.
This selects the object in the tree window.
• Drag the object from the tree window to the icon of the toolbar in the dialog Structure.
Modeling Hierarchically
Modeling Hierarchically
Modeling hierarchically is the concept of inserting components, which you modeled in a Frame, into
other Frames. This way you can model, and test, the individual components of your simulation model
detached from the Frame which holds your complete simulation model.
You can combine any number of components in the Frame in which you build your overall model. In
our example we modeled a component in the Frame MyComponent1 and inserted it into Frame
MyPlantAnytown, which holds our complete simulation model.
To open the window of the Frame from which the current Frame has derived, click . In our
example, clicking Open Origin opens the Frame MyComponent1 in the folder ApplicationObjects>
> Components in the Class Library.
You can thus model the components, such as large machines or entire departments, to match their
counterpart in your real-life plant as closely as possible. You can also insert these components
several times. You can use these components in exactly the same way as you use any of the other
user-defined or built-in objects. You can create icons for them and insert them into your model just
as you would any of the material flow objects. In addition it allows you to clearly structure your
simulation model.
Another advantage of modeling hierarchically is the fact that you can distribute developing the
simulation model among several colleagues, even among several sites. You can then integrate the
components into the complete model at any point in time.
Go to Test a Component You Modeled
Compare Working with the Frame
Compare Show the Contents of a Frame in the Class Library
Compare Model Transitions between Frames
Compare Modeling Hierarchically in the 3D Viewer
Back to Creating a Simulation Model
Modeling hierarchically allows you to test the components detached from your complete simulation
model, thus ensuring that they work as intended, before integrating them. For this you can create a
testing environment with the desired level of detail. Insert the component into the test Frame, insert a
Source and a Drain, connect all objects and start the simulation.
As a rule you will create your simulation models in the Frame that we placed in the folder Models
in the Class Library. Naturally, you can also insert additional Frames into this folder and model there.
To rename this Frame, so that it matches the name of the plant you are modeling, do one of the
following:
• Right-click it in the Class Library and select Rename.
• In the Frame window itself, click Rename on the Home ribbon tab or press F4.
To build your simulation model, you will insert any of the built-in objects or any objects you yourself
design, and connect these objects, which represent your stations, with the Connector.
To run the simulation you will insert an EventController that starts, stops and resets the simulation
run. You can use each and every simulation model as an application object to create additional
simulation models.
By placing Frames within Frames you can build hierarchically structured models. This way you can
build and structure simulation models that exactly match the real world systems you want to simulate.
It also enables you to break down complex tasks into manageable chunks and distribute a laborious
task to several co-workers.
You will:
• Add a Graphic and a Color to the Background or the Icon of the Frame
You can select general options for modeling under File > Preferences/Model Settings in the program
window. You can also select options for each Frame individually, which only apply so that Frame.
To do this Click
Initially, any Frame you insert into your model uses the settings you selected under File > Preferences
in the program window. Select any of the commands to activate or deactivate them for the selected
Frame. To restore the built-in settings, and deactivate any of your changes, select Inherit Settings.
Option On Off
Show MU Names
Show Predecessors
Show Successors
Show Comments
Show Connections
You can rename any object in the Class Library. Be aware though that your simulation
model may not run correctly any more when you rename an object that you entered as
entrance or exit control into another object or MUs Plant Simulation entered in a Source
object under Attributes > MU Selection > MU. In these cases the path statements will
be wrong after renaming objects.
You can:
• Insert an Object from the Class Library
• While holding the mouse button down, drag the object to the target position in the Frame window
and drop it.
• Click the toolbar, i.e., the tab, which contains the object you would like to insert.
• Click the object with the left mouse button to select it.
• Move the mouse to the target position in the Frame window and click the mouse button once.
• To insert several instances of the same object class, hold down the Shift or the Ctrl key while
you click the mouse button in the Frame window. This way you do not have to return to the
Toolbox each time after inserting an object.
• To go to the class of an object, press the Ctrl key and click the object in the Toolbox. Note that
Plant Simulation highlights the class object in the tree window in the Class Library. Double-click
that object in the tree window to edit class properties or hold down the Ctrl+ Alt keys and click
the object in the Toolbox. Note that this does not work, when the object is already selected.
Add a Graphic and a Color to the Background or the Icon of the Frame
• Drag a .gif, .bmp, .ppm, .ppm raw, .dgn, .dxf, or a .dwg file from the Windows Explorer, the
Internet Browser, the icon library etc. over the background of the Frame and drop it there.
This new graphic will then replace the icon named background of the Frame. If you have not
assigned a background icon, Plant Simulation automatically creates a background icon. Note
that Plant Simulation does not automatically scale the size of the background icon to the size of
the Frame!
You can also add a background picture with the method getBackgroundImage.
• Drag a layout drawing you created in Autodesk over the background of the Frame and drop it
there.
You can use this layout drawing as the actual background of the Frame and insert the Plant
Simulation objects on top of it. This is feasible when your simulation model is not too complex.
If you are modeling a complex plant, this might not be practicable, as it might lead to a
very cluttered layout. Then, you might want the layout drawing to be one of the icons
of the Frame, and have the MUs move through the plant on the animation lines you
define in the class of that Frame.
Be aware that the .dxf, .dgn or .dwg files are vector based, whereas Plant Simulation uses pixel
based graphics. This means that you have to think about how to transfer one size to the other.
Proceed as follows to scale an AutoCAD drawing so that it fits onto the background of your Frame:
• Measure the dimensions of your AutoCAD drawing with the AutoCAD measurement tools and
convert these dimensions to meters! Then compare the x-dimension with the y-dimension and
establish the maximum value, let’s say 90 meters.
• Divide this value by the Frame size you want to use. In our example we divide 90 by 6000 which
results in the value 0.015. This is the required scaling factor for our Frame.
• Click Scaling Factor in the General ribbon tab of the Frame and enter the scaling factor 0.015.
• When you drag the .dwg drawing onto the background of the Frame and drop it there, a dialog
opens asking for the scaling factor of the drawing. Enter the factor to convert the drawing units to
meters. If the drawing units are millimeters for example, you will enter 0.001.
To make the background graphic transparent, so that the background color of the Frame shines
through:
• Click Icons on the Home ribbon tab to open the Icon Editor.
• Click the color picker and click in the background of the icon. This makes that color the
active drawing color, which we want to replace.
• Select the transparency color in the Color Palette that replaces the active drawing color.
If the transparency color is not part of the color palette, double-click any field in the Color Palette
that contains a color you do not need, and enter 0, 128, 128 into the dialog Colors > Custom and
click OK.
• Open the Icon Editor by clicking Edit Icons on the Home ribbon tab. Click New in the Edit ribbon
tab, click Import, and select the type of file and the actual file you would like to open.
• Draw an icon for the Frame and name it background. Plant Simulation uses this graphic as the
new background graphic.
• To delete the background graphic, select the icon with the name Background in the Icon Editor
and click Delete in the Start ribbon tab.
To draw vector graphics onto the background or in the foreground of the Frame, you can use the
features of the Vector Graphics ribbon tab. As opposed to the pixel-based graphics Plant Simulation
uses by default, you can scale vector graphics or text without loss of quality.
• Click the Vector Graphics ribbon tab of the Frame. The shape of the cursor changes to .
As long as vector graphics mode is active, you cannot manipulate any objects in the
Frame. To deactivate it, click another ribbon tab.
To do this Click
Draw a line.
• Drag the mouse into the Frame window, click the left mouse button once and drag the mouse
until the shape has the form you need.
• To change the properties of the shape/text you drew, double-click it and edit its settings in the
dialog Graphic Settings.
• To change the form of the shape or to move it, select it, click one of the handles and drag
the mouse.
• To move a vector graphics object one pixel at a time, press the respective arrow key.
To move a vector graphics object one grid unit at a time, hold down Shift press the respective
arrow key.
• To enlarge a vector graphics object by one pixel, hold down Ctrl and press the respective
arrow key.
• To enlarge a vector graphics object by one grid unit, hold down Ctrl and Shift and press the
respective arrow key.
• To place an object onto a different layer, click and enter the number of the layer into the
text box Layer.
The layers serve two purposes: They allow you to define the drawing order of the item you
placed onto a layer.
o When you enter a negative number, -1 for example, Plant Simulation draws the shape you
created onto the foreground of the Frame.
o When you enter a positive number Plant Simulation draws the shape onto the background
of the Frame.
They allow you to delete all objects on a certain layer: Click and enter the number of
the layer you would like to delete into the text box Layer.
• To group any number of objects, hold down Shift and click each object with the left mouse button,
To draw vector objects, you can also use the methods drawEllipse, drawLine, drawRectangle, and
drawText. To delete the vector objects you can use the methods draseLayer and draseAllLayers.
Go to Add a Graphic and a Color to the Background or the Icon of the Frame
Compare Enter the Stations Which the LockoutZone Stops
Back to Working with the Frame
To create a user-defined ribbon tab or a user-defined context menu with your own, frequently used,
ribbon commands or context menu commands respectively:
• Click Configure User-defined Ribbon Tab or Configure User-defined Context Menu on the
General ribbon tab of the Frame for which you want to create the user-defined ribbon tab or
user-defined context menu.
When a user-defined ribbon tab exists, the button on the General ribbon tab is highlighted.
To create a user-defined ribbon tab in a Frame, which you inserted into another Frame,
deactivate the command Inherit, so that it does not show a check mark to the left.
• Enter the Title of the user-defined ribbon tab with which Plant Simulation show the user-defined
ribbon tab. We entered My Ribbon Tab.
• To show the user-defined ribbon tab for the Frame, for which you defined it, select Active.
• Enter the name of the command that Plant Simulation show on the user-defined ribbon tab in
the Frame. Enter an & (ampersand) in front of a letter to make this letter the access key. You
can select this ribbon command by holding down the Alt key, by pressing the predefined key
combination U and T, and by the pressing that letter. The built-in Plant Simulation access keys
take precedence over any access keys you define!
You can also enter a formula as a ribbon command or a context menu command. A formula is
designated by a leading question mark. When you enter ?Method1 for example, the method named
Method1 will be called. The return value of this method has to be of data type string. This way you
can toggle between different texts, for example between Activate and Deactivate and you can
translate the ribbon or context menu commands into different languages. If the methods return an
empty string (""), Plant Simulation hides the respective ribbon or context menu command.
You can use any formulas, even for example a method call with parameters, such as
?Method1(42) or a table access, such as ?TableFile[1,3].
• Enter the Methods, which the ribbon/context menu commands execute into the text boxes below
method to be executed.
If the method expects a parameter, Plant Simulation automatically passes it. To this parameter,
which has to be of data type list, the selected objects, which are located within the same Frame is
the Frame chose ribbon tab or context menu is opened, are passed.
When Methods are called from the user-defined ribbon tab, the anonymous identifier ? (question
mark) points to the Frame in which you selected the command. This way you can access objects
within the respective Frame.
The commands on the user-defined context menu only apply to the selected object(s)
within the Frame for which you defined the context menu.
• To create the user-defined ribbon tab or the user-defined context menu, click OK. Plant Simulation
show the ribbon tab to the right of the pre-defined ribbon tabs.
o Click to enter the path to and the name of the Method , which tells Plant Simulation to
open the dialog, into the text box below executed method.
o Create a Method with the name you entered above and enter
name_of_your_user_defined_dialog.open.
• To insert an object in the Frame, select the object in the Class Library or the Toolbox, drag
it over the Frame window and drop it there.
• To show or hide the grid in the Frame window, click . Showing the grid makes it easier to insert
an object at exactly the position you need it to be at.
• To select an object, click it with the left mouse button. You can then move it in the Frame by
dragging the mouse.
• To nudge the selected object one pixel at a time in a direction, press the respective arrow keys on
the keyboard. To move the selected object one grid unit at a time, press Shift+the respective
arrow key.
• To deselect a selected object, click another object or click anywhere in the Frame.
• To select more than one object in a Frame at a time, hold down Shift, and click the objects you
wish to mark or drag a marquee over the objects: Hold the left mouse button down, and drag the
mouse over the objects, making sure the marquee encloses all of them, and then release the
mouse button. You can also combine both methods.
To select all objects in the Frame window, press Ctrl+A or use the method selectContents.
• To search for any object in the Frame window, click in the Frame window and start typing its
name. Plant Simulation then finds and selects the object.
• To connect objects, use the Connector. The Connector displays handles after you select
it. Click a handle to change its shape, i.e., to make the Connector longer or shorter or to move
the anchor point up or down.
• To show or hide connections between objects which you established with the Connector, click
on the General ribbon tab.
• To zoom the selected icons in the Frame to the greatest possible zoom factor, drag a marquee
over the icons with the right mouse button and release the mouse button. To return to the original
size of the icon, click Original Size on the General ribbon tab.
• To show or hide the names of the objects you inserted into the Frame, click .
• To prevent another user from modifying the structure of the model, click .
• To edit the icons of the Frame, and to add animation structures to it, click .
• To model transitions between Frames use the Interface. When you connect Frames, which have
several Interfaces, with objects, Plant Simulation opens the dialog Select Interface. Select the
Interface the Connector attaches to and click OK.
• To change the size of the icon of an object you inserted in a Frame, hold down Ctrl and Shift.
Then, click anywhere on the border of the icon and drag the mouse until the size of the icon
meets your needs. To return to the original size of the icon, select Icon > Original Size.
• To open the Frame you double-click and to close the Frame it is contained in, press the Shift key
and double-click a Frame located within a Frame.
• To move down in the hierarchy of Frames, closing the active Frame, and opening the next Frame
one level down in the structure, select Down one Level on the context menu.
• To open the window of the Frame from which the current Frame has derived, click Open Origin
on the Home ribbon tab.
• To close the active Frame and open its location, click Open Location
• To assign the different states a Frame can be in, you can use the attributes StateBlocked,
StateEntryShut, StateResourceMissing, StateSetup, StateWorking, Stopped, and Unplanned.
The Frame then shows the state it is in in the LED area along the top of the icon.
red Failed
pink Stopped
blue Paused
green Working
yellow Blocked
brown Setting-Up
• To manipulate any of the vector graphics, click the Vector Graphics ribbon tab, double-click the
shape and edit the Graphic Settings.
• To show the stacking order of the mobile objects in the Frame in a tooltip, drag the mouse over
the part.
The menus Objects and Icons are active only after you select an object in the Frame
window.
After you start 3D Viewer, the 2D Frame window shows the x-axis and the y-axis in red. The point
where these two red lines intersect is the point, which will be mapped to the zero point, i.e., the
Position of the grid, in 3D.
You can set the origin of the grid in 2D with the attribute AxesOrigin.
The objects you insert into your simulation model represent stations in a production process. Each
material flow object in your model has entrance points which receive parts, and exit points from where
the parts move on to the succeeding objects in the sequence of stations.
In real installations the relation between the different stations is obvious by the way in which
the machines are arranged on the shop floor. Plant Simulation, on the other hand, handles this
somewhat differently.
To clarify to which other object parts are to be moved when leaving an object, you have to establish
connections between these objects.
Click the Connector in the Toolbox to activate connect mode. The mouse pointer turns into
crosshairs (+). When you connect objects in the Frame, Plant Simulation attaches the connecting
line to the front end of the cursor , allowing you to actually see the connection before setting it.
To connect object A and object B, first click object A and then object B.
Plant Simulation only shows the connection, when you select Show Connections on
the General ribbon tab.
• To connect several objects one after the other without having to return to the Toolbox each
time you established a connection, bold down Ctrl , while you establish the connection.
• To automatically connect the objects while you insert them, place the objects right next to each
other, when you insert them. You will then have to manually move the objects to their final position.
This only works, when File > Preferences > Modeling > Connect automatically is
active. In addition the position of the exit of the one and the entrance of the other
object are to be no more than 3 pixels apart.
• To tell Plant Simulation where and how to place the Connector in the Frame, hold down Shift,
Ctrl, or Alt while you establish the connection:
o Connector, no key: Plant Simulation aligns the connection to the grid, i.e., to the grid points
next to the location where you click the mouse button.
o Connector+ Ctrl: Plant Simulation stays in connect mode, so you can connect several
objects one after the other without having to return to the Toolbox each time you established
a connection.
o Connector+ Shift: Plant Simulation inserts the connection at a right angle, regardless
of where you click.
o Connector+ Alt: Plant Simulation sets anchor points of the connection at the location where
you click. Note that this is similar to the freehand drawing feature.
• To create a non-straight connection, set one or more anchor points: First, click object A,
proceed to point 1 and click once, then proceed to point 2, click once, and finally move to object B
and click the mouse button once to establish the connection.
• To create a right-angled connection, hold down Shift and click the left mouse button to set
the anchor point.
• To move an anchor point, click it, hold the mouse button down, and drag the handle to the
desired location. Plant Simulation also moves the Connector.
• To check if all connections between the objects really have been established, click Unconnected
Objects on the General ribbon tab. Plant Simulation selects all objects with unconnected
entrance and exit points.
• To make the connecting line thicker, enter a higher number into the text box Weight.
To make the connecting line thinner, enter a lower number into the text box Weight .
• To select another color than the default black, in the dialog Colors, click the field next to Color.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation show this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
• To show the source and the target of the Connector in the Frame is a Tooltip, drag the mouse
over the Connector.
• To exchange the successor of a Connector, select the end point of the Connector and drag
it to another object.
To exchange the predecessor of a Connector, select the starting point of the Connector and
drag it to another object
• To place an object, which you insert from the Class Library into a Frame, in between two
already connected objects, drag that object onto that spot of the Connector and drop it there. In
this process Plant Simulation exchanges the successor of the original Connector.
This also works when you drag a Frame, which contains exactly one suitable entrance Interface
and exactly one suitable exit Interface, onto the Connector.
When you work with the Delete key, select the object(s) you want to delete, and press Delete.
Follow the instructions in the dialog that opens.
This does not work when an object has more than one predecessor and successor.
If the object has a successor, Plant Simulation exchanges the successor of all
preceding Connectors. If the object has a predecessor, Plant Simulation exchanges
the predecessor of all succeeding Connectors.
• To reorder the sequence of the succeeding objects, i.e., the sequence of the Connectors,
click the object with the right mouse button and select Reorder Successors.
One of the main advantages of Plant Simulation is that you can model hierarchically, i.e., you can
model components of your overall plant in a Frame, make sure that these components work by
themselves and then insert them into your overall simulation model.
In this case, you will have to connect the component (Frame) to the material flow objects or Frames
that precede and succeed it in the sequence of stations with the object Interface . The transitions
are the places where MUs move from one Frame to another or from a material flow object to a
Frame and vice versa. Plant Simulation show if the Interface you inserted into a Frame is connected
to another object with a Connector or not connected . Plant Simulation also recognizes if an
Interface is an entrance or an exit.
You can insert the Interface into your simulation model from the folder MaterialFlow in the Class
Library or from the toolbar Material Flow in the Toolbox.
To model transitions, click the folder or the toolbar Material Flow and insert as many objects of type
Interface anywhere in the Frame.
• Select the side of the icon of the Frame at which the Interface is to be located: on the Top, on the
Right hand side, on the Bottom, or on the Left hand side of the Frame.
• Enter the maximum number of external connections the Interface may have. Depending on the
type, any number of Interfaces may have more than one predecessor or successor.
The predecessor is the object that is connected to the selected object with a Connector and that
is located in front of it in the sequence of stations in the simulation model.
The successor is the object that is connected to the selected object with a Connector and that is
located after it in the sequence of stations in the simulation model.
• Enter the position of the Interface in the side of the Frame it is inserted into in percent into the text
box Position in %. You can enter a value between 0 and 100 percent. Plant Simulation uses the
value you enter, when you activate File > Preferences > Modeling > Connect automatically.
Connecting objects automatically only works when the exit of FrameA and the entrance of
FrameB are not more three pixels apart.
• An Interface object you insert into a Frame and connect with a Connector show its Type in
the dialog: either Entrance or Exit.
• If need be, you can also select an exit strategy on the tab Exit Strategy.
The EventController coordinates and synchronizes the different events taking place during a
simulation run. When a part enters a processing station, for example a SingleProc, Plant Simulation
computes the time it takes to process it and enters that event and that time into the List of Scheduled
Events of the EventController.
You can insert the EventController into your simulation model from the folder MaterialFlow in the
Class Library, from the tab Material Flow in the Toolbox. Instead, you can also click in
the Home ribbon tab.
• Plant Simulation show the current simulation time of the simulation run in the box next to Time.
Click Time to change the display of the time between the:
o Relative time: Plant Simulation resets the relative time to zero, when it starts the simulation
run. This is the default.
o Current time plus simulation time: Plant Simulation adds the simulation time to the time
and date at which it started the simulation run.
Let us assume today is March 13, 12 o’clock noon and the simulation is to run for two days:
o For the setting relative time shows 2:00:00:0000, i.e., two days.
o For the setting current time plus simulation time Plant Simulation shows2017/03/13.
12:00:00.00, i.e., March 15, 12 o’clock noon, after the simulation run is finished.
• To initialize your simulation model, click Start/Stop Simulation. Plant Simulation executes all
Methods named Init. Methods being executed when you click Start/Stop Simulation will be
processed first.
Plant Simulation initializes the simulation model before it executes the next scheduled event.
Plant Simulation automatically executes init methods then you start the simulation for
the first time or when you stopped the simulation and clicked Reset Simulation and
you did not click Start/Stop Simulation before you started the simulation.
o Double-click the icon of the EventController while holding down the Shift key.
If this is the first simulation run or you clicked Reset Simulation before, Plant Simulation
executes all methods named Init located in your simulation model.
To start the simulation without animating objects and MUs, click Start Fast
Forward Simulation in the Home ribbon tab.
• To stop the simulation after the active simulation event has been processed, do one of the
following:
o Click Start/Stop Simulation.
o Double-click the icon of the EventController while holding down the Shift key.
• To process one simulation event at a time and to proceed through your model step by step,
click Single Step Simulation .
o The column Type shows the type of event, for exampleOut, Pause, PauseEnd, etc.
o The column Time shows the point in time the event is going to be executed.
o The column Receiver shows the receiving object, i.e., the object that receives the breakpoint.
o The column Sender shows the sending object, i.e., the object that sends the breakpoint.
• To increase the speed of the simulation, drag the slider to the left or press the left arrow key. To
decrease the speed of the simulation, drag it to the right or press the right arrow key.
Decreasing the speed enables you to better follow the movements of MUs, as Plant Simulation show
their icons for a longer time on the same station.
You will:
• Select Settings for the Simulation
When your modeling needs require it, you can select settings for controlling the simulation run on the
tab Settings of the EventController.
• Plant Simulation show the current simulation time of the simulation run in the box next to Time.
• Current time plus simulation time: Plant Simulation adds the simulation time to the time
and date at which it started the simulation run.
Let us assume today is March 13, 12 o’clock noon and the simulation is to run for two days:
• For the setting relative time Plant Simulation shows 2:00:00:0000, i.e., two days.
• For the setting current time plus simulation time Plant Simulation shows 15.03.2017
12:00:00.00 , i.e., March 15, 12 o’clock noon, after the simulation run is finished.
• Enter the Date and the time the absolute time during the simulation is based on.
• Enter the time when the simulation run will be finished. Enter a relative time, i.e., the period of
time the simulation runs. Plant Simulation compares this period with the simulation time and
stops the simulation run when both are identical. Let us assume it is March 13, 12 o'clock noon
and the simulation is to run for two days. Enter 2:00:00:00 into the text box End. If you do not
want to write this out in full, you can also just type 2::: and click Apply to have Plant Simulation
translate this to the full format 2:00:00:00.0000.
• Enter the time the EventController resets the statistics. Plant Simulation starts collecting
statistical data for all material flow objects anew from this time on.
• To subtract the simulation time from the active absolute time during the simulation run, select
Backwards. The absolute time, which the EventController show then appears to be running
backwards. The simulation itself still uses positive times.
• To delete all MUs from all Frames, when you reset the simulation model by clicking the Reset
Simulation button or by calling the method reset, select Delete MUs on reset.
• To step over animation events and to stop at the next event relevant to the simulation, select Step
over animation events and click Single Step Simulation on the tab Controls.
• To pause the simulation until the time span between two events has elapsed in real-time, select
Real-time.
Normally Plant Simulation does not take the time span in between events into account,
as it is a discrete event simulation system.
Enter the scaling factor for real-time mode. The scaling factor sets the time that elapses between
two events in real-time.
The duration of an event in real-time is the simulation time divided by the scaling factor you entered.
The resulting duration is an integer.
Back to Controlling the Simulation with the EventController
individual events during the simulation run and detect errors in your simulation model. As opposed to
clicking Start/Stop Simulation on the tab Controls of the EventController you can, for example,
enter a condition when the Event Debugger is to Stop the simulation. Then, you can follow the
execution of the events in the Event Debugger.
The following examples demonstrate a number of typical usages for the Event Debugger.
To open the Event Debugger, to define breakpoints and to step through the scheduled events:
• Open the EventController.
• Click the List button on the tab Controls. The event list contains the types of scheduled
events, which the objects in your simulation model entered and which the EventController has to
process. It is sorted ascending by time, tells the type of event, the scheduled processing time,
and lists recipient and sender of the event.
Double-click a cell in the row where you would like to insert a single breakpoint. Then, the Event
Debugger stops the simulation run immediately before the EventController processes that event.
Double-click the row again to delete the breakpoint.
• You can also use an event from the list in the EventController to define breakpoints. Select the
event in the list and click Stop at Selected Event. This adds this event to the list of defined event
breakpoints. You can also edit the selected event.
• To process a single event and stop the simulation again, click Single Step Simulation .
• To proceed with the simulation until the EventController reaches the next breakpoint, click
Start/Stop Simulation.
Go to Example 1
Go to Example 2
Go to Example 3
Go to Example 4
Go to Example 5
Back to Working with the Event Debugger
Example 1
In this example we watch all exit (Out) events for the Entity with the ID 1, meaning that we track
the course the Entity takes through the plant.
If you would like to create a breakpoint for each Entity, delete the ID of the MU.
Go to Example 2
Go to Example 3
Go to Example 4
Go to Example 5
Back to Working with the Event Debugger
Example 2
This time we do not enter a Receiver, as we want the EventController to insert a breakpoint for
each leaving part. The Sender is SingleProc1.
Go to Example 1
Go to Example 3
Go to Example 4
Go to Example 5
Back to Working with the Event Debugger
Example 3
In this example only MUs of a certain class located on SingleProc1 insert a breakpoint during
a certain time span.
Plant Simulation inserts a breakpoint when a part of the class .MUs.Entity located on SingleProc1
creates an Out event between 1 hour and 3 hours.
At times you only want to insert breakpoints when certain conditions are met. Enter these conditions
into the text box next to Condition. A condition may be a certain value or certain states of the
simulation model or properties, i.e., attributes, of mobile parts. You can also enter methods, returning
a boolean value as a result, which will then be evaluated.
Go to Example 1
Go to Example 2
Go to Example 4
Go to Example 5
Back to Working with the Event Debugger
Example 4
Plant Simulation inserts a breakpoint, when a part of the class .MUs.Entity, which is less than 100
meters long, causes an Out event on SingleProc1. Note that the unit depends on the settings you
selected under File > Model Settings/Preferences > Units > Length.
If you would like Plant Simulation to create a trace file that tracks all events, enter a name into the text
box Trace File in the dialog Event Debugger and select the check box Trace active.
If you would to only create a trace file for a certain event, enter a file name into the text box Trace
File in the dialog Breakpoint.
Go to Example 1
Go to Example 2
Go to Example 3
Go to Example 5
Back to Working with the Event Debugger
Example 5
In this example we track the course the Entity with the ID 9 takes through a simulation model and
write the stations to a trace file.
With the settings shown in the dialog above, Plant Simulation inserts a breakpoint for each Out event
of the Entity with the ID 3 and writes this event to the file c:\Exercises\trace3.txt. Note that this
only works when you selected the check box Trace active in the dialog Event Debugger. When
you clear the check box Breakpoints active, Plant Simulation writes the trace file without stopping
your simulation using a breakpoint.
In the examples above we only used Out events. You can, of course, also use any of the available
types of events, compare the List of scheduled events.
Go to Example 1
Go to Example 2
Go to Example 3
Go to Example 4
Back to Working with the Event Debugger
• To delete all MUs in all objects in the active Frame and its sub-Frames, click on the Home
ribbon tab.
• To delete all mobile objects (MUs), when you reset the simulation model by clicking the Reset
Simulation button or by calling the method reset, you can enter deleteMovables into a Method,
which you name Reset and which you insert into your simulation model.
• To delete all mobile objects when you reset your simulation model, select the check box Delete
MUs on reset in the EventController.
Compare Paths
Compare Drag-and-Drop in the Icon Editor
Compare Drag-and-Drop While Modeling
Compare Drag-and-Drop in the Method Editor
Compare Drag-and-Drop in Lists and Tables
Compare Working with Drag-and-Drop in TableFiles
Compare Drag-and-Drop for Chart Objects
Compare Configuring the TransferStation
Back to Creating a Simulation Model
• Insert an object from the Class Library into the Frame that contains your simulation model.
• Insert an object, such as a Broker, a ShiftCalendar, a control method, a table, etc. into the
text boxes the dialogs of the objects provide. When you use drag-and-drop, Plant Simulation
enters the absolute path to the object.
If you would like to use an object reference instead of the absolute path,
type an asterisk in front of the path. For the example above you would type
*.Models.MyPlantAnytown.MyBroker.
If you do not want to use the absolute path, but the relative path, click Select
Object.
• Duplicate i.e., to copy the selected object or model and create a new class: Hold down the Ctrl
key, drag the object to another location in the Class Library, and release Ctrl.
Plant Simulation supports multiple drag-and-drop, allowing you to select a number of objects, drag
them onto the target object and drop them there. You can do this for:
• Each object which has a Drag-and-drop control which accepts the selected objects as a
parameter of data type array.
• The AttributeExplorer
• The Method. Here the selected objects to be passed have to be contained in an array.
• The Chart
• The object Cycle. It accepts a maximum of two objects, one for the first station and one for
the last station.
• The ShiftCalendar
• The LockoutZone
You can also drag several object to the structure in the Class Library to create class objects from the
copied objects.
Below we demonstrate how to use multiple drag-and-drop with a drag-and-drop control.
We want to execute the drag-and-drop control, which we entered for the Frame MyFrame, when we
drag our production line onto the Frame and drop it there.
Proceed as follows to create a simple simulation model:
• Insert the material flow objects you want to work with and connect them. We inserted a Source, a
SingleProc, a Line, and a Drain. We used them with their default settings.
• Insert a Frame for which to define the drag-and-drop control. We renamed our Frame to
MyFrame.
The finished simulation model looks like this:
• Define the drag-and-drop control for the Frame. Open the Frame and click Edit Interaction
Controls on the Home ribbon tab.
• Right-click in the text box next to drag-and-drop and select Create Control.
• Change the source code of the control so that it matches the instructions below:
SimTalk 2.0 notation looks like this:
param draggedObjects: object[] -- one-dimensional array with n objects
-- the size of which can change
var obj: object
• Select the production line, drag it over the Frame, and drop it there.
• To actually see the array containing the dropped objects, we added debug to the source code.
This opens the Method debugger when you drag the objects over the Frame and drop them
there. The row with the name draggedObjects on the tab Variables then shows the array
containing these objects.
• How to select and enter for how long a station processes the parts that move onto it.
• How to remove the processed parts from your model with the object Drain .
• The Source creates mobile objects at the beginning of the flow of materials through your plant.
The Drain removes the MUs from the plant after the material flow objects have processed them.
• The active material flow objects Source, Drain, SingleProc, ParallelProc, Assembly,
DismantleStation, Line, Sorter, PlaceBuffer, and Buffer receive MUs, and process them for a
certain time. They then attempt to actively transfer the MUs to the next object along material
flow connections, symbolized by the Connector, employing the push-block principle. They
represent work stations in a factory, such as a lathe or a drilling station, etc. They only differ in
the number of MUs they can process at the same time, a single one or several, and in the way
they process them, in series or in parallel. Basically, the Line resembles a conveyor system
transporting MUs it a given speed over a given distance.
• The passive material flow objects Store, Track and TwoLaneTrack do not automatically transfer
MUs. An MU remains in the Store until it is removed, for example by employing a Method.
You can only use the Track and the TwoLaneTrack in a meaningful way in conjunction with the
Transporter, which moves along the Track with the speed you set. Model diverging strategies and
converging strategies with the FlowControl.
• Passive MUs, such as the Entity and the Container, are objects that are transported from
material flow object to material flow object, which process them.
• Length-oriented material flow objects whose own real length and dimension as well as the
length and the dimension of the MUs, which transfer onto them, are used during the simulation.
Length-oriented objects are the Line, the Track, the TwoLaneTrack and the FootPath, the
Container and the Transporter.
As opposed to the regular length-oriented objects, the AngularConverter consists of two straight
segments, not of a sequence of straight and curved segments. The Converter consists of a single
straight segment. The Turntable consists of a single straight segment. The Turnplate consists
of a straight segment that sets the diameter of the Turnplate.
To create the MUs, which the material flow objects in your simulation model handle, we use the
object Source . It might, for example, represent the receiving department of your installation that
introduces parts produced at another location into the plant. Or it can be a machine, which produces
the parts that the other stations process.
To remove these parts from the factory to model, for example, the shipping department, we use the
object Drain .
You can insert the Source into your simulation model from the folder MaterialFlow in the Class
Library or from the toolbar Material Flow in the Toolbox.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Compare Check How Many Parts Were Introduced into the Plant
Select how the Source proceeds when it cannot create the MUs at the times (Time of creation) you
entered because it cannot move the parts to its successor. This is the case when it fails, when it is
paused or when it is blocked.
• Select the Operating mode > Blocking , so that the Source remembers the time when
it was supposed to produce the next MU but could not. It then produces the following MU at the
next possible point in time, i.e., when the MU, which blocked it, has moved on.
• Clear Blocking, so that the Source creates another MU exclusively at the time of creation you
entered.
For the installation you are modeling you will, most likely, use a delivery table that contains the
parts that a machine produces, parts provided by other departments within the same plant or parts
delivered from other plants.
Most of the time the delivery table you receive from another department will be an Microsoft Excel file
containing, among others, the name of the part, its amount, its arrival time, etc. You will then open
this Excel (*.xls) file in an Plant Simulation table and save it there.
Next to information about the name and number of the produced entities, the Delivery Table may also
contain values of their attributes. The Delivery Table has five columns.
Instead of the data type time for the Delivery Time you can also use the data types date,
dateTime, or real. When you use date or dateTime, the start time of the simulation has
to be before the time you enter.
Each row of the Delivery Table refines a single order for producing MUs:
• Enter the time at which the Source produces the MUs into the column Delivery Time.
• Enter the class of the MU into the column MU. You can also use drag-and-drop of the MU class to
accomplish this.
When you enter 0 is Number into a row, Plant Simulation does take the specified
interval for the next creating cycle into account. This means that it does not skip this
row, but does not produce a part during this cycle.
• Enter a name for the MUs to be produced into the column Name.
You have to enter the Delivery Time and the MU. When you do not enter a Number,
Plant Simulation produces a single MU. When you do not enter a Name, the MUs,
which the Source produces, use the name of their class.
• In addition you can, but you do not have to enter the name of a sub-table into the column
Attributes. Enter the attributes whose value the Source sets and the user-defined attributes that
it creates, when it produces the MUs, into that sub-table.
Enter the name of a built-in attribute into the cells below column 1 of the attribute table. Enter the value
you want to assign to this attribute into one of the cells to the right with the respective data type. Or
Enter the name of a user-defined attribute into the cells below column 1 of the table. When an
attribute with that name does not exist yet, Plant Simulation creates it. Enter the value you want to
assign to this attribute into the cell to the right, which has the corresponding data type.
Plant Simulation assigns the data type of the column containing the value of the attribute
to the data type of the attribute itself. Plant Simulation assigns the value you enter into
the cell to the generated attribute.
To produce MUs according to the time, the type, and the number of parts you entered into a Delivery
Table:
• Select Time of creation > Delivery Table.
• Click and select the delivery table you would like to use in the dialog Select Object. Or
Drag your delivery table over the text box Table and drop it there.
• Click OK.
• In our example, we chose to have the Source create one Constant type of MU, namely an
Entity, every two minutes.
• Click OK.
The Source:
• Produces the first MU at the time you enter for Start.
• Produces the next MU after the time you enter for Interval has elapsed.
• Stops producing MUs at the point in time you enter for Stop. Enter 0 into the text box Stop of
you do not want to apply a time limit.
When you select Time of creation > Interval Adjustable or Time of creation > Number Adjustable
you can also select how the Source produces which types of MUs.
• Produce a Single Part Type Only
• Click . In the dialog Select Object navigate to the folder where the MUs are located. Select the
name of an MU class and click OK.
o Drag the table over the text box Table and drop it there.
o Enter the name of and the path to the table into the text box next toTable.
• Enter the names of the MU classes to be produced into the cells below MU of the table.
• You can, but you do not have to enter a Name and Attributes into columns 3 and 4 of the table.
• Enter the number of MUs to be produced into the cells below Number.
When you do not enter a Name, the MUs that the Source produces use the name
of their class.
• To make the Source produce the number of MUs you specified in a row of the sequence table all
at once in a single batch before moving the entire batch on, select Generate as batch. Once
the Source has processed the entire sequence, it starts processing the information on the table
again starting at the beginning of the sequence.
To make the Source produce the MUs is a sequence of individual MUs, clear the check box.
When the Source produces the MUs is a batch, it attempts to produce the entire set of entities at
the given start time and to move them on to the next object.
To make the Source produce MUs in a fixed sequence one time only:
• Select MU selection > Sequence.
The setting Sequence is not available, when you setTime of Generation to Number
Adjustable.
o Drag the table over the text box Table and drop it there.
o Enter the name of and the path to the table into the text box next to Table.
• Enter the names of the MU classes to be produced into the cells below MU into the table.
• Enter the number of MUs to be produced into the cells below Number.
• You can, but you do not have to enter a Name and Attributes into columns 3 and 4 of the table.
When you do not enter a Name, the MUs that the Source produces use the name
of their class.
• To make the Source produce the number of MUs you specified in a row of the sequence table all
at once in a single batch before moving the entire batch on, select Generate as batch.
To make the Source produce the MUs is a sequence of individual MUs, clear the check box.
When the Source produces the MUs is a batch, it attempts to produce the entire set of entities at
the given start time and to move them on to the next object.
To make the Source produce MUs with a frequency, which you enter into a table:
• Select MU selection > Random.
o Drag the table over the text box Table and drop it there.
o Enter the name of and the path to the table into the text box next to Table.
• Enter the names of the MU classes to be produced into the cells below MU into the table.
• Enter the frequency number for each class of MU to be produced into the cells below Frequency.
When the Source produces the MUs, Plant Simulation selects and processes a random
generation order according to the frequency you entered here.
• You can, but you do not have to enter a Name or an Attributes table.
When you do not enter a Name, the MUs that the Source produces use the name
of their class.
To check which part types were produced at which point in time, you can activate the check box
Creation table on the tab Statistics and then open the table.
Back to Produce Parts During an Interval Which You Define
To make the Source produce MUs with a frequency, which you enter into a table:
• Select MU selection > Percentage.
o Drag the table over the text box Table and drop it there.
o Enter the name of and the path to the table into the text box next to Table
• Enter the names of the MU classes to be produced into the cells below MU into the table.
• Enter the percentage portion for each class of MU to be produced into the cells below Portion.
• Enter the number of parts to be produced into the cells below Number.
• You can, but you do not have to enter a Name or an Attributes table.
When you do not enter a Name, the MUs that the Source produces use the name
of their class.
When you enter a very large Amount of MUs, the list of MUs to be created, including
the time of generation, is very long also, which might result in a large consumption
of memory. The Source creates the amount of MUs at the different times, which the
random number generator generated at the beginning of the simulation.
• Select the Creation times, which determine the points in time at which the Source creates
the MUs.
Select a distribution from the drop-down list Creation times and enter the values that the
distribution requires into the text box.
As opposed to Interval Adjustable, here the Creation times are a range, within which
the Source creates MUs, and not a repeating interval.
When you select the Constant distribution, the Source creates the number of MUs all
at one point in time, as here the Creation times are a point in time, not a range!
For this setting you cannot select Sequence from the drop-down list MU selection .
• Click OK.
When you select Time of creation > Interval Adjustable or Time of creation > Number Adjustable
you can also select how the Source produces which types of MUs.
Go to Produce a Single Part Type Only
Go to Produce Parts in a Fixed Sequence Over and Over Again
Go to Produce Parts in a Fixed Sequence One Time Only
Go to Produce Parts According to a Random Frequency Entered into a Table
Compare Enter Times
Back to Producing Parts with the Source
• If you would like to periodically repeat using the values in this list, for example when you select
Sequence Cyclical from the drop-down list MU selection.
Proceed as follows:
• Select Time of creation > Trigger in the dialog of the Source.
Before you can enter the Trigger, click the toggle button Inheritance, so that it looks like this .
• Click Trigger, drag the Trigger that controls the Source from the Frame ever the list that
opens and drop it there.
• In the dialog of the Trigger enter the Active interval, i.e., the interval during which the Trigger will
be active.
Enter the Period length, i.e., the duration of the Trigger’s cycle.
• Click the tab Values and select the Trigger type > Input.
• Click the button Values and enter into the TimeSequence object that opens:
The Point in Time at which the Source creates MUs into the cells on the left hand side.
The current sequence of Values into the cells on the right hand side. An order is a string with this
format: amount,mu_Type,distributionType[,distribution parameters].
The string defining this sequence of values may not contain any blank spaces.
You have to enter the amount of MUs to be produced, the type to be produced, and at least a constant
value. When you enter just Const, the Source produces the MUs at the point in time, which you
entered into the cell to the left. When you would like it to produce the MUs with an offset to the time
you entered there, enter the number of seconds after which it produces them after Const.
When you enter a distribution, its values set the time offset to the time you entered into the
corresponding left cell. Note that the offset you enter has to be a positive number!
• Click the tab Actions and click Objects. The Trigger show the Source on the table.
Compare Check How Many Parts Were Introduced into the Plant
Back to Producing Parts with the Source
A work plan or operations plan determines how a product is produced. It lists the various production
steps in the sequence in which they are executed. Note that in Plant Simulation we neither specify
the cost center, to which each of the individual production steps is charged, nor the allowed time for
each step. This you can do in Process Designer.
For simplicity’s sake each operation can only be executed by a single station in our example. Our
work plan thus is described by a sequence of stations. The Source holds position 0 in the work plan,
the station Milling position 1, the stations Drilling_A or Drilling_B position 2 and the station Packing
position 3.
• We produce two different types of parts in a Source using a sequence table. The parts need
two user-defined attributes. One sets the name of the part. The other sets the position of the
part in the work plan.
• We program a Method , i.e., an exit control, which enables the processing station to find the
next station in the sequence of operations after each processing step and moves the part onto
this station. We place this Method, which all stations access, into the Frame.
• To move the derived SingleProc to the folder in which we are going to create the model, hold
down Shift and drag it so that folder.
• Insert it from there into the model three times. Rename the stations so that they match the names
of the operations. In our example we named them Milling, Drilling_A, Drilling_B and Packing.
As the processing stations share a number of features, we set these in their class, MyStation in our
example. The class object passes these properties on to its instances. We
• Define Times in the Class of the Processing Stations
• Enter the Name of the Exit Control in the Class of the Processing Stations
• We want the stations to get the processing time of all parts from the work plan MyWorkPlan.
This table object is located in the Frame in which we build the model, i.e., the root Frame. The
station then opens the sub-table Operations for the respective part and gets the times in the
column Processing time of the respective station within this sub-table.
For the processing time we use a Method which we call from the formula. The Method is
called processingTimeInFormula.
The source code in SimTalk 2.0 notation looks like this:
-> time
var PartType := @.EntityType
var Station := ?
var WorkPlan := root.myWorkPlan["Operations", PartType]
result := WorkPlan["Processing time",Station]
:time
is
PartType : string;
Station : object;
WorkPlan : table;
do
PartType := @.EntityType;
Station := ?;
WorkPlan := root.myWorkPlan["Operations", PartType];
result := WorkPlan["Processing time",Station];
end;
• We want the stations to get the set-up time of all parts from the work plan MyWorkPlan. This
table object is located in the Frame in which we build the model, i.e., the root frame. The
station then opens the sub-table Operations for the respective part and gets the times in the
column Set-up time of the respective station within this sub-table. Self identifies the station
contained in the row on the sub-table.
The above statements translate into this formula, which we directly enter into the text box:
root.MyWorkPlan["Operations",@.EntityType]["Setup time",Self]
To automatically set the stations up depending on the name of a user-defined attribute of the MU:
• Select the check box Automatic.
• Select User-defined Attribute from the drop-down list Set-up depends on. Enter the name
of the user-defined attribute which we defined in the Sequence table with which the Source
produces parts, compare Produce the Parts with a Source Using a Sequence Table. We typed
in EntityType.
Enter the Name of the Exit Control in the Class of the Processing Stations
As the station has to find the next station in the sequence of operations after each processing step
and move the part on to this station, we enter the name of an exit control. Program the Exit Control
shows how to accomplish this.
• Assign the data type Table to the column which contains the sub-table into which we enter
information about the operations. Format this column so that all sub-tables have the same
format, compare Create Lists within Lists and Tables. Activate the column index and the row
index on the sub-tables. Assign the data type Object to the column of the column index. Assign
the data type Time to the next two columns.
• After we assigned the correct format to the sub-tables, we can then enter the contents:
o Once we enter an identifier, Plant Simulation creates the sub-table in this cell. We typed in
Operations for MyPart A and Operations for MyPart B.
o To open the sub-table for the respective work plan, double-click the respective cell below
Operations.
o Enter the names of the operations/stations, their set-up times and the processing times of
the parts.
• Insert a TableFile into the Frame. Drag this table over the text box Table. Plant Simulation
automatically assigns the columns on the table the correct data types and the correct column
headers.
• Open the table and enter the type of part you want to produce, how many of them, their name
and the name of the sub-table containing the attributes of the part.
In our example the Source is to produce 1 part of the MU class Entity each with the name
MyPartA and MyPartB.
• To create a sub-table for the user-defined attributes of the parts, enter an identifier into the cells
below Attributes. To open this sub-table, double-click the cell. Here we enter the names and the
values of two user-defined attributes: One sets the name of the part, the EntityType is either
MyPartA or MyPartB. The other sets the position of the part in the work plan (PositionInWorkPlan).
In our case the sequence of operations always starts at position 0, which is the Source. The
counter, which we programmed in the exit control, then steps through the stations: Milling is
position 1, Drilling_A or Drilling_B are position 2 and Packing is position 3.
During the simulation run Plant Simulation enters these user-defined attributes into the created
Entities. The Entity with the number 5628, for example, is of type MyPart B and is located on
station 3, Packing, according to the position, which we defined in the work plan as operation.
• Finally, enter the name of the exit control, which finds the processing station and moves the
part onto it.
As we want all stations and the Source to be able to access the source code for finding the next
station in the sequence of operations after each processing step and for moving the part on to this
station, we program an exit control.
If just the stations were going to use this control, we could have programmed it in a user-defined
attribute of data type method of the class of the station.
The source code in SimTalk 2.0 notation looks like this:
-- This is the exit control for all stations and for the source.
-- This control can be called several times until the move command is successful.
is
WorkPlan : table;
NextStation : object;
do
WorkPlan := root.MyWorkPlan["Operations",@.EntityType];
if @.PositionInWorkPlan = WorkPlan.ydim
then
@.Move(root.Shipping); -- end of production
else
NextStation := WorkPlan["Operation", @.PositionInWorkPlan + 1];
if @.Move(NextStation)
then
@.PositionInWorkPlan := @.PositionInWorkPlan + 1;
end;
end;
end;
To remove the parts and workpieces from the plant after they have been processed, for example
to model the shipping department, we use the object Drain .
The Drain has a single processing station. It removes the MU from the installation after setting-up for
it and after processing it. The built-in properties of the Drain are the same as those of the SingleProc
. The Drain removes the MU from the installation after it processed it, instead of moving it on to a
succeeding object in the flow of materials and it collects statistics about the MU.
You can insert the Drain into your simulation model from the folder MaterialFlow in the Class
Library or from the toolbar Material Flow in the Toolbox.
When transferring parts from station to station in your simulation model, you can:
• Use the Standard Transfer Behavior, which employs the push-block principle. Or you can
• Select an Exit Strategy, which distributes the parts to the succeeding stations according to
the criteria you set.
• Distribute Parts Among its Successors with the FlowControl. Or you can
• Move the part, when an attribute of the processing station changes by employing an observer.
• Select an exit strategy in the Interface when parts are moving across Frames.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling the Flow of Materials, Basics
By default Plant Simulation uses the push-block principle then transferring mobile parts from station
to station, either along the connections you established with the Connector or by programming a
Method .
An object that has processed the part, which is ready to be transferred, actively attempts to move that
part on to its successor (push). If the successor cannot receive the part at the moment, the block
principle will be activated, guaranteeing that the object ready to move the part is re-activated as
soon the successor is ready to receive the part.
The push-block principle ensures that parts are transferred using the built-in functionality of the
objects and that the stream of events is not interrupted by failures or pauses.
The standard transfer strategy is cyclic, non-blocking, meaning that the current object moves the
MU to the first non-blocked succeeding object in the flow of materials. Once the object reaches the
end of the list of successors, it continues the search at the beginning of the list and terminates the
search when it reaches the successor from the previous search.
Suppose Station1 is the first station in the sequence of stations in your simulation model, Station2
is the second station, MU1 is the first mobile object that entered the flow of materials, MU2 is the
second mobile object. Suppose MU1 is located on Station2, and MU2 is located on Station1 and
wants to move to Station2.
Once MU2 is completely processed by Station1, MU2 notifies Station2 that it intends to move to it.
• When Station2 can receive MU2, it notifies MU2, and MU2 moves from Station1 to Station2.
• When Station2 cannot receive MU2 because it is busy, its entrance is locked, etc., MU2 enters
itself into the forward blocking list of Station2 and of all other stations it intends to move to.
• When MU1 exits Station2, Station2 schedules an Out event for all entries, i.e., MUs, in the
forward blocking list, including MU2. Afterwards Station2 deletes all entries from its forward
blocking list.
• Provided Station2 can receive MU2, MU2 deletes all references to itself from all blocking lists of
all stations it entered itself into, and then moves to Station2.
• The set-up time is the time it takes to set-up the object for processing a different type of MU.
An identical name designates that MUs are of the same type.
• The recovery time is the time during which the first gate at the entrance of a material flow
object is closed after an MU entered the station. The recovery time is useful to model
material handling equipment, such as a robot that requires a certain time to insert into or
remove work pieces from processing stations. When you enter 0 the gate is always open,
a value greater than 0 closes the gate for the specified interval as soon as the front of the
MU has entered the object.
• The cycle time. This is the time during which the second gate at the entrance of a material
flow object opens and closes cyclically, regardless of MUs entering the object. The cycle
time is useful to model chain conveyors with a fixed chain interval that only transport material
when a free hook is available.
You do not have to define all of the times listed above for the object.
If you do not want to transfer the MUs using the standard transfer behavior, click the Tab Exit and
select another Strategy. As a rule you will use an exit strategy, which distributes the flow of materials,
when the sequence of operations does not uniquely designate the next object that processes the
MU. Your objective will be to make a choice that is close to optimal in some respect, say cost or
time, but not in others.
• To make the Worker carry the MU to the target object, select Carry Part Away.
• To move the parts cyclically to the next successor in line, select Cyclic.
• To cyclically move the part to the successor according to the sequence of successors, which you
entered into the list, select Cyclic Sequence.
• To move the parts to the successor that has been Waiting the longest for an MU, select Least
Recent Demand.
• To move the parts to the successor in a linear fashion, according to the sequence of successors,
which you entered into the list, select Linear Sequence.
• To move the parts to the successor that contains the greatest number of MUs, select Maximum
Contents.
• To move the parts to the successor that received the most MUs, select Maximum Number In.
• To move the parts to the successor with the longest processing time, select Maximum Processing
Time.
• To move the parts to the successor with the highest relative occupancy, select Maximum Relative
Occupation
• To move the parts to the successor with the longest set-up time, select Maximum Set-up Time.
• To move the parts to the successor that contains the smallest number of MUs, select Minimum
Contents.
• To move the parts to the successor that received the smallest number of MUs, select Minimum
Number In.
• To move the parts to the successor with the shortest processing time, select Minimum Processing
Time.
• To move the parts to the successor with the lowest relative occupancy, select Minimum Relative
Occupation
• To move the parts to the successor with the shortest set-up time, select Minimum Set-up Time.
• To move the parts to the successor that has been Waiting the least amount of time for an MU,
select Most Recent Demand.
• To move the MUs in to the successor according to an attribute of the MU, select MU Attribute.
• To move the parts to the successors according to a percentage distribution, select Percentage.
• To always move the part to successor with the number 1, select Start at Successor 1.
Click Apply, to apply your new settings, and to display additional dialog items, which
the selected exit strategy requires.
Select the Broker, enter the required Services into the services list, and enter the Priority with which
the importer provides these services. To prevent the Worker from waiting too long for additional parts
to arrive, enter the Maximum dwell time. After it has passed, he walks to the target station, the
MU target, and puts the part down.
The Worker evaluates the MU targets and moves to the closest one first. At the target station, he
places all parts destined for this station. If he carries additional parts, he evaluates the next target
and moves on to the closest one.
To send a Worker to a specific station, you can use the methods goTo and goToPool. To change the
services for an available Worker, you can use the method services.
Compare the topic Model a Worker Who Carries Parts Between Workplaces.
Back to Select an Exit Strategy
Cyclic
To move the part cyclically to the next successor in line, select Cyclic from the drop-down list.
• When you select Blocking , the object moves the MU in to the object, which in
sequence of successors immediately follows on the object on to which an MU has last transferred.
• When you clear Blocking , the object moves the MU to the next object in the
sequence of successors, which can receive a part.
Once the object reaches the end of the sequence of successors, it continues the search at the
beginning of the sequence and terminates the search when it reaches the successor from the
previous search.
Back to Select an Exit Strategy
Cyclic Sequence
To cyclically move the part to the material flow object’s successor according to the sequence of
successors, which you entered into the list repeatedly, select Cyclic sequence from the drop-down list.
Click Apply, to apply your settings, and to display the button Open List.
Click Open List and enter the number of the succeeding object into the corresponding cell of the
list. When you enter 2 into the cell in row 1, the object first moves the MU to the successor with the
number 2.
The successor to which the object moves the MU is the next one in line that can receive it in the
sequence, which you entered into the list. When the object arrives at the last entry in the list (last
object in the sequence), it returns to the first entry and processes the list again.
The same successor object may be contained several times, one after the other, in the list. Then the
object attempts to move the part to this same successor as often as it is contained in the list.
• When you select Blocking , the object only moves the MU, when the designated
successor is ready to receive it.
• When you clear Blocking , the object attempts to move the part to the corresponding
successor, beginning with the active entry of the list.
When the object arrives at the last entry in the list, i.e., the last object in the sequence, it returns
to the first entry and processes the list again.
Back to Select an Exit Strategy
To move the part to the successor that has been Waiting the longest for an MU, select Least recent
demand from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
Linear Sequence
To move the part to the material flow object’s successor in a linear fashion, one time only, according
to the sequence of successors, which you entered into the list, select Linear sequence from the
drop-down list.
Click Apply, to apply your settings, and to display the button Open List .
Click Open List and enter the number of the succeeding object into the corresponding cell of the
list. When you enter 3 into the cell in row 1, the object first moves the MU to the successor with the
number 3.
The successor to which the object moves the MU is the first one in line that can receive it in the
sequence, which you entered into the list.
• When you select Blocking , the object only moves the MU to the first successor in
the list of successors.
• When you clear Blocking , the object moves the MU to the first available successor in
the list of successors.
Maximum Contents
To move the part to the successor that contains the highest number of MUs, select Max. contents
from the drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
Maximum Number In
To move the part to the successor that received the most MUs, select Max. num. in from the
drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
To move the part to the successor with the longest processing time, select Max. proc. time from the
drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
To move the part to the successor with the highest relative occupancy, select Max. rel. occu. from the
drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
To move the parts to the successor with the longest set-up time, select Maximum set-up time
from the drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
Minimum Contents
To move the part to the successor that contains the least number of MUs, select Min. contents
from the drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU the next successor, which
can receive the MU.
Minimum Number In
To move the part to the successor that received the least number of MUs, select Min. num. in
from the drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Minimum Number In
To move the part to the successor with the shortest processing time, select Min. proc. time from the
drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
To move the part to the successor with the lowest relative occupancy, select Min. rel. occu. from
the list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
To move the parts to the successor with the shortest set-up time, select Min. set-up time from the
drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
To move the part to the successor Waiting the least time for an MU, select Most recent demand
from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
MU Attribute
To move the parts on to a successor according to the values of attributes of the part, select Most
recent demand from the drop-down list.
Click Open List to open a table, into which you can enter the names of the user-defined or the built-in
attributes, their values, and the numbers of the successors. The object searches the table from top to
bottom until it finds an attribute with the value you entered. It then moves the MU in so that successor.
Create the user-defined attributes for the parts on the Tab User-defined.
• Default Successor
Enter the number of the default successor. This is the successor to which the object moves the
MUs, when none of the MUs has an attribute with the Value you entered into the TableFile.
• Attribute Type
Select the data type of the attribute from this drop-down list, compare Data Types.
Percentage
To move the part to the successors according to a percentage distribution, select Percentage from
the drop-down list.
Click Apply, to apply your settings, and to display the button Open List.
Click Open List and enter the percentages in the list that opens. The n-th row on the table defines
the n-th successor’s portion: When you enter 20 in row 1, for example, the object moves 20 percent
of the MUs it received to the successor with the number 1, etc.
The object always moves the MU to the successor with the greatest difference between the rated
value and the current value.
• When you select Blocking , the object moves the MU to the successor with the highest
deviation from the nominal percentage.
• When you clear Blocking , the object moves the MU to the successor, which can
receive the MU with the highest deviation from the nominal percentage.
The actual percentages reached may differ from the nominal ones due to a low number
of total transfers and to the Blocking-state of successors.
Any previous transfers of MUs affect the Percentage strategy, as they alter the
deviation from the nominal transfer frequencies.
Plant Simulation sums up the values you entered into the list of nominal percentages to obtain the
value that matches 100 percent. The distribution pattern only depends on the relative size of the
values, not on their magnitude. This way you can, for example, either enter [1;2] or [0.3333…;
0.6666…], the result will be the same.
If the distribution pattern is periodic, then it is so right from the beginning. This means that the
distribution pattern at the start of a simulation run does not differ from the distribution pattern at a later
point in time. These examples demonstrate, how nicely the values are balanced:
• If you assign the values 1 and 2 to the exits 1 and 2 respectively, Plant Simulation generates
this sequence of exits:
212212212212212
• If you assign 2 and 3 to the exits 1 and 2, Plant Simulation generates this sequence of exits:
212122121221212
• If you assign the values 1, 2, 4 and 8 to the exits 1, 2, 3, and 4, Plant Simulation generates
this sequence of exits:
434243414342434434243414342434
Random
To move the part to the successors in a random fashion, select Random from the drop-down list.
Click Open List and enter the percentages in the list that opens. The n-th row on the table defines
the n-th successor’s portion: When you enter 20 in row 1, for example, the object moves 20 percent
of the MUs it received to the successor with the number 1, etc.
• When you select Blocking , the object determines the successor using the built-in
random-number generator.
• When you clear Blocking , the object determines the successor using the built-in
random-number generator until it either computes a successor, which can receive the MU or
the object has iterated through all successors.
A previous call to the random number generator does affect the Random strategy. The order in which
the successors are iterated through is not predictable.
Back to Select an Exit Strategy
Start at Successor 1
To always move the part to the material flow object’s successor with the number 1, select Start at
successor 1 from the drop-down list.
• When you select Blocking , the object moves the MU to the first successor in the list
of successors.
• When you clear Blocking , the object moves the MU to the first successor in the
sequence of successors, which can receive the MU.
Note that a previous search for a successor does not affect the strategy Start at successor 1.
Back to Select an Exit Strategy
In our example below we show how the FlowControl moves the parts on to its successors according
to an attribute of the part. If a part has more than one attribute, it suffices if one of the attributes meets
the criteria, which you defined in the attribute list. If a part has several attributes though, and none of
these attributes meet the criteria in the list, you can determine what happens to the part by entering
different values for the default successor of the FlowControl:
• When you enter the number of a successor, the FlowControl moves the part so that successor.
When you accept the default setting 1, it moves the part on to the successor object with the
number 1.
• When you enter 0, the FlowControl does not move the part on. It remains in front of the
FlowControl, thus blocking the following parts.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Transferring Parts from Station to Station
• We then selected the name of the delivery table, which we inserted before, namely
MyDeliveryTable. Selecting it automatically applied the correct format.
• Next, we entered the required information, compare the screenshot below. The Source which
we named PartsIn in our sample model, produces six different parts with the names we entered
into the column Name.
To enter the attributes according to which the FlowControl distributes the parts among its
successors, type in any name of your choice into the column Attributes to create a sub-table
with this name, and then double-click the name.
o For the part with the Name Red, we typed in MyAttr, double-clicked the cell, and entered Color
is the Name of the Attribute and Red is the color of the part.
o For the part with the Name BlackRound, we typed in MyAttr, double-clicked the cell, and
entered Color is the Name of the Attribute and Black is the color of the part. We also
entered a second attribute, namely Shape, and typed in Round is its shape.
o For the part with the Name BlackOctagonal, we typed in MyAttr, double-clicked the cell, and
entered Color is the Name of the Attribute and Black is the color of the part. We also
entered a second attribute, namely Shape, and typed in Octagonal is its shape.
When the Source produces the parts, it creates the attributes, which we entered above, as
user-defined attributes of data type string for the respective part.
Then, insert the other objects into the facility, so that they match the screenshot below.
Insert and configure the FlowControl which distributes the parts among its successors in the flow of
materials:
• As we want the FlowControl to distribute the parts according to the user-defined attributes, which
we defined above, select the setting MU Attribute from the drop-down list Strategy.
• Then, click Open List to open the table, into which you have to enter the names of the attributes,
their values, and the numbers of the successors. The FlowControl searches the table from
top to bottom until it finds an attribute with the value you entered. It then moves the part in so
that successor.
• The number of the default successor decides to which successor the FlowControl sends the
part whose attributes do not meet the criteria in the list. In our example neither the attribute Color
for the attribute Shape of the part BlackOctagonal meets the criteria.
o When you enter 0, the FlowControl does not move the part on. It remains in front of the
FlowControl, thus blocking the following parts.
o When you enter -1, or any other negative number, Plant Simulation show an error message.
You can then react accordingly by determining what should happen to the part.
To define your own way of transferring parts from station to station, you can use the TransferStation.
You can insert the TransferStation into your simulation model from the folder Tools in the Class
Library or from the toolbar Tools in the Toolbox.
In our example below we load a block of four parts onto a pallet, which is transported to another
section within the plant on a conveyor line. At the location in the plant, which is marked by a sensor,
we unload parts in blocks of two from the pallets and reload them onto a transport vehicle. Finally,
we unload parts in blocks of one from the transport vehicle onto a processing station and then
remove them from the plant.
One of your most basic tasks when creating a simulation model will be to load parts onto a means of
transport, a Container or a Transporter and to unload them from a means of transport.
When loading parts, the TransferStation gets these parts from the parts station and loads them onto
a means of transport, which has to be located at the target station. The loading process starts as
soon as part and means of transport are ready.
To model a loading process, proceed like this:
• Insert the conveyor Line , which transports the parts.
• Insert a Source ,which creates the parts. In our sample model we named it SourceParts.
• Insert a ParallelProc , which processes the parts before they are loaded onto pallets.
• Insert a Source , which creates the pallets onto which the TransferStation loads the parts. In
our sample model we named it SourcePallets.
• Insert a TransferStation , which loads the processed parts onto the Container , i.e., the means
of transport, which moves on the conveyor. In our sample model we named it LoadingStation.
Then, we have to tell this station what we want it to do:
o We want to load parts, so we select Load as the Station type.
o Then, we have to tell it where the parts to be loaded come from. For this we click the
button and select the parallel station ParallelProc in the dialog Select Object.
o Next, we have to tell it where the means of transport, our Container, is located. For this we
click the button and select the Line in the dialog Select Object.
o Finally, we have to designate the exact position on the line, where the LoadingStation loads
the parts onto the pallets. For this we type 56.5 meters as the position of the sensor into
the text box on the tab Attributes. The LoadingStation automatically inserts this sensor
into the object Line.
To show a tooltip with information about the sensor, drag the mouse over the red line
designating it on the object.
To successfully transfer the MU into the target station, you have to make sure that
the target station provides enough space to accommodate the incoming MU.
To set how we want the parts to be loaded, we click the tab Advanced Attributes.
When reloading parts, the TransferStation takes these parts from a means of transport (Container
or Transporter), which is located at the parts station, and places them onto a Container or a
Transporter , which is located at the target station. The parts station is the station, which provides
the parts to be transported. The target station is the station onto which the parts will be placed. The
reloading process starts as soon as both means of transport are ready.
To model a reloading process, proceed like this:
• Insert a Source , which creates the Transporters. In our sample model we named it
SourceTransporters.
• Insert the Track , on which the Transporter transports there loaded parts.
• Insert a TransferStation , which reloads the transported parts from the Container into the
Transporter . In our sample model we named it ReloadingStation. Then, we tell this station
what we want it to do.
o We want to reload parts, so we select Reload as the Station type.
o Then, we have to tell it where the parts to be reloaded come from. For this we drag the Line
from the Frame ever the text box in the dialog of the ReloadingStation and drop it there.
o Next, we have to tell it where the means of transport, our Transporter, is located. For this
we drag the Track from the Frame ever the text box in the dialog of the ReloadingStation
and drop it there.
o Finally, we have to designate the exact spot on the Line, where the ReloadingStation
removes the parts from the pallets. For this we enter 40.5 meters as the position of the
sensor, which the ReloadingStation automatically enters into the object Line.
• As we want to reload the parts from the pallet onto a Transporter, we have to designate the exact
spot on the Track, where the ReloadingStation loads the parts onto the Transporter. For this
we enter 16 meters as the position of the sensor, which the ReloadingStation automatically
enters into the object Track.
To successfully transfer the MU into the target station, you have to make sure that the
target station provides enough space to accommodate the incoming MU.
• To set how we want the parts to be reloaded, we click the tab Advanced Attributes. We want
to load parts in blocks of 2.
When unloading parts, the TransferStation unloads these parts from a Container or a Transporter
, which is located at the parts station, and places them onto the target station. The unloading
process starts as soon as a means of transport is ready at the parts station.
To model an unloading process, proceed like this:
• Insert a SingleProc , on to which the UnloadingStation unloads the parts from the Transporters.
• Insert a TransferStation , which unloads the parts from the Transporter and places them
on to the processing station SingleProc. In our sample model we named it UnloadingStation.
Now we tell this station what we want it to do.
o We want to unload parts, so we select Unload as the Station type.
o Then, we have to tell it where the parts to be unloaded come from. For this we drag the
Track from the Frame ever the text box in the dialog of the UnloadingStation and drop it there.
o Next, we have to tell it where the means of transport, our Transporter, is located. For this
we drag the SingleProc from the Frame ever the text box in the dialog of the UnloadingStation
and drop it there.
o To designate the exact spot on the Track , where the UnloadingStation unloads the parts
from the Transporters in to the processing station SingleProc, we enter 43 meters as the
sensor position. The UnloadingStation automatically enters this sensor into the object Track.
• To set how we want the parts to be unloaded, we click the tab Advanced Attributes. We want
to unload all blocks of parts in blocks of 1.
• Insert a Method, enter deleteMovables is the source code, and name the Method reset.
You can then change a number of settings, such as the dimensions of the Transporters and the
Containers, the block size, the number of blocks, etc. and watch how these changes affect
the simulation model.
Setting a Station Up
Setting a Station Up
You can define how to set up the objects SingleProc , ParallelProc , Assembly ,
DismantleStation , and Drain to process another type of MU.
You can:
• Select Set-up Options on the tab Set-Up.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Examplein the dialog Examples Collectionand click Open Model.
Back to Modeling the Flow of Materials, Basics
When you set up a station you will first select the set-up options. Next to Set-up for Plant Simulation
show which type of MU the object is presently set up for or is going to be set up for. If the object has
not been set up yet at all, it shows a hyphen -. To tell one type of MU from the other, Plant Simulation
wither uses the name of the MU or a user-defined attribute of the MU.
• After you have done this, you will Select the Set-Up Criteria.
To automatically set the object up, select Automatic. Then, the material flow object triggers the
set-up process as soon as an MU of the corresponding MU [type intends to move onto it.
To define the set-up process in a Method, clear the check box.
To only start setting-up the object for the next type of MU when it is Empty, select Only when empty.
MUs of the type for which the object is setting-up can only enter the object, after the set-up process
is finished.
To allow MUs to enter the object although it has not been set-up for their type yet, clear the check box.
Their set-up time begins, when all set-up processes you specified are finished. MUs located on the
object will be processed with the settings for the MU type the object was set-up before.
To set the material flow object up, after a certain number of parts have been processed, select the
check box After. Then, enter the number of parts into the text box after which you want the object
to be set up. The object also sets up and starts counting anew, starting from 1, when the part type
changes before the number you enter is reached. For this reason it may happen that the object does
not reach the number of parts of a certain type for which it is to set up.
The object always sets up for the part type, which is going to enter next. For this reason the set-up
process does not start immediately after the n-th part has been processed or when this part exits the
object. setting-up starts as soon as the (n+1)-th part enters the station.
Select Before Next Part to set the object up immediately after the n-th part was processed. Select
After Last Part to set the object up after the n-plus-first part wants to move onto the station.
The object always sets up for the part type, which is going to enter the object next.
The number of parts is the number of parts entering the station. These parts do not
necessarily have to be processed. Statistics also counts parts, which are removed from
the station before they have been processed, for example during the set-up process or
while the station is waiting for a service to be performed.
After you decided how the station sets-up, you can select when the object has to be set up:
• When the name of the MU (MU Name), which wants to move onto the station, changes.
• Enter the name of the user-defined attribute of the MU into the text box. This user-defined
attribute has to be of data type string. The material flow object sets up, when an MU, whose
user-defined attribute has a different value, moves onto the station.
In our example we created a user-defined attribute named
for the MU types. Let us assume that the station is set up for red. When an MU with the
user-defined attribute Value blue moves onto the station, it sets up for blue.
The set-up time is the time it takes to set the station up for processing a different type of MU. An
identical name designates that MUs are of the same type. In this case the material flow object will not
have to set up for a different MU type. It only needs to set up, when the MUs are of another type,
denoted by a name that differs from the previous type.
For the set-up time, you can select a distribution from the drop-down list on the tab Times, depending
on the type of MU, or the location on a station, or you can enter a constant time. When you selected
a distribution, you will then enter the values, which that distribution requires, into the text box.
Plant Simulation show these values along the top border of the tab. In addition to any of the other
distributions, you can select the Matrix(Type) distribution.
When setting-up, the time may not only depend on the target type, for which you want to set-up, but
also on the source type. In this case you can define the times in a table. Activate the user-defined
row index and the user-defined column index of the table. The row index designates the source type.
The column index designates the target type.
In our example above setting-up from no type, indicated by the hyphen, to the target type Entity
takes exactly one minute. setting-up from the type Entity to the type Transporter takes two minutes
and seven seconds.
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the MU for which the set-up time applies.
You can also determine the set-up time in a user-defined attribute of data type method,
which you created for the MU!
The processing time is the time, which the MU remains on the material flow object to be processed. It
is the interval between set-up and the time the material flow object moves it on to its successor.
• Select a distribution from the drop-down list and enter the required values
.
After you selected a distribution, you will then enter the values, which that distribution requires, into
the text box. Plant Simulation shows these values along the top border of the tab. For the negative
exponential distribution for the recovery time in the example above, you have to enter values for
Beta, and optionally the Lower Bound and the Upper Bound.
When you select Formula, you can enter a numeric expression or a the name of a Method. You can
use the anonymous identifier @ to access the MU for which the processing time applies. This Method
may also be a user-defined attribute of data type methodof the MU.
The successor is the object that is connected to the selected object with a Connector and that
succeeds it in the sequence of stations in the simulation model.
Compare the sample models: Click the Window ribbon tab, clickStart Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collectionand click Open Model.
Compare Enter Times
Compare Change the Processing Time in the Entrance Control
Go to Enter Data of a Probability Distribution
Go to Define Processing Times Depending on the Type of MU
Go to Define Processing Times in a Formula
Go to Define Processing Times for a ParallelProc
Compare Setting a Station Up
Compare Use Probability Distributions
Back to Modeling the Flow of Materials, Basics
Enter Times
Plant Simulation inputs and outputs data referring to times in the format 1:00:00:00, standing for,
left to right, days:hours:minutes:seconds.split seconds. 12:34 for example, means 12 minutes
and 34 seconds.
If you do not want to write one day out in full, just type 1::: and click Apply . Plant
Simulation then translates this to the full format 1:00:00:00.
You can also enter numbers without the colon. Plant Simulation will then interpret the number as
seconds and converts it into the above format. 111 (seconds), for example, is 1 minute and 51
seconds.
You can change time-related settings under File > Model Settings/Preferences > Units > Time scale.
Back to Defining Processing Times
Select the distribution you want to use for the processing time from the drop-down list. Then,
Plant Simulation shows the parameters, which this distribution requires, on the tab when you click
into the text box.
Enter the corresponding values into the text box. Note that the lower bound and the upper bound are
optional, you can, but do not have to enter them.
To set the processing time of a station depending on the type of MU, you can use the List(Type)
distribution.
• Enter the name of the TableFile object into the text box. Enter the names of all MUs to be
processed into column 1 of the table and the corresponding times in seconds into column 2. Plant
Simulation then uses this time as the processing time for the corresponding MU type.
During the simulation run Plant Simulation reads the processing time from that table.
• Enter the formula as a basic arithmetic operation directly into the text box.
• Enter the formula directly into the text box and access the MU for which the processing time
applies with the anonymous identifier @.
• Enter the name of a Method object into the text box. Enter the formula into the Method. This
Method has to return a value of data type time.
The source code in SimTalk 2.0 notation looks like this:
-> time
if @.Name = "red"
result := 60
elseif .Name = "blue"
result := 180
else
result := 120
end
: time
is
do
if @.Name = "red"
then
result := 60;
elseif .Name = "blue"
then
result := 180;
else
result := 120;
end;
end;
In our example, the formula, which we entered into the method cyclesMethod, sets how long the
station processes the MUs in accordance to their color.
To set the processing time of a station in a formula with an arithmetic operator:
• Select Formula is the Processing time.
• Enter the expression into the text box. In our example we entered @.MyAttribute+1. This formula
adds 1 minute to the processing time of MUs that have the user-defined attribute MyAttribute.
We defined MyAttribute in the class of the MU.
To set the processing time of a ParallelProc with several processing stations, which have different
but constant processing times, you can use the List(Place) distribution.
• Enter the name of the TableFile object into the text box. In this table, the entry [1,2] matches
the processing station located at position [1,2], for example.
When an MU arrives at a processing station of a ParallelProc during a simulation run, Plant
Simulation takes the appropriate time for that station from the table.
Modeling Failures
Modeling Failures
To closely model real situations, where machines fail at times, you can define one or several failure
profiles. Failures do affect the technical availability of the individual stations. You can:
• Manually fail the object by selecting Failed in the dialog of the material flow object. When you
fail the object like this, you will also have to manually remove the failure by clearing
the check box again.
The LED can simultaneously display several [states that are active at the same time,
while the state icon can only display the state it represents.
• To use an icon for each of the different states, create a new icon in the Icon Editor, and name it
failed. Click State Icons/LEDs > Use State Icons in the General ribbon tab of the Icon Editor, to
make the object show state icons, instead of the LED.
When you manually fail a station, it remains failed while any of the failure profiles you defined is
active. It will change to not failed once the last failure (DisruptionEnd) of the last failure profile is over
or you clear the check box .
As soon as the failure starts, the object changes to inactive for the duration of the failure. During
this time it will not receive any parts. If a part is located on the object, its processing is interrupted
for the duration of the failure and continues once the failure is cleared. Plant Simulation adds the
duration of the failure to the processing time or to the dwelling time.
If an MU could not enter the object because of a failure, Plant Simulation deactivates the MU with the
un-blocking mechanism as soon as the failure ends.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Go to Define Failures
Go to Change Failure Settings During the Simulation Run
Back to Modeling the Flow of Materials, Basics
Define Failures
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
The failure of the object is only active, when you activate Active the check box on the tab
Failures and the check box Active of the corresponding failure profile!
1. To run your simulation model with failures in general, make sure that the check box Active on
the tab is selected.
2. Click New and select and enter the parameters of the failure profile you are defining into the
dialog that opens.
4. Select if this failure profile is Failed or not during the simulation run.
5. Select a distribution for the time at which the first failure takes place from the drop-down list Start.
Enter the values, which that distribution requires, into the text box. Plant Simulation show these
values above the list of distributions which you can select.
The Lognormal distribution, the Erlang distribution and the Negative exponential distribution
are especially suited for modeling failures.
6. Select a distribution for the time at which the last failure will take place from the drop-down list
Stop. Enter the values, which that distribution requires. Plant Simulation shows these values
above the list of distributions which you can select.
When you do not enter a Start time and a Stop time, the first failure occurs after the Interval you
entered is over. Any value you enter as theStart time overwrites this behavior.
7. Enter the Availability in percent and MTTR. If you would like to enter the Interval and the
Duration of a failure instead, clear the check box Availability. Note that Availability and
MTTR is just another kind for displaying the Interval and the Duration. When you enter
values for Availability and MTTR and clickApply, Plant Simulation computes the values for
the Interval and the Duration and enters them into the respective text boxes. It also selects
the Negexp-distribution for the Interval and the Erlang-distribution for the Duration. Plant
Simulation show them in the dialog, when you clear the check box Availability. An availability of
100 percent has an MTTR of 0, as the machine is available and does not have to be repaired.
8. If you want to select a distribution for the Interval and the Duration, clear the check box
Availability. Then select a distribution for the time between the end of the last failure and the
beginning of the next one, i.e., the failure Interval, from the drop-down list. Enter the values,
which that distribution requires, into the text box. Plant Simulation shows these values above
the list of distributions which you can select.
Select a distribution for the Duration of the failure. Enter the values, which that distribution
requires, into the text box. Plant Simulation shows these values above the list of distributions
which you can select.
9. Select the time to which the failures relate from the drop-down list:
• Simulation Time
Consumes the time you entered for the failure interval, regardless of the state the object is
in. An example could be the electrical system of the plant, which may fail at any point in
time. The simulation time is the time between the beginning of the simulation run (Reset
Simulation, Start Simulation) and its end (Stop Simulation).
• Operating Time
Consumes the time you entered for the failure interval only when the object is operational. An
example could be the coolant pump of the engine, which may fail any time during which the
machine is on; the machine does not actually have to process parts. The operating time
will be interrupted by pauses and failures.
• Processing Time
Consumes the time you entered for the failure interval while the object is processing. An
example could be a saw blade, which can only break, when the machine actually saws
materials.
For point-oriented objects the processing time is the time during which a part is located
on a material flow object and is being processed by it. For conveying objects, such as the
Line, the processing time is the time during which its speed is not 0. It can also be working,
when the conveyor is moving and does not transport a part.
10. Click OK to add this failure profile to the list of failure profiles. If you want to edit a failure profile,
double-click it in the list or click Edit.
11. Repeat this procedure for any additional failure profiles you want to define.
As our machine MyStation only has a single failure profile, we can type in
the instructions in the simplified notation as below. Plant Simulation then
always uses the first failure profile. If the machine had several failure profiles,
we would have to address the attributes via the respective failure profile,
MyStation.Failures.MyFailureProfile1.Availability := 80 for example.
• To start reducing the availability of the machine after 12 hours have been simulated, enter the
following instructions into the init method in the model:
&setFailure.methCall(str_to_time("12:0:0")) -- SimTalk 2.0
• To reset the availability of the machine at the start of the next simulation run to 100 percent,
enter the following instruction into the reset method in the model.
MyStation.Availability := 100;
• To show the simulated availability at the end of the simulation run in the Console, enter the
following instruction into the endSim method in the model.
print EventController.simTime," Simulated availability in the afternoon: ", round(
• Then, run the simulation and watch what Plant Simulation show in the Console.
For the first 12 hours of the simulation run the availability of the object MyStation was 100
percent. Then we set the availability to 80 percent and the MTTR to 10 minutes and deactivated
and reactivated failures, to make sure that the next failure is calculated with an complete set
of valid parameters. After an additional 10 hours of simulating, compare the end time of the
EventController, the availability of the machine MyStation has decreased to 79.45 percent.
Compare the sample model: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
The Buffer , which you place between two components or stations of your plant, serves two
purposes:
• It temporarily holds parts, when one of the components following it in the sequence of stations fail.
• It moves parts on, when the preceding components stop working, preventing the production
process from grinding to a halt.
Dimensioning a Buffer with a large enough capacity for covering all failures leads to a complete
decoupling of both components of your plant. The Buffer not only tides over failure times but also
serves as a compensating station for fluctuating transport and operating times, which lead to queues
forming in front of a machine or a component. But even then it cannot always prevent the material
flow from being interrupted or coming to a halt.
You can insert the Buffer into your simulation model from the folder Materialflow in the Class Library
or from the toolbar Materialflow in the Toolbox.
In our sample model consisting of a simple production line with a source, a processing station, a test
station, and a drain, the processing station is blocked now and then because the test station cannot
test the parts fast enough.
To remedy the situation, we inserted a Buffer between the processing station and the test station.
The Buffer temporarily holds the parts before moving them on to the test station.
As compared to the default settings we changed the capacity of the Buffer from 4 to 200 and entered
a processing time of 15 minutes. We left the remaining settings unchanged.
When you now run the simulation, you will notice that the processing station will not be blocked
because the Buffer temporarily holds a maximum of 200 parts for 15 minutes each before the testing
station can test them.
The tab Statistics show the relative occupancy, the percentage of the time it was relatively empty or
relatively full, maximum and minimum contents and the number of entries and exits.
You can also use a Chart to show how the number of parts in the Buffer develops over time.
To show more parts on the icon of the Buffer than it will normally show, you make the icon of the
Buffer wider. To do so, hold down the Shift and Ctrl key, drag the mouse over the right border
of the icon, and drag the mouse to the right.
At times you may also want show the relative fill level of the Buffer :
• To display the relative fill level of the Buffer is a colored bar at the bottom of its icon in the Frame,
select the check box Show fill level on the tab Attributes. Be aware that the bar
just shows a quantitative portion, not exact numbers.
• To view more exact percentages, click the tab Statistics, and check the following values:
o Relatively empty shows the portion of the statistics collection period during which the object
was empty in relation to the time during which the object was available.
o Relatively full shows the portion of the statistics collection period during which all temporary
storage places of the Buffer were occupied in relation to the time during which the object
was available.
The finished simulation model for demonstrating these features looks like this:
• Configure the Chart for Showing the Full and Empty Portions
• Enter the capacity of the processing stations. We used the default setting, namely 2 is the
x-dimension and as the y-dimension respectively. This results in 4 processing places on
each station.
• Enter a processing time. We decided to use a normally distributed time with the values shown
below.
• Enter settings for failures of the processing station. We decided to use an availability of 92
percent.
We used the same settings for the other processing stations as well.
Insert and configure the Buffers, which temporarily hold the parts.
We inserted five Buffers in our sample model and used the settings below for all of them.
Insert and configure the rest of the stations so that they match the screenshot below.
Then, run the simulation and check the tab Statistics of the individual Buffers, specifically the values
for relatively empty and relative full in the middle column of the tab.
Go to Configure the Chart for Showing the Full and Empty Portions
Back to Check the Fill Level of the Buffers in the Facility
Configure the Chart for Showing the Full and Empty Portions
In addition to viewing the percentage values for relatively empty and relative full on the tab
Statistics, you can also display these values in a Chart.
To do so, proceed as follows:
• Insert a Chart into the simulation model.
• Click the tab Display and select the Category > Chart.
• Click the tab Data and select the Data source > Input Channels.
• Deactivate inheritance of the input channels table and click Input Channels.
• Enter the labels of the values you want to display into the table. We entered Empty, Partially
full,and Full into the cells of the row index.
• As we want to drag the Buffers onto the Chart and drop them there to display the values, we need
to create a drag-and-drop control for the Chart:
o Select Tools > Edit Controls, click in the text box next to drag-and-drop, and press the F4
key. This creates the drag-and-drop control as a user-defined attribute of data type method.
o Copy the following source code and paste it into the method that opens:
The source code in SimTalk 2.0 notation looks like this:
param draggedObjects: object[]
var obj: object
var numBuffers: integer
var MyTab : table := @.InputChannels -- inheritance of the table 'InputChannels
MyTab.delete({1,0}..{*,*})
switch obj.internalClassName
case "NwIOBuffer", "Buffer", "Sorter"
numBuffers := self.~.InputChannels.xDim +1
MyTab[numBuffers,0] := obj.Name
MyTab[numBuffers,1] := obj.Name + ".statRelativeEmptyPortion"
MyTab[numBuffers,2] := "1 - " + obj.Name + ".statRelativeEmptyPortion - "
MyTab[numBuffers,3] := obj.Name + ".statRelativeFullPortion"
end
next
(draggedObjects: object[])
is
obj : object;
numBuffers : integer;
do
local MyTab : table := @.InputChannels; -- inheritance of the table 'InputCh
MyTab.delete({1,0}..{*,*});
inspect obj.internalClassName
when "NwIOBuffer", "Buffer", "Sorter" then
MyTab[numBuffers,0] := obj.Name;
MyTab[numBuffers,1] := obj.Name + ".statRelativeEmptyPortion";
MyTab[numBuffers,2] := "1 - " + obj.Name + ".statRelativeEmptyPortion
MyTab[numBuffers,3] := obj.Name + ".statRelativeFullPortion";
end;
next;
o Drag a marquee over all objects in the model, drag them onto the Chart, and drop them
there. The Chart automatically knows for which of the objects it can display values and
then displays them.
into the first free storage place in the net of coordinates of the storage places. In our sample model
the material flow is controlled by the method PlaceInStock, which we use as the entrance control
of the warehouse, and by the method RemoveFromStock, which we use as the exit control of the
station RetrieveFromStore.
As parts occasionally have to be reworked, we want to change the original order of parts, which are
placed into stock, and we then want to re-establish the original order when we remove them from
stock. We do this in the station MixOrders located directly before our Store.
We have to set the size of the Store according to the degree of change of the sequence to prevent it
from overflowing. To accomplish this two events are essential: First an additional part arrives at the
Store and second a part is removed from the Store. When the Store is full, it does not accept any
additional parts. We therefore have to increase the size of the Store in the entrance control of the
Store is full. Each part that is placed into stock and that is removed from stock must be registered
on the table file InventoryTable. To manage the inventory and to remove parts from stock, we
program the control AttemptToRemoveNextPart, which is called by the methods PlaceInStock and
RemoveFromStock. This method checks whether the next removing action is possible so that the
original order of the parts can be re-established so that the production process can be maintained
without a shortage of parts.
In the reset method we delete the contents of the InventoryTable and reset the counter of the
variableNextNumber to 1.
You can insert the Store into your simulation model from the folder Materialflow in the Class Library
or from the toolbar Materialflow in the Toolbox.
Compare the sample model: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling the Flow of Materials, Basics
To create our simple warehouse model, you first have to set the stations up:
• To make the Source produce a part every minute, enter 1:00 as the interval. To stop producing
parts after a day, enter 1:00:00:00.
• As parts occasionally have to be reworked, we want to mix up the original order of parts to be
placed into stock and we then want to re-establish the original order which is required for our
production process when removing the parts from stock.
To set the size of the station MixOrders, which is a ParallelProc, according to the degree of change
of the sequence of the arriving parts, enter an X dimension of 200 and an Y dimension of 20.
To mix up the order of the parts that the Source produces, we need a random processing time.
We selected the uniform distribution and entered the parameters 0, 30:00 in our example. The
two values denote the bounds of the uniform distribution.
• To set the size of the Store, enter its dimensions in the coordinate net of the storage places.
We entered 4 and 8.
As the Store is passive material flow object, you have to program how it handles the parts.
To specify the name of the entrance control, which registers the parts contained in the Store in a
table file, click the ellipsis button and select the name of the method in the dialog that opens. We
named our entrance control PlaceInStock.
• To configure the station that receives the parts that are removed from stock, enter and select the
settings for the exit control.
First, select the name of the exit control. It catches the event after a part has been successfully
removed from the Store.
Then select the check box rear, so that the control is rear-triggered, i.e., after the part has
left the station RetrieveFromStore.
AttemptToRemoveNextPart;
part : object;
do
-- check if the next part according to the original sequence
-- is already located in ’MyStore’
if InventoryTable.getRowNo( #NextNumber )>0 then
part := InventoryTable[1,#NextNumber];
sequenceNo := part.id;
if sequenceNo = NextNumber AND part.move(AttemptToRemoveNextPart) then
NextNumber := NextNumber + 1;
InventoryTable.cutRow(#part.id);
print "Retrieved part number: ", part.id;
end;
end;
end;
During the simulation the Variable, which we named NextNumber in our sample model, shows the
identifier of the last part that exited the Store according to the original sequence of parts produced by
the Source named Receiving.
To check if the parts really did exit in the restored original sequence, consult the Console.
To visualize the occupancy of the Store, insert a Chart into your model and select the following
settings:
• Select input channels is the data source. Then click Table File. Enter the name of the Store,
MyStore in our case, into row 1. Enter the name of the Store and the name of the method whose
values you want to display into cell 1 of column 1, MyStore.numMU in our case.
• Click the tab Display and select the category Plotter and the chart type Line for displaying the
plotted values.
You’ll notice that the icon of the Chart changes to the icon of the Plotter in the
simulation model when you click Apply or OK.
• Click the Plotter in the model with the right mouse button, select Show, start the simulation,
and watch how the values develop over time.
The object Cycle synchronizes the transfer of parts from station to station within a production line.
You can use it to only move a part on to the next station within a balanced line, when all stations
have finished processing their parts and when none of the stations is failed, paused, or unplanned. In
addition, the successor of the balanced line has to be ready to receive the part.
You can insert the object Cycle into your simulation model from the folder Materialflow in the Class
Library or from the toolbar Materialflow in the Toolbox.
To create the simulation model, insert the objects so that they match the screenshot below.
To define the balanced line, enter the name of the first station and of the last station into the text
boxes. All stations between the first and the last station, which are connected with Connectors, form
the balanced line. Each station has to have a predecessor and a successor and can only have
a single predecessor and a single successor.
At the moment you can only balance production lines that consist of objects of type
SingleProc and Assembly station. When an Assembly station is part of the balanced line,
the Cycle only continues balancing, when the assembly process has been finished.
If you did not define any stations for the balanced line yet, you can drag an object of type SingleProc
and Assembly station onto the icon of the object Cycle and drop it there, Plant Simulation enters it as
the first station of the balanced line.
We did this with the station called Drill, which is a modified SingleProc.
Then drag another object onto it and drop it there, Plant Simulation enters it as the last station.
We did this with the Assembly station. We then changed our mind and decided to make the station
called TestQuality the last station. To do so, we held down Shift, dragged it over the Cycle, and
dropped it there.
As each station within the balanced line can only have a single predecessor and a single
successor, the Source TableLegsIn, that feeds the table legs to the Assembly station in
our example above, cannot be part of the balanced line.
To detect the difference between a balanced line and an unbalanced line, we copied the balanced
line and pasted it below it. We then started the simulation and checked the summary report after
the simulation was finished.
Compare the sample model: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling the Flow of Materials, Basics
Many computer programs use random number generators to create a stream of random numbers that
generally are located in the interval between 0 and 1. Starting from given start values, the so called
seed values, a large number of stochastically independent random numbers has to be available.
Compare these examples of the application of random numbers in computer programs:
• Gaming programs use random numbers to allow for a greater diversity of the operating sequence
of the game.
• Database programs use random numbers to enter a large number of data sets and thus test the
functionality of the database.
• Simulation programs, such as Plant Simulation, use random numbers to represent, among
others, the interval between failures of machines.
We know that there are deterministic processes and random processes. For a deterministic process,
we can predict the result of the process, for example by knowing a law of nature. If we do not know all
factors that characterize a process, its result is random. When we simulate a production processes,
the occurrence of pauses is a deterministic process. Failures of machines or the rejects that are
produces, on the other hand, are random processes. A random process results in a random number.
The replication of the process results in the realization of the random number. Throwing the dice is a
random process, the resulting number of points is the associated random number.
There are random numbers that can have individual, disjoined values. These may be a limited or
an unlimited number of different values, such as the number of rejects over a long period of time or
the number of orders on a day. A limited number may result from throwing the dice, an unlimited
number can be a countable numbered amount. These types of random numbers are called discrete.
To simplify matters, we suppose that these values can be 0, 1, 2, etc. For describing the random
number we specify the probability for the individual numbers to be the result of throwing the dice.
Adding up all probabilities has to result in 1, as one of the numbers will always be thrown.
A random number that can take all values within a limited or an unlimited interval of numbers is
continuous. Examples of continuous random numbers are the mean time between failures (MTBF)
and the mean time to repair (MTTR) of a machine. For describing a continuous random number,
we cannot specify the probability for an individual number to occur. We rather have to specify the
probability with which this random number is located between two given values, i.e., we specify
an interval.
The probability density function test describes the distribution of a random number. The density
function of a continuous random number only has values greater than 0 or equal to 0. It can be
continuously drawn without interruption. The area underneath the function between two values a and
b is the probability that the random number is located between these values a and b. Simply put the
value of the density function at the location x describes how often a value will occur that approximates
x. The entire area below the curve of the density function has the value 1, as with each realization
of the random number a certain value occurs.
The screenshot above shows the density function of the gamma distribution with the parameters
Alpha = 3 and Beta = 5,5. The most random numbers occur in the vicinity of the apex of the density
function (random number x = 11). This value is called the modal value. When you build the mean
of many realizations of this distribution, you will notice that the mean value is substantially greater
than the mode/modal value. The mean value will be around 16.5. This gamma distribution will create
random numbers between 24 and 26 with a probability of 0.04. This probability equals the gray
area below the curve in the screenshot above.
For creating a random number it oftentimes suffices to create a uniformly distributed random number
located in the interval between 0 and 1 (0,1). A random number is uniformly distributed, when the
probability for an interval only depends on its length, and not from it position on the line of numbers.
Using a uniformly distributed random number the computer can, for example, algorithmically create a
normally distributed random number with a given mean value and standard deviation.
• The arrangement of the random numbers shows no typical characteristics, i.e., the algebraic
signs of consecutive random numbers do not display any typical patterns.
• The algorithm for creating random numbers has to become periodic, as the computer only has a
finite number of states. For this reason the period length has to be as large as possible.
• Starting from the given seed values a large number of stochastically independent random
numbers has to be available for the simulation.
• The random processes of a simulation have to be reproducible to be able to use certain statistic
methods, such as the variance reduction.
As a rule, only very few observed data about random process, such as the interval between two
failures of a machine, will be available to you.
To enable you to reproduce these random processes in your simulation model, Plant Simulation
provides a number of probability distributions, compare Probability Distributions, Empirical
Distributions, and User-defined Distributions in the Plant Simulation Reference.
The topic Step 3: Decide which Distribution to Use assists you in picking the right distribution for
your purpose.
Once you select the distribution from the list, Plant Simulation show the parameters, which this
distribution requires, along the top border of the tab.
Calculate the corresponding values in the observed data, which you received from your customer,
and enter them into the text box. Note that the lower bound and the upper bound are optional,
meaning that you can, but do not have to enter them.
Back to Modeling Random Processes
• How to customize the behavior of the objects with controls and user-defined attributes.
You can modify the built-in transfer behavior of the material flow objects by programming an Entrance
control and an Exit control. The object calls the Method, whose name you entered, as soon as
an MU intends to enter or exit the respective object. Be aware that these controls override the
standard transfer behavior, meaning that you yourself have to make sure that the MU moves to the
correct station!
You can use control methods in a number of ways. You might, for example, count the number of
incoming MUs and then, after a specified number has been reached, move the following MUs to
a different successor.
You will program the controls in a Method. This can either be:
• A Method object which can be located in a folder in the Class Library or in a Frame. When you
want a number of objects, which are located in the same Frame, to call the same Method, you
typically use a Method object, which you insert into that Frame.
• A user-defined attribute of data type method, which only the object to which you added it, can
use. When you want all instances of a class to provide the same control, you typically create that
control as a user-defined attribute in the class.
To tell Plant Simulation which Method to use, do one of the following. The process is the same for
entrance and exit and backward entrance and backward exit controls:
• To select a Method in a Frame: Click the button and select a Method in the dialog Select
Object. By default Plant Simulation enters the relative path into the text box.
To activate the entrance control of the point-oriented objects before the standard actions are
started, when a part enters the object, select Before actions. Standard actions are, for example,
starting the processing time or the set-up time, requesting services through the importer, or
changing the assembly table of the Assembly station.
Select the Method in a Frame, drag it to the text box and drop it there. Here Plant Simulation
enters the absolute path into the text box.
To open the dialog of the object, whose name you entered into the text box, either press F2 or
right-click the text box and select Open Object.
• To create a control method, which belongs to this object: Right-click into the text box and
select Create Control on the context menu:
o Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant.
Enter the source code of this control into the Method that opens.
Be aware that a control you create with Create Control is a user-defined attribute of the
respective object, not a Method object, which you can open in the Frame.
o To delete this control, delete the user-defined attribute; deleting the name from the text box
just deletes the name, but keeps the user-defined attribute.
The exit control can have an optional parameter of data type object. When
the Method has this parameter, then the successor object, which pulls the MU
because the MU has contained in the blocking list of the object, will be assigned to
this parameter. The MU will be pulled, for example, when the successor becomes
available again or when its entrance is opened.
You can:
• Define Controls for Point-Oriented Objects
Point-oriented objects are the material flow objects that provide one or more processing stations,
but do not have a length and do not take the length of the MU into account.
The SingleProc , the ParallelProc , the Assembly station , the DismantleStation , the Buffer
, the PlaceBuffer , the Store , the Sorter , the Source , and the Drain are point-oriented.
Plant Simulation activates the Entrance control you entered, once the MU has entered the object in its
entirety, for the point-oriented objects, such as the SingleProc . This is the default setting for
which the check box is cleared.
To activate the entrance control before the standard actions are started, when a part enters the
object, select Before actions. Standard actions are, for example, starting the processing time or
the set-up time, requesting services through the importer, or changing the assembly table of
the Assembly station.
Plant Simulation activates the Exit control, when an MU exits the object.
The check boxes Front and Rear set, when the MU triggers the Method.
• Select Front to activate the control as soon as the MU is ready to exit the object. The exit
control then has to move the part to another object, as the built-in behavior of the material flow
object, i.e., moving the MU in to the successors along the Connectors, has been overridden by
the exit control.
The same MU can call the Front-triggered exit control more than once, if that MU
could not exit the object and entered itself into the blocking list of the target object.
As soon as the target object is ready to receive the MU, the MU is assigned a new Out
event, which triggers the Front-triggered exit control again.
Select Rear to activate the control as soon as the rear of the MU has completely exited the
object. This control does not override the built-in behavior of how MUs move to the successor
of the current object.
The program calls the rear-activated exit control once only. It does not override the
default exit strategy.
Compare the Out, OutEnd and Reference events in the List of scheduled events.
• You can also select both check boxes, Front and Rear, for the entrance and the exit control. The
MU then executes the control as soon as the front or the rear of the MU enters or exits the object.
• Enter the required data into the delivery table. We typed in the data shown in the screenshot
below.
• Insert and configure the station which processes the parts. We used a ParallelProc. We
entered a processing time of 2 minutes, i.e., 2:00, on the tab Times. We selected the method
MyEntranceControl, which we inserted before, as the entrance control. We did not change
any of the other settings.
Then, program the entrance control. We typed in the following instructions, which change the
processing time of the part called PartA to 10 minutes. The part called PartB will be processed
for 2 minutes, i.e., for the time which we entered as the processing time.
The source code in SimTalk 2.0 notation looks like this:
switch @.Name
case "PartA"
?.ProcTime := str_to_time("10:0") -- PartA will be processed for 10 minutes
case "PartB"
?.ProcTime := str_to_time("2:0") -- PartB will be processed for 2 minutes
end
When you click Apply, Plant Simulation shows a message telling you that you have to activate
the check box Before actions, if the instructions in the control are to apply to the active part.
Select the check box and run the simulation.
Run the simulation and watch what happens. To follow how the events are processed during the
simulation, you can click in the EventController and then click in the EventDebugger.
At the start of the simulation the Source creates a part, signified by the CreateMU event.
When you click again, the part leaves the Source, signified by the Out event.
When you click again, the part is located on the ParallelProc and the entrance control is
activated before the standard action, in this case setting the processing time, is started. This is
signified by the StartActions event.
The mean life time, which matches the processing time, is 10 minutes for PartA and 2 minutes
for PartB.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Go to Change the Services of the Importer in the Entrance Control
Go to Change the Assembly List in the Entrance Control
Back to Define Controls for Point-Oriented Objects
You can change the services, which the importer requests, in the entrance control.
To activate the Entrance control of point-oriented objects before the standard actions are started,
when a part enters the object, select Before actions.
The finished simulation model to demonstrate this feature looks like this:
• Enter the required data into the delivery table. We typed in the data shown in the screenshot
below, which sets when the three different parts are delivered.
• Insert and configure the station which processes the parts. We used a SingleProc. We selected
the method MyEntranceControl, which we inserted before, as the entrance control and selected
Before actions.
• Insert the Drain, which removes the parts from the plant.
• Insert the two Workplaces, which service the processing station, the FootPaths in which the
Workers talk to and from the WorkerPool, and the Broker. Select this Broker is the Broker who
manages the Workers on the tab Importer of the SingleProc.
• Configure the WorkerPool. Click Creation Table and enter the data shown in the screenshot
below. Select the check box Get job orders n the pool only.
• Program the entrance control. We typed in the source code below. It creates the local variable
servicesTable and get the services table of the importer of the processing station SingleProc. It
then checks the names of the parts and writes the name of the service and the amount for that
part into the servicesTable. It finally sets the local variable servicesTable is the services table
of the importer of the SingleProc.
The source code in SimTalk 2.0 notation looks like this:
var servicesTable: table[string,integer,string]
SingleProc.imp.getServices(servicesTable)
servicesTable.delete
switch @.Name
case "PartA"
servicesTable.writeRow(1,1, "ServiceA",2)
case "PartB"
servicesTable.writeRow(1,1, "ServiceB",1)
case "PartC"
servicesTable.writeRow(1,1, "ServiceA",1)
servicesTable.writeRow(1,2, "ServiceB",1)
end
SingleProc.imp.setServices(servicesTable)
is
servicesTable : table[string,integer,string];
do
SingleProc.imp.getServices(servicesTable);
servicesTable.delete;
inspect @.Name
when "PartA" then
servicesTable.writeRow(1,1, "ServiceA",2);
when "PartB" then
servicesTable.writeRow(1,1, "ServiceB",1);
when "PartC" then
servicesTable.writeRow(1,1, "ServiceA",1);
servicesTable.writeRow(1,2, "ServiceB",1);
end;
SingleProc.imp.setServices(servicesTable);
end;
• When you click Apply, Plant Simulation show a message telling you that you have to activate the
check box Before actions, if the instructions in the control are to apply to the active part.
• Run the simulation and watch what happens. To follow how the events are processed during the
simulation, you can click in the EventController and then click in the EventDebugger.
Compare the event list with the services which the entrance control entered into services
table, which the button opens.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respectiveCategory, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Change the Processing Time in the Entrance Control
Go to Change the Assembly List in the Entrance Control
Back to Define Controls for Point-Oriented Objects
You can change the Assembly table of the Assembly Station in the entrance control.
To activate the Entrance control of point-oriented objects before the standard actions are started,
when a part enters the object, select Before actions.
The finished simulation model to demonstrate this feature looks like this:
o Enter the required data into the delivery table. We typed in the data shown in the screenshot
below, which sets when the two containers are delivered.
o The SourceParts produces the parts which are loaded onto the pallet.
Enter the interval. We entered an interval of 20 seconds, i.e., 0:20.
Select the MU selection. We selected random and then the name of the table, which we
inserted before, namely the TableFileMyParts. Selecting the table automatically applied
the correct format. We typed in the data shown in the screenshot below, which sets the
frequencies at which the two parts are created.
o Insert and configure the station which processes the parts. We used a ParallelProc and
increased its capacity to 100 parts, i.e., we entered an X-dimension and a Y-dimension of
10 each. We did not change any of the other settings.
o Insert and configure the Assembly station which assembles the parts that arrive from the
Sources. We decided to assemble the parts according to the assembly table. As we want to
attach the parts, we selected the assembly mode > attach MUs.
o Select and program the entrance control. We selected the method MyEntranceControl,
which we inserted before, as the entrance control and selected Before actions.
We typed in the source code below. It creates the local variable assyList. It then checks the
names of the containers, A or B, and writes the name and the amount for that part, MyPartX
or MyPartY, into the assyList. It finally sets the local variable assyList is the assembly list
of the Assembly station.
assyList.create
switch @.Name
case "A"
assyList.writeRow(1,1, "MyPartX",1)
assyList.writeRow(1,2, "MyPartY",2)
case "B"
assyList.writeRow(1,1, "MyPartX",2)
assyList.writeRow(1,2, "MyPartY",1)
end
Assembly.AssemblyList := assyList
When you click Apply, Plant Simulation show a message telling you that you have to activate
the check box Before actions, if the instructions in the control are to apply to the active part.
o Insert the Line, which transports the assembled parts, and the Drain, which removes them
from the plant.
o Run the simulation and watch what happens. To follow how the events are processed
during the simulation, you can click in the EventController and then click in the
EventDebugger. Compare the event list with the parts, which the entrance control entered
into assembly table. Click to open
the assembly table.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Change the Processing Time in the Entrance Control
Back to Change the Services of the Importer in the Entrance Control
Back to Define Controls for Point-Oriented Objects
You can determine how a station moves the parts, which it has processed, on to its successors in
the Exit control.
In our example the Source produces 1000 parts and moves these on to the SingleProc. We are going
to count the number of incoming parts in the exit control, and then, after a certain number has been
reached, move the following parts on to a different successor.
The finished simulation model looks like this:
• Insert and configure the stations which process the parts. We inserted four SingleProcs. We
use them with their default settings, except for the SingleProc that distributes the parts across
its successors.
• We selected the Method MyExitControl and entered the source code below.
• We placed the cursor behind do, pressed Enter and typed in n := SingleProc.statNumIn;This
reads the statistics value statNumIn of the SingleProc. We then pressed Enter again, changed to
the Template menu and selected if... elseif... end. This inserted an if... elseif... end-statement
into the source code and saved us from typing it in. It also showed us, with the expressions
highlighted in red, which parts of the source code we have to replace with our own instructions.
• First, we replaced the condition with our condition, namely n less than or equal to 100, i.e.,
we typed in n = 100.
• Next, we replaced the then_branch with @.move(SingleProc1);. This instruction tells Plant
Simulation to move the first 100 parts to SingleProc1.
• Then, we replaced the elseif condition with our condition, n less than or equal to 300, i.e., we
typed in n = 300. We replaced the remaining then_branch with @.move(SingleProc2);. This
moves the next 200 parts to the station SingleProc2.
• Finally, we typed in @.move(SingleProc3);This moves the remaining 700 parts to the station
SingleProc3. The @ sign in our source code identifies the part, which is going to be moved.
The finished source code in SimTalk 2.0 notation looks like this:
var n: integer
n := SingleProc.statNumIn
if n = 100
@.move(SingleProc1)
elseif n = 300
@.move(SingleProc2)
else
@.move(SingleProc3)
end
The finished source code in SimTalk 1.0 notation looks like this:
is
local n : integer;
do
n := SingleProc.statNumIn;
if n = 100 then
@.move(SingleProc1);
elseif n = 300 then
@.move(SingleProc2);
else
@.move(SingleProc3);
end;
end;
Run the simulation and check the statistics report. It shows that the parts are distributed as we
programmed them to do: The first 100 parts moved to SingleProc1, the next 200 to SingleProc2,
and the remaining 700 to SingleProc3.
Compare the video Creating an Exit Control under the Window ribbon tab > Start Page >
Getting Started > Videos.
Back to Define Controls for Point-Oriented Objects
The length-oriented objects Track , TwoLaneTrack , Line and Turntable take their own
length and the length of the MUs, which move on them, into account during the simulation runs.
In addition to the forward Entrance control and the forward Exit control, they provide a Backward
entrance control and a Backward exit control. Plant Simulation activates these controls, when the
Transporter backs up on them.
The Transporter backs up on the Track, it does not turn around. This means that it moves
in reverse with its front end still pointing in the direction of the flow of materials instead of
its front end pointing in the opposite direction!
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of the
part is located on the right-hand side and moves towards the right. When you insert a
length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box
Backwards of the Line or the Transporter! The Front of the part keeps on pointing towards
the end of the length-oriented object into the direction with which you inserted it along
the direction of motion of the material flow.
• When the Front or the Rear of the MU has entered the Track , the TwoLaneTrack , or the
Line .
Remember that an MU, for which you entered a length, does not move onto these objects all
at once, but continually. Depending on the length and the speed of the MU, there will a delay
between the time the front and the time the rear of the MU enters the object.
o Select Front to activate the control as soon as the front of the MU has entered, i.e., is located
on the object. This means that changing the processing time in the entrance control does
not affect the MU that already entered the object. To set the processing time depending on
the MU that arrives, define the processing time in a formula.
o Select Rear to activate the control as soon as the rear of the MU has entered the object.
• Select Rear to activate the control as soon as the rear of the Transporter has moved onto the
object while moving in reverse.
• Select Front to activate the control as soon as the front of the Transporter has moved onto
the object while moving in reverse.
When the Front or the Rear of the Transporter has moved onto the length-oriented objects Track,
TwoLaneTrack, or Line at their exit while it backs up. The check boxes Front and Rear set, when
the Transporter triggers the Methods.
• Select Rear to activate the control as soon as the back of the Transporter has moved onto the
object at its exit while backing up.
The program calls the rear-activated exit control once only. It does not override the
default exit strategy.
• Select Front to activate the control as soon as the front of the Transporter has moved onto the
object at its exit while backing up. The exit control then has to move the part to another object, as
the built-in behavior of the e, i.e., moving the MU in to the successors along the Connectors, has
been overridden by the exit control.
The same MU can call the Front-triggered exit control more than once, if that MU
could not exit the object and entered itself into the Blocking List of the target object.
As soon as the target object is ready to receive the MU, the MU is assigned a new Out
event, which triggers the Front-triggered exit control again.
Create Sensors
The material flow objects have built-in sensors, i.e., the entrance controls and the exit controls that
the arriving or the leaving MUs trigger. A triggered sensor calls the Method object, whose name
you entered as an entrance or as an exit control. These user-defined controls will then replace
the built-in properties of the object.
For the length-oriented objects Track , TwoLaneTrack , Turntable , and Line , and for the
Transporter you yourself can, in addition to the entrance controls and to the exit controls, define
sensor controls anywhere on the object. The Track and the Line activate the Methods you assigned
to the sensor, when an MU passes the sensor, which in your plant might be a light barrier, or a
similar device. In the Method assigned to the control you can program the action you want Plant
Simulation to execute. You might, for example define the conditions that apply when the parts are
transferred onto the next material flow object, or you might change the target velocity, and the icon, of
a transporter, when its front reaches the sensor.
To create sensors in the dialog of the Track, the TwoLaneTrack, the Turntable, the Line or the
Transporter:
• Click the position at which you would like to insert the sensor with the right mouse button and
select Create Sensor on the context menu. Enter the data defining to the sensor into the dialog
that opens.
The Transporter show the button on the tab Load Bay, when you select Track or
Line. Click Apply to activate the button.
• Click and select the name of the control method in which you programmed the action you
would like the Transporter to execute. In our example, we want it to turn around, when its front
passes the sensor.
• To create a new sensor and open the dialog Sensor, click New.
• ID is the number that Plant Simulation automatically assigns to the sensor, when it creates it. You
can use this unique identifier to access that sensor from within Methods.
• Select the type of position, Relative or Length, from the drop-down list and enter the position of
the sensor.
o For Relative you can enter a value between 0 and 1, and Plant Simulation show 0..1 to
the right of the text box.
o For Length you can enter a value between 0 and the length of the object.
Plant Simulation uses the length unit you selected under File > Model Settings/Preferences
> Units > Length. When you enter an invalid value, Plant Simulation changes the color of
the text box to red.
• When you define a sensor for a Track, you can select when a Transporter passing over it triggers
the sensor: Always, independent of the destination of the Transporter. Or Only when the
Transporter has the same destination, which you entered into the sensor.
The Transporter’s automatic routing feature also includes this destination object. When you
assign a Destination to the Transporter while automatic routing is active, it drives to the sensor.
There it activates the sensor Control and a destination control which you defined for the
Transporter. The same destination object can be defined in several sensors. It may also be
directly reached via different Tracks. Even when a direct route leads to the destination object,
the Transporter drives to the nearest sensor, when this sensor can be reached on a shorter
route than the destination object itself.
• Enter the name of the object to which the Transporter drives into the text box Destination.
• Click and select the name of the Method , which the sensor calls, in the dialogSelect
Object. To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key. The source code of our Methodaccelerate looks reads like this:
@.Speed := 50
@.currIcon := “car_fast”
As soon as the sensor calls this Method, it passes the Sensor ID is parameter. When the Method
expects an integer parameter, the sensor passes the Sensor ID to the Method; if you do not enter
an integer parameter, the Method will be called without a parameter.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
o Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.MySensorControl.
o To delete this control, delete the user-defined attribute; deleting the name from the text box
just deletes the name, but keeps the user-defined attribute.
Enter the source code of this control into the Method that opens.
• Select Front, so that the front of the MU calls the Method. You can also select Front and Rear.
Then both the front and the rear of the MU activate the Method.
• Select Rear, so that the rear of the MU calls the Method. You can also select Front and Rear.
Then both the front and the rear of the MU activate the Method.
• When you click the Close button, Plant Simulation updates and shows the number of
sensors in the button in the dialog.
• To edit the sensor, which you selected in the list, click Edit. Or double-click the row that defines
the sensor in the list.
• To delete the sensor, which you selected in the list, click Delete.
• To open the sensor that Plant Simulation inserts as a red line into the icon of the object,
Alt+double-click the red line and change the settings in the dialog that opens.
Or click the sensor with the right mouse button and select Open Sensor on the context menu.
• To show a tooltip with information about the sensor, drag the mouse over the red line designating
it on the object.
You will make extensive use of sensors when Modeling Transport Systems. used them in our sample
applications for loading and unloading a cross sliding car and a tugger train.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Compare Transferring Parts from Station to Station
Compare Create Entrance and Exit Controls
Compare Customize the Behavior of Objects
Back to Modeling the Flow of Materials, Advanced
When you create your simulation model, it will often become necessary to trigger certain actions,
when the observable values of attributes or methods of objects change. To accomplish this, you can
create observers for most of the built-in objects.
This observer observes the value of an attribute or of a method and then executes one or several
methods then the value changes. This method can either be a Method object, which you insert into a
Frame, or a user-defined attribute of data type method.
This only works, if the attribute or the method of the object is observable.
As a rule observer methods are called after all other controls. If you want to react to state
changes before other controls, you have to use the stopuntil instruction or the waituntil
instruction instead of an observer.
You can use observers for a wide range of applications. In our example, we show how to move the
contents of Station1 to Station2, when the value of the Method of Station1 changes.
• To select the attribute or method whose value you want to watch, click next to Attribute in the
dialog Select Observed Value and Method to be Executed. Then, select the attribute in the
dialog Select Object. We selected occupied.
• To select the Method that will be executed, when the value of the attribute or method changes,
click next to Method. Then, select the Method in the dialog Select Object. We selected the
Method object occupiedObserver in which we programmed our transfer behavior.
• The dialog Observers then shows that our observer consists of the observed method numMU
and of the method occupiedObserver. The asterisk shows that we created the observer in
Station1, meaning that it is not inherited from its origin.
• The source code of our method occupiedObserver looks like this in SimTalk 2.0 notation:
param attribute: string, oldValue: any
if ?.occupied
?.cont.move(Station2)
end
• First, we declare the two parameters, which are passed to the Method:
o The name of the attribute or the method, whose observable value changed. This allows you
to use a single Method is the method to be called for several attributes.
o The previous value of the attribute or the method. This way you can still access the previous
value after the executed method changed it to the new value.
• Then, we tell Plant Simulation to check if Station1 is occupied, i.e., if it contains a part. If that
is the case, we want it to move the part to Station2. Within the called Method, we can use the
anonymous identifiers ? and @ to address the object, whose Method changed, Station1 in
our case.
• To delete the observer, you can either click Remove in the dialog or program a method.
For our example above we entered the following source code in SimTalk 2.0 notation:
Station1.removeObserver("Occupied","OccupiedObserver") -- "Occupied" is the
name of the observer, "OccupiedObserver" is the name of the method
For our example above we entered the following source code in SimTalk 1.0 notation:
is
do
Station1.removeObserver("Occupied","OccupiedObserver"); -- "Occupied" is the
name of the observer, "OccupiedObserver" is the name of the method
end;
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling the Flow of Materials, Advanced
To prevent a Transporter, which reduces its speed, from being rear-ended by the following
Transporter, the following transporter has to reduce its speed in time as well. You can accomplish
this in the Distance control of the Transporter.
In our example the braking distance is 5 meters. The distance control is called in a distance of 6
meters to ensure a safety distance of 1 meter for any stopped Transporter.
To create the sample model, you will:
• Configure the Source That Produces the Transporters
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling the Flow of Materials, Advanced
The Source produces the part, named MyTransporter1, which we created within the folder MUs in the
Class Library. It creates them according to the settings which we entered into the delivery table,
i.e., it produces the first transporter at the time 0 minutes and the second of the two transporters
at the time 2 minutes.
To make the first Transporter stop on the Track in which it drives, we added a sensor to the Track at
10 meters.
The source code which we entered into the control attached to the sensor stops the first Transporter
and shows a message with the time at which it stopped in the Console.
The source code in SimTalk 2.0 notation looks like this:
param sensorID: integer, Front: boolean
if @.ID = 1
@.Speed := 0
print EventController.simTime, " The first Transporter stopped."
end
To configure the Transporter with the settings you need, double-click its icon in the folder MUs in
the Class Library.
As compared to the default settings of the built-in Transporter we activated acceleration and entered
an acceleration and a deceleration of 10 m/s2 each in our Transporters called MyTransporter.
Next, click the tab Controls and select the name of the distance control and enter the distance
at which it will be called. We named our distance control myDistanceControl and we entered a
distance of 6 meters.
When you select a control in the Class of the object, make sure to activate Absolute path
in the dialog Select Object. Otherwise the Instances will not find the selected control.
The distance control stops the second Transporter as soon as its distance to the first Transporter,
which stopped, is 6 meters. It also shows a message with the time at which it stopped in the Console.
We entered the following source code in our distance control called myDistanceControl in SimTalk
2.0 notation:
-- ? is the transporter for which you entered the distance control and the distance
-- @ is the transporter for which the distance became too great or too small
param distanceIsBelowLimit: boolean
if distanceIsBelowLimit -- once the distance between the transporters
?.Speed := 0 -- is less than 6 meters, the following one stops
print EventController.simTime," The second Transporter decelerated."
else
?.Speed := 10
print EventController.simTime," The second Transporter accelerated."
-- when the distance reaches more than 6 meters, the second transporter
-- starts again
end
We entered the following source code in our distance control called myDistanceControl in SimTalk
1.0 notation:
-- ? is the transporter for which you entered the distance control and the distance
-- @ is the transporter for which the distance became too great or too small
(distanceIsBelowLimit : boolean)
is
do
if distanceIsBelowLimit then -- once the distance between the transporters
?.Speed := 0; -- is less than 6 meters, the following one stops
print EventController.simTime," The second Transporter decelerated.";
else
?.Speed := 10;
print EventController.simTime," The second Transporter accelerated.";
-- when the distance reaches more than 6 meters, the second transporter
-- starts again
end;
end;
To make the first Transporter continue its way on the Track after being stopped, we programmed an
init method and entered the following source code:
To set the speed with which the first Transporter continues driving on the Track, we programmed
the method reStart. It is called by the init method after 10 seconds and sets the speed of the first
Transporter to 10 m/s2.
Track.MU(1).Speed := 10
Once the distance between the Transporters is more than 6 meters again, the second Transporter
accelerates as well. This is because Plant Simulation calls the distance control when the distance
becomes too small and when it becomes too great.
Back to Configure the Source That Produces the Transporters
Back to Configure the Track on Which the Transporters Drive
Back to Create and Work with a Distance Control
You can customize the behavior of most of the Plant Simulation objects to meet your modeling needs.
• You can program and assign control methods to an object. The object then reacts to certain user
actions, such as inserting and deleting objects, etc.
• You can define user-defined attributes for an object, which it does not provide by default.
Go to Define Controls
Go to Create a User-defined Attribute Manually
Go to Create a User-defined Attribute During the Simulation
Compare Create Entrance and Exit Controls
Back to Modeling the Flow of Materials, Advanced
Define Controls
Define Controls
To assign a control method that makes the object take an action you want it to execute you can:
• Program the actions you want one or several objects to take in a Method object and insert it into
a Frame in your simulation model or in a folder in the Class Library. This way you program
actions that several objects can use.
• Create a control that only applies to the selected object. Then you will program the actions in a
user-defined attribute of data type method of this object. The control thus becomes part of the
object and carries it with it, when you insert the object into other Frames.
When you want a number of objects that are located in the same Frame to call the same method, you
typically use a Method object, which you insert into that Frame.
To assign a control, which you programmed in a Method object:
• Program the control in a Method object.
• Click the object to which you want to assign the control in the Frame.
• In the dialog Controls select the Method to be activated, when the user or when Plant Simulation
performs a certain action:
o Click next to the name of the control. In the dialog Select Object navigate to the folder or
Frame, in which the Method object is located, select it and click OK.
When you want all instances of a class to provide the same control, you typically create that control
as a user-defined attribute in the class.
To create a control as a user-defined attribute of data type method of the object:
• Enter a meaningful name into the text box, right-click in the text box and select Create
Control. Plant Simulation then inserts self.Name_you_entered_for_the_control, such as
self.mySelectControl.
• Right-click in the text box and select Create Control on the context menu. Plant Simulation then
inserts self.OnBuilt_in_name_of_the_control, such as self.OnSelect.
Enter the source code of this control into the Method that opens.
This control is a user-defined attribute of data type method. To open and modify it, do one
of the following:
o Select the tab User-defined Attributes and double-click the name of the Method in the
list pane.
In addition to the built-in attributes, which are part of the Plant Simulation objects, you can add
user-defined attributes to meet your modeling needs to most objects. Naturally, these attributes do
not affect the built-in properties of the object.
A user-defined attribute provides most of the functions that a global variable in any of the programming
languages makes available. As a rule you will use a user-defined attribute for internal purposes, for
example to attach the type of article, the order number, etc. to an MU.
You might, for example:
• Create the user-defined attribute with the name Quality for a part.
• Change its value with a Method to reflect a changed state, good or bad for example.
• Depending to its quality move the part either on to the next station or to a reworking station
where it will be fixed to meet the quality criteria.
• Enter a meaningful name for your user-defined attribute into the text box. The name has to be
unique, i.e., no other built-in or user-defined attribute or method may have the same name!
• Enter a value into the text box that is compatible with this data type you selected.
• Click OK to add the user-defined attribute you just created. Plant Simulation sorts the attribute at
the correct location in the alphabet into the list.
Note that method execution of user-defined attribute methods, which are deleted, while they are being
executed is terminated immediately, it will not be continued. Compare the following examples:
• Suppose that an MU has a user-defined attribute method, which was suspended via a waituntil
instruction. Then, the MU is deleted in the Drain, which naturally also deletes its user-defined
attributes. Thereupon the Method is deleted from the list of suspended methods and method
execution is terminated, i.e., the instructions after the waituntil instruction will not be executed. If
the attribute method has called from another Method, execution of this Method will be continued.
When the attribute method had a return value, the value, which the implicitly existing local
variable result had at this point in time, will be returned to the calling Method.
• Suppose that an MU has a user-defined attribute method, which is called by the entrance
control of a SingleProc. The attribute method in turn calls a Method that is inserted in the Frame.
This Method deletes the MU with the statement SingleProc.cont.delete. Both the execution of
the attribute method and of the Method called by it are terminated immediately. The return
value of the attribute method (or VOID if no return value was declared) will be returned to the
entrance control, whose execution is continued.
Instead of manually creating a user-defined attribute by entering the required information on the
Tab User-defined, you can also dynamically create and delete user-defined attributes during the
simulation by programming methods.
In our example below we demonstrate how to create and delete a user-defined attribute for our part,
i.e., a moving object. Depending on a distribution parts with the user-defined attribute (property) Bad
are removed from the material flow after the station paint shop, are moved to the rework station to be
repainted, and are then fed back into the production line.
To create the model, proceed as follows:
• Insert the Source which creates the parts. In our example it produces a part of type MyPart
every two minutes.
• To visualize the good and the bad parts during the simulation run, create an icon each for the
good parts and for the bad parts in the Icon Editor. We named our parts Good and Bad and colored
them differently.
• To dynamically create the user-defined attribute of the part when it reaches Station1, you have to
program a method. We named our method createMyAttr. It creates the user-defined attribute
Paint.
@.createAttr("Paint","boolean")
To make sure that the method works as intended, start the simulation, and double-click the icon
of the first part. Click the tab User-defined and check if it shows the attribute Paint.
• Then the station PaintShop has to check the paint job of the painted part and decide if it is good
or bad. To accomplish this, you have to program a method.
We named our method checkPaintJob and entered the following source code:
The source code in SimTalk 2.0 notation looks like this:
var val := z_uniform(1,0,1)
if val 0.1 -- checks the value
@.Paint := false -- bad paint job
@.CurrIcon := "Bad" -- switch icon
else
@.Paint := true -- good paint job
@.CurrIcon := "Good" -- don't change icon
end
print "Value: ",val,": ",@.CurrIcon -- prints the value and Good or Bad to
• Next, the station BranchOff has to check the user-defined attribute Paint. To accomplish this,
you have to program a method. We named our method checkMyAttr and entered the following
source code:
The source code in SimTalk 2.0 notation looks like this:
if @.Paint -- checks the user-defined attribute
@.move(1) -- moves the part along on Connector1
else
@.move(2) -- moves the part along on Connector2
end
If the value of the attribute Paint is true, the part is moved along the Connector with the number
1. If the value is false, it is moved along the Connector with the number 2.
If the quality is good, the part is moved on to Station2, if it is bad, it is moved to the Rework
station, where it is fixed and it is then fed back into the line.
Then, enter this method as the exit control into the station BranchOff.
• Finally, program the method that deletes the user-defined attribute Paint, as it is not needed any
more. We named our method deleteMyAttr and entered the following source code:
@.deleteAttr("Paint")
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Compare Tab User-defined
Back to Create a User-defined Attribute Manually
Back to Customize the Behavior of Objects
Plant Simulation provides the Fluid Objects for simulating free-flowing materials. These materials
can be in liquid, gaseous, or pourable form. The fluid objects are suited for the food and beverages
processing, and for the pharmaceutical industries.
You can also check out the extended model containing additional stations and controls in the sample
models: Click the Window ribbon tab, click Start Page > Getting Started > Example Models, and
click Small Examples. Then, select the respective Category, the Topic, and the Example in the
dialog Examples Collection and click Open Model.
Back to Modeling in Tecnomatix Plant Simulation 2D
In our example we will model a simple production line for making chocolate bars. The FluidSources
provide the ingredients milk, sugar, and cocoa. These then flow through Pipes to their individual
Tanks , where they are temporarily stored before flowing into the first Mixer . It mixes them
together to our first intermediate product, the base chocolate. The base chocolate is then pumped
to the next Mixer, which stirs the mixture to the desired consistence. The resulting chocolate mass
flows on to the final Mixer , which blends in the refining material chili that is fed in from its own
FluidSource . The resulting chili chocolate flows to the Portioner , which pours the individual
chocolate bars. These are then moved on a Line to the Drain, which removes the chocolate bars
from the plant.
In our example we will demonstrate how to:
• Configure the Recipe in the MaterialsTable
Before we start building our simulation model, we define the ingredients and the products in the
object MaterialsTable . These are then going to be used by the FluidSource and by the Mixer .
You can enter the materials and the information pertaining to them in the order in which they occur to
you. You are not bound to the order in which the materials are used within the production process. As
long as the materials are contained on the table, the object, which need them, will find them.
In most cases you can do that in the MaterialsTable in the class library, meaning that you do not have
to insert an instance of it into the Frame that contains your simulation model.
If your simulation model contains a number of Frames which require a vast number of different
materials, we recommend to insert different MaterialsTables into the Frames. A single MaterialsTable
might become too large and unwieldy.
We entered the base products, their density, their color, and the amount which we want to produce.
We also entered the intermediate products and the final product, their density, their color, the
amount which we want to produce, and theingredients these products require.
When you change the name of materials or of ingredients at a later point in time in the
MaterialsTable, you also have to manually change this name in the text box Material of
the FluidSource and/or the text box Product of the Mixer. Plant Simulation does not
automatically do that for you.
After filling out the MaterialsTable, we will configure the objects of type FluidSource , which
introduce the base materials into the plant.
We inserted a FluidSource each for the base materials milk, sugar, and cocoa. We then typed the
name of material into the text box Material, namely Milk, Sugar, and Cocoa. We did not change
any other settings.
• The volume for each of the materials into the text box Volume of the respective object.
Next, we inserted Pipes between the FluidSources and the respective Tanks. We then connected the
three Pipes with the FluidSources and the Tanks with Connectors.
You have to connect the individual fluid objects with Connectors. You cannot connect
them with Pipes only.
Then we inserted three objects of type Mixer , which transmute the base materials and the
intermediate product to create the end product, namely the chili chocolate bars.
We entered:
• The outflow rate of each of the products into the text box Outflow rate of the respective object.
• The volume of each of the products into the text box Volume of the respective object.
• The name of each of the products into the text box Product of the respective object.
As we want to produce chili chocolate bars, we have to add the chili powder to our chocolate mixture
in the last mixer in the production line.
To do so, we insert a FluidSource and name it SourceChili. We then typed the name of material into
the text box Material, namely ChiliPowder. We did not change any other settings.
We then connected the SourceChili with a Pipe and a Connector with the MixerFinal.
Back to Configure the Recipe in the MaterialsTable
Back to Configure the Sources Providing the Materials
Back to Configure the Tanks Storing the Materials
Back to Configure the Mixers Transmuting the Materials
Go to Configure the Portioner Pouring the Chocolate Bars
Go to Configure the Line and Run the Simulation
Back to Simulating Free-Flowing Materials and Fluids
The last fluid object we use in our model is the Portioner . It creates the individual chocolate bars.
• We selected the MU that the Portioner is to create from the products.
• We entered the Amount per MU of the product. In our example 0.1 liters of the chili chocolate is
used to make a single chocolate bar.
To represent our chocolate bar in our model, we created a new MU class in the Class Library and
named it ChiliChocolate. We used these settings:
Finally, we inserted a Line, which transports the chocolate bars from the Portioner to the Drain.
The Drain then removes them from the plant.
To be able to see the individual chocolate bars on the line, we set the Speed of the Line to 40 meters
per second.
Then we inserted a Drain, which we used with its default settings and ran the simulation.
You’ll notice that the Tanks, the Mixers, and the Pipes show the color of the material which we set
in the MaterialsTable above. The chili chocolate bar, i.e., the MU, shows the color which we set
for it on the tab Graphics.
To view the model in the 3D Viewer, we clicked on in the Home ribbon tab.
As you notice, the 3D Viewer displays the default graphic of the entity with the default size for our
chocolate bar. This is not the way we want it. To display the chocolate bar with the size and color
matching the size and color in 2D, we right-clicked the class of our MU named ChiliChocolate in
the Class Library and selected Edit 3D Properties. We then clicked the tab Auto Graphics and
activated Auto graphics active . The chocolate bar then looks like this:
In this example we demonstrate how to mix two different raw materials in the Mixer into two
products. The Mixer then passes these products on to the Portioner , which then portions them
into MUs, and moves them on a Line to the DePortioner . The DePortioner then splits the products
and lets them flow off into the respective Tanks.
Keep in mind that you cannot connect the Pipes directly with the fluid objects, but that you have to
use Connectors.
The finished simulation model looks like this:
Before we start creating our simulation model, we will create two parts for transporting our bulk
goods or our fluid.
Proceed as follows:
• Click the MU with the right mouse button and select Duplicate.
• Repeat this.
• Rename the duplicated MUs. We named our MUs ForX and ForY and entered these settings
for the MU size:
• Change to the tab Graphics and select different colors for the MUs to be able to distinguish
them. We selected the colors below.
• Change to the tab User-defined and create the two user-defined attributes named MaterialName
and AmountName for both MUs. We entered the settings below.
• To make the 3D Viewer show the MUs with the same size and with the same color as in 2D, we
open their class in the Class Library and the tab Appearance in the dialog Edit 3D Properties.
Select Auto graphics active and Material active. Select the color as the Diffuse color, which
we assigned the MUs in 2D.
The Portioner fills the materials, which the Mixer mixed, into these MUs.
Go to Configure the Recipe of the Material in the MaterialsTable
Go to Configure the FluidSources That Produce the Materials
Go to Configure the Tanks Which Buffer the Materials
Go to Configure the Mixer Which Mixes the Materials
Go to Configure the Portioner Which Portions the Material
Go to Configure the DePortioner
Go to Configure the Tanks at the End of the Plant
Back to Portioning and Deportioning Materials
When you change the name of materials or of ingredients at a later point in time in the
MaterialsTable, you also have to manually change this name in the text box Material of
the FluidSource and of the DePortioner, and/or the text box Product of the Mixer. Plant
Simulation does not automatically do that for you.
After we filled out the MaterialsTable, we configured the objects of type FluidSource, which introduce
the raw materials into the facility.
We inserted a FluidSource each for Raw material 1 and Raw material 2. We then entered the
name of the material into the text box Material, i.e., Raw material 1 and Raw material 2. For the
FluidSource we use an outflow rate of 2 liters per second, for the FluidSource1 we use an outflow
rate of 1.5 liters per second.
Next we inserted an object of type Tank each for Raw material 1 and Raw material 2. The Tanks
store the raw materials temporarily before the Mixer mixes them.
We entered the following settings:
• An outflow rate of 1 liter per second into the text box Outflow rate of the respective object
for each of the materials.
• A volume of 5 liters for each of the materials into the text box Volume of the respective object
for each of the materials.
• Two sensors and their controls with the settings shown below.
You have to connect the individual fluid objects with Connectors. You cannot connect
them with Pipes only.
In the next step we inserted a Mixer, which transforms the raw materials and the products.
We entered the following settings:
• An Outflow rate of 1 liter per second.
• A Volume of 5 liters.
We also created an observer and the corresponding control so that the Mixer changes the recipe
of the material.
We finally connected the Mixer and the Portioner with a Pipe with the default settings and with
Connectors.
Back to Create the Required MUs
Back to Configure the Recipe of the Material in the MaterialsTable
Back to Configure the FluidSources That Produce the Materials
Back to Configure the Tanks Which Buffer the Materials
Go to Configure the Portioner Which Portions the Material
Go to Configure the DePortioner
Go to Configure the Tanks at the End of the Plant
• We entered the Amount per MU of the product. In our example we fill 2 liters into an MU
respectively.
We also created the exit control partsDone with the settings below.
• We selected Fluid depends on > MU Name so that the DePortioner creates the material and the
amount of the fluid depending on the MU names, which are defined in the Mapping table.
• We selected the TableFile MyTable as our mapping table. We entered the MU name, the
Materials, and the amount of the product, which we want to portion.
• We selected the settings below for setting the object up to be able to distribute the two products
to the two succeeding Tanks.
• The entrance control partArrives and the exit control partEmptied open or close the Pipes to
the individual Tanks into which the products flow.
To close the Pipes after the amount of the products defined in the Tanks has flown into the Tanks,
we created the user-defined attribute reset and we typed in this source code:
PipeX.PipeOpened := false
PipeY.PipeOpened := false
Insert the Pipes which connect the DePortioner with the succeeding Tanks. Connect the objects
with Connectors.
The controls described above open and close the respective Pipes.
Back to Create the Required MUs
Back to Configure the Recipe of the Material in the MaterialsTable
Back to Configure the FluidSources That Produce the Materials
Back to Configure the Tanks Which Buffer the Materials
Back to Configure the Mixer Which Mixes the Materials
Back to Configure the Portioner Which Portions the Material
Go to Configure the Tanks at the End of the Plant
Note that the sensor of TankX is triggered when the fill level is both exceeded and underrun. The
sensor of TankY is triggered only when the fill level is underrun. Both Tanks call their sensor control,
which in turn call the method xyFull, when a Tank has reached its defined volume of 2000 liters. We
entered this source code into the sensor control.
-- sensor control of TankX and TankY
param SensorID: integer, Exceeded: boolean
EventController.stop(true)
Instead of a sensor control we could also use an observer for the method full of the Tanks. To do
so, select Tools > Select Observer in the dialog of TankY and TankX.
Then, program the action that is to be executed in the method observerForFull.
We finally created a user-defined attribute with the name reset and typed in this source code:
self.~.EntranceLocked := false
When we run the die simulation, we can watch the Mixer mixing two products from the two raw
materials, which the Portioner then splits up in portions. The Line moves these filled portions to the
DePortioner, which dissolves the portions and then lets them flow off to the designated Tanks. As
soon as one of the Tanks has reached its defined volume of 2000 liters, the simulation stops.
Note that we use most of the material flow objects with their default settings. We just entered
energy-related settings and defined failures for some of the objects.
The finished simulation model looks like this:
Insert the following stations to simulate our parts moving through the factory.
• The Source needs the parts into the plant. We did not change any of its default settings.
• The first machine, SingleProc, processes the parts for 1 minute each. We entered the kilowatts
it uses up in the states it can be in. We also entered the times that the machine requires for
switching from one energy state to another.
• The second machine, SingleProc1, processes the parts for 2 minutes each. We entered the
kilowatts it uses up in the states it can be in. We also entered the times that the machine requires
for switching from one energy state to another.
To simulate a real situation, we also defined a failure profile with these settings:
• The conveyor, the object of type Line, transports the parts from the processing station
SingleProc1 to the ParallelProc. We entered the kilowatts it uses up in the states it can be
in. We also entered the times that the conveyor requires for switching from one energy state
to another. You will notice that the length-oriented object Line provides fewer energy settings
than the point-oriented objects SingleProc and ParallelProc.
To simulate a real situation, we also defined a failure profile with these settings:
• The third machine, the ParallelProc, processes the parts for 1 minute each. We entered the
kilowatts it uses up in the states it can be in. We also entered the times that the machine requires
for switching from one energy state to another.
• The Drain removes the parts from the factory. We did not change any of its built-in settings.
• The Charts display a resource statistics chart and an energy statistics chart for the selected
objects.
To model a realistic situation in the factory, we insert a ShiftCalendar that controls the hours
during which people and machines work in the factory. We did not change the shift times, we just
entered the material flow objects.
To do so, we held down the Shift key and dragged a marquee over the objects. We then dragged the
selected objects onto the ShiftCalendar and dropped them there.
You can view the energy consumption values, which the objects collected, in their dialogs:
• Double-click the icon of the respective object and click the Tab Statistics.
• Click Energy Statistics to view more detailed values about the different portions of energy
consumption.
You can view the energy consumption values, which the objects collected, in the Statistics Report.
To view the total energy consumption and the portions of the different energy states, select
Energy Statistics in the drop-down list. The values are described under Energy Statistics - Energy
Statistics.
The energy states of the material flow objects differ from the resource states with the same
name. The values for the resource states refer to the statistics collection period, while the
values for the energy states refer to the total energy consumption.
The material flow objects also show these values on the Tab Statistics and in the dialog that clicking
Energy Statistics opens.
Back to Configure the Processing Stations and the Conveyor
Back to Configure the ShiftCalendar
Back to Check the Power Consumption in the Dialogs of the Objects
Back to Simulating the Power Consumption in Your Facility
You can view the energy consumption values, which the objects collected, in a Chart.
• To view the energy consumption of the different energy states, select the objects which you
want to display in the Chart. Drag them onto the Chart. Select the statistics type > energy
statistics in the dialog that opens and click OK.
The energy states of the material flow objects differ from the resource states with the
same name. The values for the resource states refer to the statistics collection period,
while the values for the energy states refer to the total energy consumption.
When you simulate your plant, you also have to model Workers, who work at the machines (Tab
Importer), or who repair the machines (Sub-tab Failure). While the Worker works at the machine
or while he repairs the machine, he stays on a Workplace at the associated machine. While the
Worker is Waiting for a job, he stays in the WorkerPool , which might be the lounge or the staff
room of your plant. When the Worker has to perform one or several jobs at a machine, the foreman
(Broker ) tells him to do so. The Worker then walks on a FootPath from the WorkerPool to the
Workplace of the respective machine and does his job.
You can also use the Broker and the Exporter to model Workers and the tools they need to
do their jobs. As a rule, you will use the Worker, if the time it takes him to get to a machine is of
importance to you. In addition, the Worker will be animated on the FootPath and the Workplace while
he walks to the station and works there. You will use Importer, Broker and Exporter of producing a
part requires shared resources and if the LEDs on these objects suffice for your animation needs.
You can insert the required objects into your simulation model from the folder Resources in the Class
Library or from the toolbar Resources in the Toolbox.
• Define How Many Workers Are Created When the Model is Initialized
If your Worker does not walk, make sure that the importer on the tab Importer of the station is
activated, on whose Workplace the Worker is to work.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Also compare the videos Modeling with Workers and Worker Carrying Parts between
Workplaces which you can open under the Window ribbon tab > Start Page > Getting Started
> Videos.
Back to Modeling in Tecnomatix Plant Simulation 2D
To simulate a Worker, who works at a machine, you will typically proceed as follows:
• Configure the WorkerPool. This is the place where Plant Simulation creates the Workers and
where they stay, when they do not work and are Waiting for a job order.
o Insert the object WorkerPool into your model.
Deactivate inheritance of the Creation Table: Click the toggle button, so that it looks like this
. Open the table.
Add the path of the Worker class .Models.Worker.myWorker to the Creation Table.
o Insert the object Broker into your model. He manages all of the Workers in your model.
Click the Browse button and add the Broker to the WorkerPool in the dialog Select
Object.
• Insert a Workplace into our model and attach it to the machine at which the Worker performs his
job. Click the WorkPlace in the toolbar Resources and place it next to the machine.
o Drag the machine, in our example the SingleProc MyMachine, onto the dialog of the WorkPlace
and drop it. This adds the machine to the text box Station in the dialog of the WorkPlace.
o Deactivate inheritance: Click the toggle button, so that it looks like this . Open the table
Supported Services. Type in the service StandardService.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
• Then, we have to tell the machine that it asks for the Worker to do a job: Select the check box
Active in sub-tab Processing of the tab Importer in the dialog of the machine.
Click the Browse button and add the path of the Broker to the sub-tab Processing of the tab
Importer in the dialog Select Object.
• Next, we will insert the FootPath in which the Worker walks from the WorkerPool to the
WorkPlace. Finally, we have to connect the WorkerPool and the FootPath with a Connector.
• Open the EventController and reduce the simulation speed. Then, start the simulation. The
Worker walks on the FootPath from the WorkerPool to the WorkPlace, works on a single part,
and then returns to the WorkerPool. This is because he performs 1 StandardService.
You can also click the tab Statistics and view the most important data, which the object collected.
Compare the video Modeling with Workers under the Window ribbon tab > Start Page >
Getting Started > Demo Videos.
Go to Model a Worker Who Repairs a Machine
Go to Define How Many Workers Are Created When the Model is Initialized
Go to Model a Worker Who Carries Parts Between Workplaces
Go to Model Workers with Importer, Broker and Exporter
Back to Modeling Workers and the Jobs They Do
To simulate a Worker, who repairs a machine, we continue modeling with the simulation model we
created above.
• Insert a Footpath from the WorkerPool to the machine on which the repair worker gets to it.
Connect Footpath and WorkerPool.
• Insert a Workplace in which the Worker stays, when he repairs the machine.
Deactivate inheritance: Click the toggle button, so that it looks like this . Open the table
Supported Services. Type in the service repair.
The name of the service is not case-sensitive, just like the names of attributes and methods of
the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an case-insensitive
string are pointing to the same string in main memory. The visible and unexpected result is that the
first occurrence of the string defines how the string is written in terms of upper- and lower-casing.
• Add a second Worker to the Creation Table of the WorkerPool: Right-click on the table and
select Append Row on the context menu. Drag the Worker from the Class Library to the cell
Worker. Enter repair into the cell below Additional Services.
• Then, configure the machine, so that it creates failures and requests a Worker for fixing this failure.
o Select the check box Active on the tab Failures in the dialog of the machine. Type 9: into
the text box Interval; this is the mean time between failures. Type 1: into the text box
Duration; this is the mean time to repair.
• Select the check box Active on the sub-tab Failure of the Tab Importer.
Click the button and add the path of the Broker to the sub-tab Failure in the dialog Select
Object.
Deactivate inheritance: Click the toggle button, so that it looks like this , and open the table
Services for Repairing. Replace the StandardService with the service repair.
The name of the service is not case-sensitive, just like the names of attributes and methods of
the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an case-insensitive
string are pointing to the same string in main memory. The visible and unexpected result is that the
first occurrence of the string defines how the string is written in terms of upper- and lower-casing.
• Open the EventController and reduce the simulation speed. Then, start the simulation. You will
see how the Worker in the Workplace at the top of the machine works on the part and how the
Worker in the bottom Workplace repairs the machine, when it fails.
You can also click the tab Statistics and view the most important data, which the object collected.
Define How Many Workers Are Created When the Model is Initialized
At times you may want to change the Worker Creation Table of the WorkerPool for the next simulation
run. You can accomplish this with the Init control of the EventController. Plant Simulation calls the init
control once at the beginning of the simulation run during the init phase before the objects in the
simulation model are initialized and before any init methods are executed.
The finished simulation model looks like this:
• Insert a Method into which you enter the source code of the init control. We named our method
myInitControl.
• Double-click the EventController, select Tools > Edit Controls, click , and select the method
which you just inserted as the init control.
• Insert a TableFile into which you enter the information about the Workers to be created. We
named our TableFile MyWorkersTable. Format the table as shown in the screenshot below.
• Drag the Worker, which you want to create, from the Class Library to the first cell of the column
Worker, and drop it there. We want to create the Workers John and Nellie.
• Program how many Workers you want to create. Double-click the init control, myInitControl in
our case, and enter the source code. Our instruction [2,1] := 2 enters 2 into the first cell the
column Amount of the table MyWorkersTable. This creates two instances of our Worker John.
Our second instruction [2,2] := 1 enters 1 into the second cell of the column Amount. This
creates one instance of our Worker Nellie. Finally assign the table MyWorkersTable to the
Worker Creation Table of the WorkerPool with the method setCreationTable.
MyWorkersTable[2,1] := 2 -- enters the desired amount of the worker John
MyWorkersTable[2,2] := 1 -- enters the desired amount of the worker Nellie
WorkerPool.setCreationTable(MyWorkersTable)
• Click in the EventController to open the List of scheduled events. You’ll see the first
event to be processed is the init event.
When you click , Plant Simulation processes the event, enters the numbers of the Workers it
created into the column Amount of the Worker Creation Table and places the icons of the Workers
onto the WorkerPool.
The Worker can pick up and carry parts, which are ready to leave the station, to the destination
object, and place them there. To do so, select the strategy Carry part away from the drop-down list
on the tab Exit Strategy of the material flow object.
If you would like to define the Loading time and/or the Unloading time, you can enter them into
the Workplace that is attached to the station.
The Worker evaluates the part targets and walks to the closest one first. At the target station,
he deposits all parts destined for this station. If he carries additional parts, he evaluates the next
target and walks to the closest one.
At the end of his shift the Worker talks back to his WorkerPool and deposits the parts he could not
deliver in the Parts buffer, which you assigned to the WorkerPool. If you did not assign a Buffer to the
Workerpool, Plant Simulation shows a warning and stops the simulation. When a new shift starts,
Plant Simulation treats the parts in the Buffer according to the exit strategy you selected there. When
you select Carry part away, the Worker who carries parts requests the service, which you entered.
You can, for example:
• Model a Worker Who Walks on FootPaths
• Model and Record Times for Picking-up and for Depositing Parts
Compare the video Worker Carrying Parts between Workplaces under the Window ribbon
tab > Start Page > Getting Started > Videos.
Back to Model a Worker Who Works at a Machine
Back to Model a Worker Who Repairs a Machine
Back to Define How Many Workers Are Created When the Model is Initialized
Go to Model Workers with Importer, Broker and Exporter
Back to Modeling Workers and the Jobs They Do
You can also model a Worker, who carries several parts. To do so, you just have to change these
settings in the above sample model:
• Duplicate the Worker in the Class Library and rename it. We named our Worker MyWorker2Parts.
• Type the number of parts, which the Worker can carry into the text box Capacity. We typed in 2.
• To make the Worker wait for the second part, type the Maximum dwell time into the station,
which wants to transfer the part. The dwell time has to be longer than the processing time, so
we entered 2:00, i.e., two minutes.
• To show both parts in the simulation model, you have to add a second animation point to the
icon of the worker MyWorker2Parts:
• Click the worker MyWorker2Parts on the tab Class Library with the right mouse button. Select
Edit Icon.
• Click the button Add/Remove Animation Point . Move the animation points side by side so
that they match the screenshot below.
• Start the simulation and watch the Worker pick up the two parts at first Workplace, walk on the
footpath to the target Workplace, put them down there, walk back to the first Workplace, pick
up the next two parts, and so on.
The Worker show the percentages of the carrying operations and of the en-route-times of the
statistics collection time on the Tab Statistics next to Services > transporting and Services >
en-route to job.
To show additional information in the statistics report, select the Worker and press the F6 key.
To model a Worker, who carries several parts in 3D, add two animation paths to the Worker, on which
the MUs are animated, to the above sample model:
• Click MyWorker2Parts on the tab Class Library with the right mouse button and select Open
in 3D.
• Click into the background of the window with the right mouse button and select Edit 3D
Properties. Click the Tab MU Animation.
• Add two animation paths of type Lines and name them #0#0 and #1#0.
• Show the animation path named #0#0 and move it to the right by clicking Edit and by changing
the Position. Click OK in the dialog Edit Anchor Values. Click Apply in the dialog Path Anchor
Points to show the position of the path in the window of the Worker.
• The part on the right hand side is located at the correct height, but it is too big and too far to the
left. To fix this, we decrease the size of the part by selecting a uniform scaling factor of 0.6.
Click the Entity in the Class Library with the right mouse button and select Open in 3D.
Now the size and height of the part are correct, but it is located too far forward. To fix this, we
have to move the x-position towards the body of the Worker. We used the settings below.
Repeat this for the animation path named #1#0. We selected the settings below:
• The complete model with the Worker carrying two parts in 2D and in 3D looks like this:
To simulate a Worker who carries parts from Workplace to Workplace on FootPaths, you will
typically proceed as follows:
• Attach a Workplace to the work station at which the Worker picks up the part.
• Attach a Workplace to the target station at which he puts down the part. To automatically enter
the Station, drag the Workplace close to one of the sides of the material flow object, which you
want to use as the Station.
• Connect the Workplaces with a Footpath. The Worker walks on this footpath from one Workplace
to the next.
• Connect the WorkerPool and the Workplace, at the work station at which the Worker picks up
the part, with a Footpath.
• Select the exit strategy Carry part away on the tab Exit Strategy in the dialog of the station,
which is ready to send the part on. The part then requests a Worker. Finally the parts wait at the
station until the Worker arrives and picks them up.
Enter the names of the Services which the Broker manages and which the transport-importer
provides into the services table. We accepted the default setting, namely the StandardService.
The name of the service is not case-sensitive, just like the names of attributes and methods of
the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an case-insensitive
string are pointing to the same string in main memory. The visible and unexpected result is that the
first occurrence of the string defines how the string is written in terms of upper- and lower-casing.
Select the MU target, i.e., the target station, at which the Worker deposits the parts. We selected
Workplace2.
To prevent the Worker from waiting too long for additional parts to arrive, you have to enter the
Maximum dwell time. After it has passed, he walks to the target station, the MU target.
• Select the Worker, who carries the parts from station to station in the WorkerPool. We selected
the Worker named myWorker.
• Select the Broker, who manages the Workers, in the WorkerPool. We selected MyBroker.
• Start the simulation run and watch the Worker pick up the part at the first Workplace, walk on
the footpath to the target Workplace, put it down there, walk back to the first Workplace, pick
up the next part, and so on.
Compare the video Worker Carrying Parts between Workplaces under the Window ribbon
tab > Start Page > Getting Started > Videos.
Go to Model a Worker Who Carries Two Parts in 2D
Go to Model a Worker Who Carries Two Parts in 3D
Go to Model a Worker Who Carries Parts between Workplaces in 3D
Go to Model a Worker Who Walks Freely Within the Model
Go to Model and Record Times for Picking-up and for Depositing Parts
Back to Model a Worker Who Carries Parts Between Workplaces
To model a Worker in 3D who carries parts between Workplaces we are going to create a new
Worker class:
• Duplicate the class Worker in the folder Resources the Class Library.
• Open the folder Resources in the Class Library, which contains the object Jack, in 3D.
• Click the object Jack with the right mouse button and select Exchange Graphics.
• The 3D Viewer opens the dialog Exchange Graphics. By default it opens the folder in which you
installed Plant Simulation, namely C:\Program Files\Siemens\Tecnomatix Plant Simulation
XX. Change to the sub-folder 3D, select the folder and file as shown in the screenshot below,
and click Open.
The files whose name contains Jack are the male workers, the files whose name contains Jill
are the female workers. The suffix 6 designates a Worker that is animated with 6 graphics per
double-step. The suffix 15 designates a Worker that is animated with 15 graphics per double-step.
More graphics naturally lead to a greater file size and a smoother, more realistic animation.
To replace existing graphics of the built-in objects in a model, which you created in a
previous version of the program, with the new graphics, select the respective graphic
and select Exchange Graphics. Navigate to the folder 3D > BasicObjects and select
the new graphic of the object.
• Open the object WorkerPool and click Creation Table. Drag our worker Jack from the folder
Resources in the Class Library to the first cell of the worker creation table. Click OK. The
WorkerPool now assigns Jack to do the jobs in the factory.
• You can view Jack’s predefined postures for walking and carrying motions on the Tab Graphic
Sequences.
When you run the simulation, you’ll notice that the part, which Jack carries, is too big for a visually
pleasing model. To fix this, we are going to change the size of the part:
• Open the class of the part, MyPart in our example, in 3D.
• Enter 0.8 into the textbox below Scale to uniformly scale the part down in all directions.
• Run the simulation again. Remember to activate Real time x and enter a low number, for
example 5, to achieve a smooth animation in the 3D Viewer.
The size of the part seems OK now, but the part is located at the wrong position. To fix this:
o Click in the background of the Frame .Resources.Jack and select Edit 3D Properties.
o Change to the Tab MU Animation and click in the right-most cell to Show the path named
Default. This shows the red marker of the path. Click the marker, hold down Ctrl and move
it up a bit with the Up arrow key. Instead, you can also click Edit and manipulate the Z
position precisely in the dialog that opens.
o Run the simulation again. Now the part is located at the correct height.
In this example we demonstrate how to model with the Worker, who moves freely within the plant.
This way he is not forced to walk on FootPaths, which you inserted between the WorkerPool and
the Workplaces. For this reason he has to walk around obstacles, which he cannot enter or cross.
The obstacles can be machines, safety fences around robots, path of automated guided vehicles, or
structural conditions in the factory, such as columns, stairways, etc.
As you can only set some of the functions of the Worker, who moves freely within the plant, in
the 3D Viewer, select 2D and 3D when you create a new model.
Click Open Frame in 2D/3D on the Start ribbon tab or Activate 3D on the Window
ribbon tab in an existing 2D model without a 3D part.
To show the difference between a Worker walking on FootPaths and a Worker, who moves freely
within the plant, we use an existing model with FootPaths. In the screenshot below the Worker walks
from the WorkerPool via the inserted FootPaths to the Workplaces, which are assigned to the stations.
To make the Worker move freely within the model, proceed as follows:
• Double-click the WorkerPool in the 3D model and select Travel mode > Move freely within the
area in the dropdown list.
• Insert an obstacle around which the Worker has to walk when he walks to the Workplaces at
which he performs his job:
o Change to the ribbon tab Edit.
o Select the graphic group, the Form, the Dimensions and the Material of the barred area.
We selected the following settings:
o The inserted barred area, our obstacle for the worker, looks like this:
By default the barred area is an obstacle for the worker. Press the o key on the keyboard
to show all obstacles for the worker in the model. The Worker has to walk around these
obstacles, he cannot cross them.
For most of the 3D objects you can select if they are an Obstacle for the Worker on the Tab
Graphics or on the Tab Graphic Settings in the dialog Edit 3D Settings. For the built-in
material flow objects the bounding box of the graphic is an obstacle for the worker.
• Change to the Start ribbon tab, run the simulation and watch how the Worker walks from the
WorkerPool to the Workplaces and how he ignores the FootPaths and walks around our barred
area. In the figure below we marked his route in black for clarification purposes.
If the Worker is to overcome obstacles in your model, you can model this with FootPaths. In the
example below we want the Worker to walk through the doors from the break room onto the actual
shop floor. For displaying the shop floor in our model we uses the layout file of the actual factory.
The layout file is a graphics file which we added to the scene in 3D as the background. Although
the graphics file contains all of the doors, the 3D Viewer treats the factory as a single unit, whose
graphics is an obstacle for the worker, which the Worker cannot enter and cross.
When we display the barred areas, by pressing the o key, we can see this clearly by the continuous
red border.
To allow the Worker to walk through the doors anyway, we laid FootPaths through the doorways.
Note that the FootPaths always have to be a little longer than the depth of the obstacle.
For the FootPaths not the length, which you enter on the tab Attributes is decisive, but the length of
the FootPath in the 3D scene. The distance covered of the Worker is determined by the starting point
and the end point of the FootPath as well by the anchor points.
When the FootPath includes an incline, the Worker moves slower on the incline than on a flat surface.
Plant Simulation achieves this by prolongating the imagined distance for the incline segments. When
calculating the length of an inclined segment, Plant Simulation triples the height difference.
Compare this example: A segment of a FootPath has a dimension of 1 m in the x-direction and 1
m in the z-direction, thus actually is 1.414 m long. The imagined dimension however is 1 m in the
x-direction and 3 m in z-direction, so that Plant Simulation calculates an effective length of 3.162 m.
The Worker always walks on the route, which has the shortest effective length and which the Worker
can thus can cover in the shortest time. This can cause the Worker to take an actually longer but
flatter way to the destination instead of a shorter way which contains inclines.
For calculating the effective route length Plant Simulation triples the height difference. The resulting
speeds of the Worker are realistic in general. The speed of the Worker decreases to a third, when the
Worker moves vertically up or down, for example when climbing a ladder. The speed decreases to
about half, when the Worker negotiates an incline of 38 degrees, for example a when walking on
a stairway.
When we run the simulation, we can watch how the Workers walk through the doors of the break
rooms into the anteroom and on onto the shop floor.
Model and Record Times for Picking-up and for Depositing Parts
Model and Record Times for Picking-up and for Depositing Parts
You can use the entrance control and the exit control of the Workplace to record the time values
which the Worker spends for picking-up and for depositing the parts.
You can then show these values in a number of ways. In a:
• Display Panel
• TableFile
• Worker Chart
• Gantt Chart
To model the carrying operation, insert a WorkerPool, a Broker, two Footpaths, two Workplaces, and
four Methods as entrance controls and exit controls each for the two Workplaces.
Then insert the stations, which produce, process and transport the parts, so that they match the
screenshot below:
• Configure the object Workplace1. This is the actual place attached to the station, where the
Worker performs his job.
• Click and select the station, i.e. the material flow object, to which you want to attach the
Workplace. We selected the SingleProc Processing1 in our example.
• Enter the loading time on the tab Times. We decided to use a uniformly distributed time
with the values 0:20, 0:30.
• Click and select the station, i.e. the material flow object, to which you want to attach the
Workplace. We selected the SingleProc Processing2 in our example.
• Enter the unloading time on the tab Times. We decided to use a normally distributed time
with the values 2, 0:24, 0:10, 0:10, 0:50.
• Configure the first station in the sequence of the material flow objects, namely the SingleProc.
o Enter the processing time on the tab Times. We entered a minute and twenty seconds,
i.e., 1:20.
o Enter the settings for failures on the tab Failures. We decided to use an availability of 90
percent and an MTTR of five minutes, i.e., we entered 5:00.
• Configure the processing station, which we named Processing1 in our model, to which the
object Workplace1 is attached. The Worker picks the parts up at this station and carries it to the
processing station named Processing2 in our model.
o Enter the processing time on the tab Times. We entered a normally distributed time with
the values 0:32, 0:07, 0:18, 1:00.
o Enter the settings for failures on the tab Failures. We decided to use an availability of 90
percent and an MTTR of five minutes, i.e., we entered 5:00-.
o Select and enter the settings for the exit strategy on the tab Exit Strategy. As we want the
Worker to carry the part from the current station Processing1 to the station Processing2, we
selected the Strategy > Carry part away. We then selected the target station for the part,
the MU target, namely the station Processing2.
• Configure the second processing station, which we named Processing2 in our model, to which
the object Workplace2 is attached. The Worker deposits the parts, which he/she picked up
at the station Processing1 and carried here.
o Enter the processing time on the tab Times. We entered a constant time of 45 seconds,
i.e., 0:45.
o Enter the settings for failures on the tab Failures. We decided to use an availability of 90
percent and an MTTR of five minutes, i.e., we entered 5:00.
We used all other material flow objects with their default settings.
Back to Model and Record Times for Picking-up and for Depositing Parts
As we want to record the times at which the Workers John and Nellie pick up the parts at the station
Processing1 and at which they deposit them at the station Processing2, we have to program this.
We then use these control methods as entrance and exit controls in the workplaces Workplace1
and Workplace2. The methods then record the results, pass them on to a method, which we
called writeWorkersTimes in our model, which in turn writes them into a TableFile, which we
called WorkersTimes. We also programmed a reset method to delete the contents of the table
WorkersTimes then we reset the model.
• To create the control in which you program what is going to happen when the Workers arrive at
Workplace1, insert a Method object into the model. We named our method workerArrives1 to
clearly show that it belongs to Workplace1.
Then, enter the following source code in SimTalk 2.0 notation:
-- start time of the loading operation
-- 'OperationStart' is a user-defined attribute of the Workers named John and Nell
@.OperationStart := EventController.absSimTime
-- increment the parts entering the 'Workplace' to be shown in the display panel
Workplace1.PartsIn := Workplace1.PartsIn + 1
is
do
-- start time of the loading operation
-- 'OperationStart' is a user-defined attribute of the Workers named John and N
@.OperationStart := EventController.absSimTime;
-- increment the parts entering the 'Workplace' to be shown in the display pan
Workplace1.PartsIn := Workplace1.PartsIn + 1;
end;
• To create the control in which you program what is going to happen when the Workers leave
Workplace1, insert a Method object into the model. We named our method workerLeaves1, to
clearly show that it belongs to Workplace1.
Then, enter the following source code in SimTalk 2.0 notation:
-- start time of the loading operation
-- 'OperationStart' is a user-defined attribute of the Workers named John and Nell
@.OperationStart := EventController.absSimTime
-- increment the parts entering the 'Workplace' to be shown in the display panel
Workplace1.PartsIn := Workplace1.PartsIn + 1
is
do
-- start time of the loading operation
-- 'OperationStart' is a user-defined attribute of the Workers named John and N
@.OperationStart := EventController.absSimTime;
-- increment the parts entering the 'Workplace' to be shown in the display pan
Workplace1.PartsIn := Workplace1.PartsIn + 1;
end;
• Click and select the entrance control and the exit control of the object Workplace1. We
selected the method workerArrives1, which we programmed above, as the entrance control and
the method workerLeaves1 is the exit control in our example.
• To create the control in which you program what is going to happen when the Workers arrive at
Workplace2, insert a Method object into the model. We named our method workerArrives2, to
clearly show that it belongs to Workplace2.
Then, enter the following source code in SimTalk 2.0 notation:
-- entry for the loading operation into the table 'WorkersTimes'
if @ /= void
writeWorkersTimes( -- name of the method
@.Name, -- resource
@.cont.Name + ":"+ to_str(@.cont.getNo), -- order
@.OperationStart, -- start date
EventController.absSimTime, -- end date
"Pick part up", -- operation
@.cont.getNo, -- part number
1, -- layer number
1.0) -- lot size
is
do
-- entry for the loading operation into the table 'WorkersTimes'
if @ /= void then
writeWorkersTimes( -- name of the method
@.Name, -- resource
@.cont.Name + ":"+ to_str(@.cont.getNo), -- order
@.OperationStart, -- start date
EventController.absSimTime, -- end date
"Pick part up", -- operation
@.cont.getNo, -- part number
1, -- layer number
1.0); -- lot size
• To create the control in which you program what is going to happen when the Workers leave
Workplace2, insert a Method object into the model. We named our method workerLeaves2, to
clearly show that it belongs to Workplace2.
Then, enter the following source code in SimTalk 2.0 notation:
-- entry for the carrying operation into the table 'WorkersTimes'
writeWorkersTimes(
@.Name, -- resource
@.cont.Name + ":"+ to_str(@.cont.getNo), -- order
@.OperationStart, -- start date
EventController.absSimTime, -- end date
"Pick part up", -- operation
@.cont.getNo, -- part number
2, -- layer number
1.0) -- lot size
• Click and select the entrance control and the exit control of the object Workplace2. We
selected the methodworkerArrives2, which we programmed above, as the entrance control and
the method workerLeaves2 is the exit control in our example.
• To create the control in which you program how the recorded values are written to the TableFile
with the name WorkersTimes, insert a Method object into the model. We named our method
writeWorkersTimes.
The source code in SimTalk 2.0 notation looks like this:
param Resource,Order: string, Startdate,Enddate: datetime, Operation: string, Part
var row := WorkersTimes.ydim + 1
end;
• Insert the TableFile, which is going to store the recorded data, format the columns with the
data types shown below, and enter the respective column headers. We named our TableFile
WorkersTimes.
• To delete the contents of the table WorkersTimes then you reset the model, program a reset
method and enter the following source code:
WorkersTimes.delete
Back to Model the Stations Which Process and Transport the Parts
Go to Display the Times for Picking-up and for Depositing Parts
Back to Model and Record Times for Picking-up and for Depositing Parts
You can show the recorded values for the times for picking-up and depositing the parts in a number of
ways.
• To show the values in a Display Panel, proceed as follows:
o Click the object Workplace1 with the right mouse button and select Edit Display Panel.
o Click New and create the static text box with the label PartsIn and the settings below.
o Click New and create a new display panel element of type text. Click and select the
user-defined attribute of Workplace1 PartsIn or PartsOut respectively.
o To reset the shown values to 0 when you reset the model, create a user-defined attribute of
data type method, name it reset, and enter the following source code:
self.~.PartsIn := 0
self.~.PartsOut := 0
o The code snippet below of our exit controls, workerLeaves1 and workerLeaves2, then
increments the values for each arriving and leaving part.
-- increment the parts exiting the 'Workplace' to be shown in the display pane
Workplace1.PartsOut := Workplace1.PartsOut + 1
o How to write the values with the methods workerLeaves1, workerArrives2, workerLeaves2,
and writeWorkersTimes into a TableFile is described under Program Controls Recording
Times for Picking-up and Depositing Parts. The result looks like this:
o To show the values in a Worker Chart, insert the object WorkerChart into your simulation
model.
■ Drag the WorkerPool to the WorkerChart and drop it there. Then configure it so that it
matches the screenshots below.
o To show the values in a Gantt Chart insert the object GanttChart into your simulation model.
■ Define or import an Options table. We used an options table with the settings shown
below.
o Copy the contents of the filled WorkersTimes table and paste it into the Data table of the
GanttChart.
• Click Show Chart to show the values for picking up and for depositing the part as a GanttChart.
Back to Model the Stations Which Process and Transport the Parts
Back to Program Controls Recording Times for Picking-up and Depositing Parts
Back to Model and Record Times for Picking-up and for Depositing Parts
Instead of using the Worker, you can also employ the Broker–Importer–Exporter mechanism to
simulate the jobs, which a single person or a group of people do.
Employing this mechanism encompasses these basic steps:
• Telling the station which services are required for doing a job. You accomplish this by typing in
the names of the services into the services list on the sub-tabs of the tab Importer.
• Telling the station which Broker assigns these services to it. You accomplish this by specifying
the name of this Broker in the text box Broker on the sub-tabs of the tab Importer.
• Telling an Exporter which services it is to supply for the stations in your simulation model. You
accomplish this by typing in the names of the services into the services list on the tab Attributes.
• Telling the Exporter which Broker manages the services it provides. You accomplish this by
specifying the name of this Broker in the text box Broker on the tab Attributes.
As a rule, you will use importer, Broker and Exporter to model Workers, and the tools they need to do
their jobs, if producing a part requires shared resources and if the LEDs on these objects suffice for
your animation needs.
We show how to:
• Model Processing Jobs
In our example we will demonstrate how to model jobs, which process parts.
The Exporter provides the services, while the Broker assigns the Exporter to the station, which
we here model with the object SingleProc . The stations Station1 and Station3 both require the
Exporter named ExporterJob1, which provides the service Job1. The station Station2 requires the
service Job2, which the ExporterJob2 provides.
To model this, we proceed like this:
• Insert a Source, three SingleProcs, and a Drain. Connect them. Then, insert two Exporters, a
Broker, and an EventController. Finally, insert a Method, name it Reset and enter deleteMovables;
as source code.
o Make sure that the check box Common resources on the Sub-tab Set-up is selected. Click
on the Sub-tab Processing again. Deactivate inheritance for the resources: Click the toggle
button to the right of Services, so that it looks like this .
Click Services and enter Job1 into the column Service of the service list.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
Click and select the Broker, which procures the services, MyBroker in our example.
o Make sure that the check box Common resources on the Sub-tab Set-up is selected. Click
on the Sub-tab Processing again. Deactivate inheritance for the resources: Click the toggle
button to the right of Services, so that it looks like this .
Click Services and enter Job2 into the column Service of the service list.
Click and select the Broker, which procures the services, MyBroker in our example.
o Make sure that the check box Common resources on the Sub-tab Set-up is selected. Click
on the Sub-tab Processing again. Deactivate inheritance for the resources: Click the toggle
button to the right of Services, so that it looks like this .
Click Services and enter Job1 into the column Service of the service list.
Click and select the Broker, which procures the services, MyBroker in our example.
• Next, we have tell the Exporters , which services they have to provide and which Broker procures
the services. Open ExporterJob1.
o Deactivate inheritance for the services: Click the toggle button to the right of Services, so that
it looks like this . Click Services and enter Job1 into the column Services of the service list.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
o Click and select the Broker, which procures the services, MyBroker in our example.
Repeat this for ExporterJob2. Enter Job2 into the column Services of the service list.
Plant Simulation automatically enters the Exporters and the services into the Broker, which
we specified. To view them, open MyBroker and select View > Exporters and View >
Offered Services.
• Finally, open the EventController and click Start. As the Exporter can only work at one station at
a time, and because the stations Station1 and Station3 share the ExporterJob1, short standstills
occur. Station1 has to wait until Station3 releases ExporterJob1, and thus is blocked. Station3 in
turn has to wait until Station1 releases ExporterJob1, and thus is Waiting.
You can also click the tab Statistics and view the most important data, which the object collected.
In our example we will demonstrate how to model jobs, which process parts and which set the
station up to process these different types of parts.
The Exporter provides the services, while the Broker assigns the Exporter to the station, which we
here model with the object SingleProc. All stations need the service Setup, which Exporter3 provides,
for setting the station up for a new part type. Station1 and Station3 both require the Exporter named
Exporter1, which provides the services Job1 and Job1. The station Station2 requires the service Job2,
which Exporter2 provides.
To model this, we proceed like this:
• Insert a Source, three SingleProcs , and a Drain. Connect them. Then, insert three Exporters, a
Broker, a table, which contains the products, and an EventController. Finally, insert a Method,
name it Reset and enter deleteMovables; as source code.
• First we have to tell the Source which type of part and how many of them we want it to create.
Open the Source and select MU selection > Sequence Cyclical. Click next to Table and
select the name of the table, which contains the products. This is the table, which we inserted
above.
Double-click the table, Products in our example, and enter the name of the MU class into the
column MU. Enter the amount of parts to be created into the column Number, and the name
of the part into the column Name.
o Click the toggle button to the right of Services, so that it looks like this .
o Click and select the Broker, which procures the services, MyBroker in our example.
o Clear the check box Common resources. Deactivate inheritance for the resources: Click the
toggle button to the right of Services , so that it looks like this
Click Services and enter Setup into the column Service.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
Click and select the Broker, which procures the services, MyBroker in our example.
o Click the toggle button to the right of Services, so that it looks like this .
o Click and select the Broker, which procures the services, MyBroker in our example.
o Clear the check box Common resources. Deactivate inheritance for the resources: Click the
toggle button to the right of Services, so that it looks like this
Click Services and enter Setup into the column Service.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
Click and select the Broker, which procures the services, MyBroker in our example.
o Click the toggle button to the right of Services, so that it looks like this .
Click Services and enter Job3 into the column Service.
o Click and select the Broker, which procures the services, MyBroker in our example.
o Clear the check box Common resources. Deactivate inheritance for the resources: Click the
toggle button to the right of Services, so that it looks like this
Click Services and enter Setup into the column Service.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
o Click and select the Broker, which procures the services, MyBroker in our example.
• Next, we have tell the Exporters, which services they have to provide and which Broker procures
the services. Open Exporter1.
o Deactivate inheritance for the services: Click the toggle button to the right of Services, so
that it looks like this . Click Services and enter Job1 and Job3 into the column Services of
the service list.
o Click and select the Broker , which procures the services, MyBroker in our example.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which are using such an
case-insensitive string are pointing to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is written in
terms of upper- and lower-casing.
Repeat this for Exporter2. Enter Job2 into the column Services of the service list.
Repeat this for Exporter3. Enter Setup into the column Services of the service list.
• Finally, open the EventController and click Start. As the Exporter can only work at one station at
a time, and because the stations Station1 and Station3 share Exporter1, short standstills occur.
Station1 has to wait until Station3 releases ExporterJob1, and thus is blocked. Station3 in turn
has to wait until Station1 releases Exporter1, and thus is Waiting. All stations receive the service
Setup from Exporter3, which does not cause a problem as it is needed once only for each station.
You can also click the tab Statistics and view the most important data, which the object collected.
When creating your simulation model, you will, more than likely, also have to integrate the shift
system that applies to your plant. You can quickly and easily define these shifts with the object
ShiftCalendar .
The ShiftCalendar can control the working hours as well as the paused times, the planned times
and the unplanned times of these material flow objects: Frame , SingleProc , ParallelProc
, Assembly , DismantleStation , Buffer , PlaceBuffer , Store , Sorter , Line ,
AngularConverter , Turntable , Track , TwoLaneTrack , Source , Drain , WorkerPool
, and Exporter .
Naturally, you can also control Frames in which you modeled components of your overall plant, with
the ShiftCalendar. Here you employ Methods as unplanned time and paused time controls of that
Frame to propagate the shift settings to the objects, which you inserted into this Frame.
You can use the method schedule to make the ShiftCalendar set the date and time to start or to
finish the production process.
When a ShiftCalendar starts a shift, it sets the attribute Unplanned of the material flow objects and
of any of the Frames at controls to false, i.e., it deactivates unplanned times. If need be, you can
program an Unplanned control that executes other actions, which your modeling situation requires.
The statistics of the material flow objects then starts to collect the unplanned time. This is the time
when a resource is not planned to work.
When you define shifts that are active from 6 o’clock in the morning until 10 o’clock at night, for
example, the planned time lasts from 6 o’clock to 22 o’clock. The unplanned time lasts from
22 o’clock to 6 o’clock the following morning.
When a ShiftCalendar finishes a shift, it sets the attribute Unplanned of the material flow object and
Frames it controls to true, i.e., it activates unplanned times. Then, the objects stop processing the
current part and release all services.
When a ShiftCalendar starts a break, it sets the attribute Pause of the material flow objects and of
the Frames it controls to true, i.e., it activates pauses. For the material objects activating a pause
also affects statistics. For Frames Plant Simulation only changes the state of the attribute. If need
be, you can program a Pause control for your Frames that executes the actions your modeling
situation requires.
When a ShiftCalendar ends a break, it sets the attribute Pause of the material flow object and Frames
it controls to false, i.e., it deactivates pauses. For the Frames you can react to the end of a pause in a
pause control that executes the actions your modeling situation requires.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
You can insert the ShiftCalendar into your simulation model from the folder Resources in the
Class Library or from the toolbar Resources in the Toolbox.
You can define the settings for the entire shift system in the ShiftCalendar. You can:
• Enter the Names of the Shifts, the Corresponding Times and Days
• Enter Times During which the Installation Works Part of the Time
Once you have entered all the settings for the shifts, you have to select the check box Active, so that
Plant Simulation uses the shifts in your simulation model.
Go to Pausing Material Flow Objects and Pausing Frames
Back to Modeling a Shift System
Enter the Names of the Shifts, the Corresponding Times and Days
Before you can enter data pertaining to the shift times, click the toggle button Inheritance, so that it
looks like this .
Enter the data pertaining to one shift into the cells of one row.
• Enter the names of the different shifts into the cells below Shift. You might, for example, enter
Morning shift, Day shift, Evening shift, Graveyard shift, etc.
The ShiftCalendar displays this icon for the day shift, and this icon for the night shift. It
displays this icon thenit is waiting and this icon then it is paused.
• Enter the times at which the shifts start in the cells below From. Enter a time between 0:00
o’clock and 24:00 o’clock. Note that you can only enter hours and minutes, not hours, minutes
and seconds.
o To create a shift located within one day, enter a greater number for the time it ends than for
the time it starts. You might, for example, define a Morning shift that starts at 6:00 o’clock
in the morning and ends at 14:00 o’clock on the same day.
o To create a shift that spans two days, enter a smaller number for the time it ends than for the
time it starts. You might, for example, define a Graveyard shift that starts at 22:00 o’clock at
night on one day, and ends at 6:00 o’clock in the morning on the next day.
• Enter the times at which the shifts end into the cells below To. Enter a time between 0:00 o’clock
and 24:00 o’clock. Note that you can only enter hours and minutes, not hours, minutes and
seconds.
• To select the individual days on which the shift in the row is active, click in the cells below the
days of the week.
You might, for example:
o Define a Morning shift that works from Monday up to and including Saturday.
o Define an Evening shift that works from Monday up to and including Friday.
• Enter the times of the breaks for each shift in the cells below Pauses. Enter the hour and the
minute when the break starts, a hyphen and the hour and minute the break ends. When you
define several breaks during one work day, separate them with a semicolon.
To define a coffee break from 9 o’clock to a quarter past 9 o’clock, and a lunch break from 12
o’clock to a quarter till 1 o’clock, enter 9:00-9:15;12:00-12:45.
To make the ShiftCalendar check if the values you entered for the breaks are plausible or not and
if you used the correct format to enter the break times, click Apply.
You can also import the settings for the individual shifts, which you saved as a tab-delimited text file
or which you received from factory management. Enter data, so that it matches the screenshot below.
Or you can export a shift, which you defined, and then import it into another simulation model. To do
so, right-click in the list field and select Export or Import on the context menu.
Go to Enter Times During which the Installation Works Part of the Time
Go to Enter the Stations which the ShiftCalendar Controls
Go to Schedule Date and Time to Start or to Finish the Production Process
Compare Context Menu of Embedded Lists
Back to Defining Shifts with the ShiftCalendar
Enter Times During Which the Plant Works Part of the Time
Before you can enter data pertaining to public holidays, retooling periods and times the plant only
works part of the time, click the toggle button Inheritance, so that it looks like this .
• To enter the date when your plant starts not working into the cells below Date From:
o Select a date in the calendar. Click the right or left buttons to move to another month.
To designate an entire day as a day-off, only enter a start date and no end date ( Date To),
and no Reduce Time To.
• To enter the date when your plant stops not working into the cells below Date To:
o Select a date in the calendar. Click the right or left buttons to move to another month.
• To designate a single day on which your plant only works part of the time, enter its date in the cell
in the column Date From. Enter the hour and the minute when the reduced working time starts, a
hyphen and the hour and minute the reduced time ends in the cells below Reduce Time To.
If your plant only works half a day on Christmas eve, for example the shifts from midnight to noon,
you would enter 0:00 - 12:00 into the cell Reduce Time To.
The ShiftCalendar combines the reduced time and the definition of the shifts for a day.
If, for example, the start time of a day with a reduced working time falls on a break,
then this work day starts with a break.
• Enter why your plant does not work into the cells below Comment.
You can also import a calender, which you saved as a tab-delimited text file or which you received
from factory management. Enter data, so that it matches the screenshot below. Or you can export a
calender you defined and then import it into another simulation model. To do so, right-click in the list
field and select Export or Import on the context menu.
Go to Enter the Names of the Shifts, the Corresponding Times and Days
Go to Enter the Stations which the ShiftCalendar Controls
Go to Schedule Date and Time to Start or to Finish the Production Process
Back to Defining Shifts with the ShiftCalendar
Enter the name of any of the built-in material flow objects, or enter the name of a Frame you used
to model a machine, whose working hours you would like to control with the ShiftCalendar into the
cells of the list.
• Into the text box Shift calendar on the tab Controls of the material flow object.
Go to Enter the Names of the Shifts, the Corresponding Times and Days
Go to Schedule Date and Time to Start or to Finish the Production Process
Go to Enter Times During which the Installation Works Part of the Time
Back to Defining Shifts with the ShiftCalendar
• Backward scheduling, which computes the start date going backwards in time from the demand
date.
Normally you start with the demand date, and compute the start date through backward scheduling.
If this start date is located in the past though, you have to recalculate the dates beginning with the
present time and forward-schedule the end date.
In our example below we programmed the method scheduleTest to compute the end date of two jobs
taking into account the shifts we defined in the ShiftCalendar.
The source code in SimTalk 2.0 notation looks like this:
var startTime := str_to_dateTime( "4.1.2013 0:00" )
var durationTime := str_to_time( "10:00:00.0" )
print "StartDate: ", startTime, " Duration: ", durationTime, " EndDate: ", EndTim
The first job starts on January 4, 2013 at midnight and takes 10 hours to finish. The second job starts
on December 12, 2013 and takes 19 hours. We want to know on what days and at which times the
parts will be all processed, considering the morning and day shifts we defined in the ShiftCalendar.
We also programmed the Method to print the results of its computations to the Console.
Go to Enter the Names of the Shifts, the Corresponding Times and Days
Go to Enter Times During which the Installation Works Part of the Time
Go to Enter the Stations which the ShiftCalendar Controls
Back to Defining Shifts with the ShiftCalendar
The ShiftCalendar enteracts with the material flow objects and the Frames it controls by changing
their Paused/Planned/Unplanned state. One of these objects is:
• Paused then it is not processing parts due to a pause. It resumes processing once you terminate
the pause, either by selecting Planned from the drop-down list or by setting its attribute Pause to
false.
When a station fails, and a pause occurs during the failure, the failure time of the
station will still be consumed, although the station is paused. Statistics counts the
times during which these two states overlap as paused time. Resetting your model
removes both failures and pauses of the object.
• Unplanned then it is not scheduled to work during the shifts which you defined in the
ShiftCalendar.
• Planned then it is scheduled to work during the shifts which you defined in the ShiftCalendar.
The scheduled/planned time is the processing time minus the times of the breaks.
We distinguish between:
• Paused Material Flow Objects and
• Paused Frames
The ShiftCalendar interacts with the material flow objects by changing their paused state according
to the shifts you defined. During a simulation run the dialog of these objects also reflects this by
selecting the present state in the drop-down list.
When it is paused, the material flow object does not receive any mobile parts. MUs can exit the
object, when you program a Method to make them do so. Plant Simulation stops set-up and
processing until the end of the pause or of the unplanned time.
The unplanned state is identical to the paused state. The only difference is how Plant Simulation
counts the internal statistics of the objects. When you define shifts that are active from 6 o’clock in the
morning until 10 o’clock at night, for example, the planned time lasts from 6 o’clock to 22 o’clock. The
unplanned time lasts from 22 o’clock to 6 o’clock the following morning.
When it is planned/scheduled to work, the object receives and processes MUs and moves them on
to the succeeding object in the material flow.
Go to Paused Frames
Back to Pausing Material Flow Objects and Pausing Frames
Paused Frames
As opposed to the material flow objects, which you can also pause manually, you can only change
the paused and the unplanned states of the Frame with its attributes Pause and Unplanned.
In addition, you can program a pause and/or an unplanned time control, both of which activate a
Method in changing the value of the attribute.
You can change the paused state of the Frame by assigning the value true or false to the attribute
Pause. Use the anonymous identifier ? to access the object from within a control.
Plant Simulation executes the pause control, whenever the paused state of the Frame c]hanges.
When you get the paused state within the Method, it shows the state after the change.
The source code in SimTalk 2.0 notation looks like this:
print "Current pause ", current.pause
MySingleProc.pause := current.pause
var shift := root.ShiftCalendar.getCurrShift
print "Current shift: ", shift
if not current.unplanned
if current.pause
current.currIcon := "pause"
else
current.currIcon := "working"
end
end
if current.pause
then
current.currIcon := "pause";
else
current.currIcon := "working";
end;
end;
end;
Plant Simulation executes the unplanned control, whenever the unplanned state of the Frame
changes, i.e., whether the Frame is not scheduled to work during the time you entered or whether it
is scheduled to work.
You can change the unplanned state by assigning the value true or false to the attribute Unplanned.
Use the anonymous identifier ? to access the object from within a control.
The source code in SimTalk 2.0 notation looks like this:
print "Frame unplanned: ", current.unplanned
MySingleProc.unplanned := current.unplanned
if current.unplanned
current.currIcon := "unplanned"
else
if current.pause
current.currIcon := "pause"
else
current.currIcon := "working"
end
end
if current.pause
then
current.currIcon := "pause";
else
current.currIcon := "working";
end;
end;
end;
The LockoutZone combines a group of material flow objects. If one of these stations fails, all other
stations that are part of the lockout zone stop processing their parts.
You have to define failure profiles for at least one of the stations assigned to the LockoutZone. As soon
as one of the stations fails, the LockoutZone stops all processing operations of all assigned stations.
You can select if it stops the processing operations immediately or when the required service arrives.
The stations only start processing parts again after all failures were removed. They then only use up
the respective remaining processing time. You can assign any of the built-in Material Flow Objectsor
a station you modeled in a Frame to the LockoutZone.
You can insert the LockoutZone into your simulation model from the folder Resources in the Class
Library or from the toolbar Resources in the Toolbox.
You can:
In our sample model the processing stations Station2, Station3, and Station4 are part of the lockout
zone. If Station3 fails, the lockout zone stops the processing operations of Station2 and Station4.
The percentages of the stopped time of Station2 and Station4 have to match the percentage of
the Failed time of Station3. The total availability of the stations within the lockout zone matches
the availability of Station3.
To clarify which objects are part of the lockout zone, you can draw a filled rectangle over the stations
onto the background of the Frame:
• Click the Vector Graphics ribbon tab.
• Drag a rectangle over the lockout zone and the stations that are part of it.
• Double-click the black rectangle and select a color. We selected light blue and added a gradient
from bottom to top of our box.
To make the LockoutZone stop the processing operations of the stations it controls, we have to
create a failure profile for one of the stations.
To make one of the stations, in our example Station3, fail, proceed as follows:
• Click the tab Failures and click New.
• Enter an availability and a mean time to repair. We entered an availability of 85 percent and a
mean time to repair of 15 minutes.
To make the LockoutZone stop the processing operations of the stations it controls immediately,
select the stop mode > stop immediately.
The LockoutZone then immediately stops the processing operations of Station2 and Station4 as
soon as Station3 fails. Note that only the stations that are part of the LockoutZone are stopped, but
none of the other stations in the model!
Then, check the statistics values of the stations, which you assigned to the LockoutZone:
• Open the dialogs of Station2, Station3, andStation4 and change to the tab Statistics.
• You’ll notice that the stopped percentages of Station2 and Station4 match the failed percentage
of Station3. This means that the overall availability ofStation2, Station3, and Station4 matches
the availability of the failed station, namely Station3.
To make the LockoutZone stop the processing operations of the stations it controls once the service
technician, who repairs the failed stations, arrives, select the stop mode > stop when service
arrives.
In our example the LockoutZone stops the processing operations of the assigned stations, namely
Station2, Station3, and Station4, when the repair service, which the failed Station3 requested, is
assigned.
• As a service technician is to repair the failed machines, add a Workplace to them and connect the
Workplace with the workerpool with a footpath.
• To make a service technician repair Station3 once it fails, insert a Broker into the model and
assign it on the sub-tab Failure. Then activate the failure importer. There is no need to change
any other settings.
• Then, run the simulation by clicking on the Home ribbon tab. Once Station3 fails, the Worker
walks from the workerpool to the failed station on the footpath. Once our service technician
has reached the Workplace attached to the failed station Station2, the LockoutZone stops the
associated stations, namely Station2 and Station4.
Within the control method the anonymous identifier @ designates the triggering station, while the
anonymous identifier ? designates the LockoutZone.
Within the control method the anonymous identifier @ designates the triggering station, while the
anonymous identifier ? designates the LockoutZone.
The LockoutZone stops the assigned material flow objects by setting their attribute Stopped to true.
The LockoutZone stops an assigned Frame by setting its attribute Stopped to true.
The Assembly Station adds mounting parts to a main part, for example doors to a car body, or legs
to a table top as in our example. It moves the mounting parts either to the main MU—according to
the value you enter into the Assembly Table—or it deletes them.
You can insert the assembly station into your simulation model from the folder Materialflow in the
Class Library or from the toolbar Materialflow in the Toolbox.
In this basic sample model we demonstrate how to produce two different types of tables and show
how to attach the table legs to the table tops.
The Source TableTopsIn produces two brown table tops and two white table tops. The Source
TableLegsIn produces 4 table legs with different colors. The sources send the table tops and table
legs on to the Assembly Station which in turn attaches the respective legs to the matching table tops.
It then sends the assembled tables on to shipping station, which we modeled with a Drain.
To create the simulation model, insert the objects so that they match the screenshot below.
• Insert and configure the Sources, which are to produce the parts, the table tops and table legs in
our case:
o Select the type of part which the source TableTopsIn is to produce. We selected the MU
selection > Sequence Cyclical and then selected the name of the sequence table, which
we inserted before, namely the TableFile TableTops. Selecting the table automatically
applied the correct format.
o Select the type of part which the source TableLegsIn is to produce. We selected the MU
selection > Sequence Cyclical and then selected the name of the sequence table, which
we inserted before, namely the TableFile TableLegs. Selecting the table automatically
applied the correct format.
We repeated this for the legs that go with our white table top.
o Insert and configure the Assembly Station, which is going to attach the matching table legs to
the table tops.
■ As we want to attach the table legs to the table tops, we selected assembly table >
predecessors.
■ We then clicked Open and entered the number of the predecessor from which the legs
arrive, 2 in our case, and the number of parts want to attach, 4 in our case.
■ As the part that the Assembly Station is going to pass on is the finished table, we
selected Main MU, which arrived from predecessor 1.
Start the simulation and watch how the Assembly Station attaches the 4 blue legs to the brown
table top, passes the assembled table on to the shipping station, and repeats this once. It then
attaches 4 orange legs to the white table top, passes the assembled table on to the shipping station,
and does the same again, and then repeats the sequence, namely two brown table tops, followed
by two white table tops, and so on.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Examplein the dialog Examples Collectionand click Open Model.
Compare Change the Assembly List in the Entrance Control
Back to Modeling in Tecnomatix Plant Simulation 2D
In this sample model we demonstrate how to remove parts from a car in a junk yard with the
DismantleStation.
In our example we will demonstrate how to:
• Configure the Source Where the Cars Enter the Junk Yard
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling in Tecnomatix Plant Simulation 2D
Configure the Source Where the Cars Enter the Junk Yard
The Source produces parts of type Car and moves them on a Line to the DismantleStation. It
removes the trunk lid, the outside mirrors, and the wheels and sends the stripped car in to the scrap
press. The removed parts are sent on to the station TestParts, which checks if they can be resold or
not. It sends the good parts on to the respective Drain, which removes them from the scrap yard
proper. The bad parts, on the other hand, are moved to the scrap press.
Insert and configure the Source which produces the parts:
• Select how the Source CarsIn produces the parts. We selected an adjustable interval and
the uniform distribution.
• Select the type of part which the Source is to produce. We selected Car in our example.
With these settings the Source CarsIn creates cars whose interarrival time is uniformly distributed
between 29 and 35 minutes.
Go to Configure the Dismantle Station that Removes the Parts
Go to Configure the Station That Tests the Parts
Go to Configure the Station That Distributes the Removed Parts
Back to Removing Parts with the Dismantle Station
o We want to remove 4 wheels and send them on to the successor with the number 2 of the
DismantleStation.
o We want to remove 2 mirrors and send them on to the successor with the number 2.
o We want to remove 1 trunkLid and send it on to the successor with the number 2.
• Select the dismantle mode. We used the default setting Create MUs; the DismantleStation then
creates a new part for each successor and moves that part there.
• Select the successor to which the main MU, the stripped car in our case, moves. We used
the default setting 1.
• Select if the DismantleStation moves the main MU or a new MU in to its successor. We used
the default setting Main MU.
As removing the parts also takes up some time, we entered 30 minutes as the processing time on
the tab Times.
As we want to also show that the parts were removed from the car, we drew an icon of the car
without these parts. This icon has the number 1.
To make the successor line display the picture of the stripped car, we created an entrance control
for this line and programmed it to switch to the icon with the number 1 once the car moves onto it.
Back to Configure the Source Where the Cars Enter the Junk Yard
Go to Configure the Station That Tests the Parts
Go to Configure the Station That Distributes the Removed Parts
Back to Removing Parts with the Dismantle Station
Insert and configure the station which checks if the quality of the parts is good enough to be sold or if
they have to be scrapped.
In our example we used a SingleProc which we named TestParts. Except for the exit strategy
you can use it with its default settings.
• As we want a certain percentage of the parts to be bad, we selected the strategy Percentage.
The test station then moves the parts on to its successors according to a percentage distribution.
• We then clicked Open List and entered the percentages of the parts that are sent on to the
two successors.
o 10percent of the parts are sent on to the successor with the number 1. These parts are bad
and have to be scrapped; they end up in the scrap press.
o 90 percent of the parts are sent on to the successor with the number 2. These parts are
good enough to be sold.
Back to Configure the Source Where the Cars Enter the Junk Yard
Back to Configure the Dismantle Station that Removes the Parts
Go to Configure the Station That Distributes the Removed Parts
Back to Removing Parts with the Dismantle Station
Insert and configure the station which distributes the removed parts according to their types.
We decided to use a FlowControl which moves the parts on to the type-specific Drains according
to an attribute of the respective part.
• We then clicked Open List and entered the required information into the attribute list. We used
the attribute Name of all parts. For this reason we only have to enter Nameonce and can leave
these cells empty for the remaining two parts.
o We entered Name, followed by the value of the attribute, namely Wheel, followed by the number
of the successor onto which the part is to be moved, namely 1.
Start the simulation and watch how the DismantleStation removes the trunk lid, the outside mirrors,
and the wheels from our car. The stripped car is sent straight on to the scrap press, while the
removed parts are sent to the test station which checks if they are good or bad. The bad ones are
sent to the scrap press, while the parts, which can be resold, are distributed to the respective Drains.
You can also view the summary reportat the end of the simulation run and analyze the statistics report
(F6) which contains detailed statistics information.
You can extend this model at will, for example to remove more parts, such as the engine, doors,
bumpers, fenders, etc. You can also add Workers, who carry parts from station to station and who
test and sell parts as we did in the scrap yard model in the examples collection.
Back to Configure the Source Where the Cars Enter the Junk Yard
Go to Configure the Dismantle Station that Removes the Parts
Back to Configure the Station That Tests the Parts
Back to Removing Parts with the Dismantle Station
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling in Tecnomatix Plant Simulation 2D
The Source produces parts of type MyPart and moves it on to the processing station SingleProc,
where the pick-and-place robot picks it up. It rotates toward the target station, SingleProc1 in our
case, and deposits the part there. After processing the part, the target station moves it on to the Drain.
The finished simulation model looks like this:
To create the simulation model, insert the objects so that they match the screenshot above. You can
use the objects as you inserted them, i.e., without changing any of their settings.
Start the simulation and watch how the pick-and-place robot picks the part up at the station
SingleProc, rotates to the target station SingleProc1, and deposits the part there.
You can also move the position of the target station at will and make the pick-and-place robot
recalculate the angle at which it connects to the station SingleProc1.
With the stations at their original position, the angles table looks like this:
Then, move the target station SingleProc1, right-click the pick-and-place robot and select Calculate
Angles. Check the new target angle.
In our sample model the Sources create parts. The object SourceContainers moves the containers
directly on to the Assembly station. The object SourceParts moves the parts to the pick-and-place
robot, which picks them up, rotates, and delivers them to the Assembly station. After the Assembly
station has loaded the parts onto the container, it moves the loaded container onto the Line, which
delivers it to the Drain.
In our examples we will demonstrate how to:
• Configure the Sources and the Containers and Parts to be Produced
• Select the type of part which the object SourceParts is to produce. We selected MyNewPart in
our example. We also want this Source to produce a part every second, so we entered 0:01
is the Interval.
• Configure the Container, which the SourceContainers is going to produce. We entered the
settings shown in the screenshot below. We want our parts to be placed in two rows of four each,
so we entered 2 is the y-dimension and 4 is the x-dimension.
We are going to use vector graphics for the animation of the mobile objects instead of the icons
of the objects. Plant Simulation then shows the graphics of the parts with the correct size and
with the correct distance to each other while animating your simulation model. We selected
these settings:
• Configure the part which the SourceParts is going to produce. For this type of part we do not use
its vector graphics, but its icon. We did not change any of the settings of our part MyNewPart, we
only changed its icon to fit onto the graphic of our container. We just reduced its size to 4 by 4
pixels and assigned it a color that is easy to recognize during the simulation.
• Enter the number of parts which the pick-and-place robot is to move at the same time into the text
box capacity. We want it pick up eight parts, so we entered 8.
• Connect the pick-and-place robot with the SourceParts and with the Assembly station. Plant
Simulation then computes and enters the respective angles and times into the Angles Table
and into the Times Table.
• As we want to see how the pick-and-place robot picks up eight parts, we have to add animation
points to its icon on which it shows the parts in the simulation model.
o Click the pick-and-place robot with the right mouse button in the simulation model and select
Edit Icons.
o Click on the Animation ribbon tab and insert the animation points on which the
pick-and-place robot show the parts it transports. We moved the first animation point and
inserted seven more animation points, as shown in the screenshot.
Back to Configure the Sources and the Containers and Parts to be Produced
Go to Configure the Assembly Station
Back to Pick Up Several Parts and Place Them with the Robot
Back to Picking and Placing Parts with the Pick-And-Place Robot
Insert and configure the Assembly station which loads the parts onto the containers.
• As we want to load eight parts arriving from the pick-and-place robot, we select Assembly table
> Predecessors, click Open, enter the number of the predecessor, namely 2, and the number
of parts we want to load onto the containers, namely 8.
• Start the simulation and watch how the SourceParts produces parts and how it moves them to
the pick-and-place robot. It then picks up eight parts one after the other, rotates, and loads them
one by one onto the container on the Assembly station in the same order as it picked them up
(FIFO). To better see how this is done, you can reduce the simulation speed.
Back to Configure the Sources and the Containers and Parts to be Produced
Back to Configure the Robot to Pick Up Several Parts
Back to Pick Up Several Parts and Place Them with the Robot
Back to Picking and Placing Parts with the Pick-And-Place Robot
moves its part to the pick-and-place robot, which picks it up, rotates, and delivers it to the processing
station SingleProc. After the processing station has processed the part, it feeds it back to the
pick-and-place robot, which picks it up and delivers it to Drain1.
In our example we will demonstrate how to:
• Configure the Sources and the Parts to be Produced
• Define the entrance control, which sets the last station on which the part is located. To do so,
you can right-click into the text box and select Create Control.
• Copy the following source code and paste it. The identifier @ designates the part, while the
identifier ? designates the station, i.e., the material flow object, on which the part is located.
@.LastStation := ?
• Select the type of part which the object Source1 is to produce. We selected Entity1 is well.
• Create an entrance control for the Source1 and enter the same source code as above.
Create the user-defined attribute LastStation for the part Entity1. This attribute is evaluated in the
target control of the pick-and-place robot to select the new target station.
• Double-click the object Entity1 and click the tab User-defined Attributes.
• Click New, enter the name of the user-defined attribute and select its data type. We entered
LastStation and selected the data type > object.
• Define the entrance control, which sets the last station on which the part is located. To do so,
you can right-click into the text box and select Create Control.
• Copy the following source code and paste it. The identifier @ designates the part, while the
identifier ? designates the station, i.e., the material flow object, on which the part is located.
@.LastStation := ?
• Copy the following source code and paste it. The identifier @ designates the part, while the
identifier ? designates the station, i.e., the material flow object, on which the part is located.
The source code in SimTalk 2.0 notation looks like this:
if ?.empty
return
end
if @.LastStation = Source
?.setDestination(Drain)
elseif @.LastStation = Source1
?.setDestination(SingleProc, true)
else
?.setDestination(Drain1)
end
is
do
if ?.empty then
return;
end;
• Start the simulation and watch how the Source moves the part Entity1 directly on to the
pick-and-place robot, which picks it up, rotates, and delivers it to the Drain. The Source1 moves
the part to the pick-and-place robot, which picks it up, rotates, and delivers it to the processing
station SingleProc. After the processing station has processed the part, it feeds it back to the
pick-and-place robot, which picks it up and delivers it to Drain1. To better see how this is done,
you can reduce the simulation speed.
In our example we will demonstrate how to place parts from a processing station onto a Line
with the pick-and-place-robot. A second pick-and-place-robot then loads the parts onto pallets
on a second Line. The pallets, which the Conveyor transports, are then unloaded with the third
pick-and-place-robot onto another processing station. The Drain finally removes the parts from
the plant.
We show how to configure the pick-and-place-robot and the Lines:
• With drag and drop. Here the pick-and-place-robot automatically creates the required sensors
and controls and enters the corresponding angle into the Angles Table.
• Manually on the tab Exit in the list Target selection. Here you have to create the required sensors
and program the controls yourself.
Go to Configure the Sources, the Processing Stations, the Conveyors, and the Pallets
Go to Configure the Robots
Back to Picking and Placing Parts with the Pick-And-Place Robot
Configure the Sources, the Processing Stations, the Conveyors, and the Pallets
The Source named SourceParts produces parts and moves these to the SingleProc named Station1.
The pick-and-place-robot named PlacePartOnConveyor picks the part up, rotates to the Line and
places it onto the Line. To do so, drag the pick-and-place-robot onto the Line and select the Operation
> Place part. Plant Simulation then automatically creates the respective sensor on the Line.
The Line transports the placed part over a certain distance. A second Source named SourcePallets
produces pallets for a second Line. The pick-and-place-robot named LoadPallets loads the parts
from the Line onto the pallets. Drag the pick-and-place-robot onto the Line and select the Operation
> Load part. Plant Simulation then automatically creates the respective sensor on the Line.
The pick-and-place-robot named UnloadPallets unloads the parts from the pallets onto the Station2.
To do so, drag the pick-and-place-robot onto the Line and select the Operation > Unload part. Plant
Simulation creates the corresponding control for unloading the pallet at the respective sensor. The
corresponding exit behavior here is Exit strategy or target control. The fully processed parts are
then moved from Station2 to the Drain PartsOut which removes them from the plant.
Insert the required object so that they match the figure below:
Connect the robots with the SingleProcs with Connectors. Make sure that the starting
point of the conveyor is connected with its end point with a Connector so that the parts
can move in a circle.
We use the SourceParts with the built-in settings. It produces an unlimited number of parts of type
Entity.
We entered a processing time of 4 seconds into the processing station named Station1.
• For the pallets we use a length of 1 meter, a width of 1 meter, a height of 0.33, an X-dimension
of 1, and a Y-dimension of 3.
For the processing station named Station2 we entered a processing time of 2 seconds.
We use the Line and the Conveyor with the build-in settings.
Go to Configure the Robots
Back to Automatically Load and Unload Parts at the Sensor of a Conveyor
o It enters these settings into the angles table on the tab Attributes of the robot
PlacePartOnConveyor.
• In a first step the robot LoadPallets is to pick the parts from the Line. To do so, drag it to a position
of your choice on the Line, select the Operation > Pick part, and click OK.
o It enters these settings into the angles table on the tab Attributes of the robot LoadPallets.
• In a second step the robot LoadPallets is to load the pallets which move on the Conveyor. To
do so, drag the robot onto a position of your choice on the Conveyor, select the Operation >
Load part, and click OK.
Plant Simulation automatically does the following:
o It enters these settings into the angles table on the tab Attributes of the robot LoadPallets.
• As the last step the robot UnloadPallets unloads the parts from the pallets and loads them onto
the station named Station2. To do so, drag the robot onto a position of your choice on the
Conveyor, select the Operation > Unload part, and click OK.
Plant Simulation automatically does the following:
o It enters these settings into the angles table on the tab Attributes of the robot UnloadPallets.
During the simulation Plant Simulation loads three parts onto the pallet in 2D.
In 3D, on the other hand, only two parts are loaded onto the pallet. This is because the
standard pallet in 3D receives four parts on the predefined loading spaces (MU animation
paths). To fix this, we are going to exchange the 3D graphic of the pallet with a box that
accommodates three parts stacked onto each other. Open the pallet in 3D, click the right
mouse button into the background of the window and select Exchange Graphics.
As we want to retain the appearance of the pallet in 2D, we click No in the message dialog
that is shown.
We do want to use the number of storage places of the box as the dimension in 2D though.
For this reason we click Yes in the message dialog that is shown.
Now the animation also looks good in 3D. Three parts each are placed into a box, one
stacked on the other, and are then moved on.
Go to Configure the Sources, the Processing Stations, the Conveyors, and the Pallets
Back to Automatically Load and Unload Parts at the Sensor of a Conveyor
In this model we show how you can set the MU conveying direction in the Pick-and-Place robot.
The conveying direction is of importance because the objects Turnplate, Turntable, AngularConveyor,
and Conveyor change the conveying direction of the MUs in the simulation model. As soon as they
do this, Plant Simulation uses the previous length of the MU as its new width and the previous width
as the new length. The Pick-and-Place robot now can also pick the part up and rotate it arbitrarily and
then place it as it is required for further processing/conveying, just as a robot does in a real factory.
The Source produces parts and moves them on to a Line. The AngularConveyor conveys the part
around the corner and keeps the conveying direction of the part. The Pick-and-Place robot picks the
part up and places it onto the succeeding Line in the direction, which we selected as the MU conveying
direction. The second Line moves the part to the Drain, which removes it from the installation.
To create the simulation model, insert the objects so that the match the figure above.
• Our Source uses the default settings.
• Our Line is 6 meters long and is non-accumulating. The gap between the individual parts that are
conveyed is 1 meter.
• Our AngularConveyor has an entry length and an exit length of 2 meters each. We did not
change any other settings.
Start the simulation and watch how the Pick-and-Place robot picks the parts from the
AngularConveyor, how it rotates to Line1, and places the part there with the MU conveying direction
> Forwards. Here the robot rotates the part so that it will be placed forwards on the successor
and then places it on the successor.
You can run further experiments with the different settings for the MU conveying direction in the
model and thus find the setting that best fits your modeling needs.
Back to Picking and Placing Parts with the Pick-And-Place Robot
The Z-dimension of the Store, the Z-dimension of the Transporter, and the Z-dimension of the
Container allow you to stack parts on them.
In our sample model a Transporter transports pallets on which boxes are stacked. The boxes
themselves contain three stacked parts. The first Pick-and-Place robot unloads the pallets from the
Transporter and places them onto a conveyor.
The second Pick-and-Place robot unloads the boxes from the pallets and places them onto the
second conveyor. The third Pick-and-Place robot unloads the stacked parts from the boxes and
places them onto the third conveyor which moves them on. A Drain at the respective end of the three
conveyors removes the parts from the plant.
Our finished model looks like this:
To let the robots know where to unload and load parts, drag the respective predecessor and
successor onto the respective robot and drop it there. The angles tables of the robots then show the
respective predecessor and successor.
We will:
• Configure the Transporter, the Pallet, and the Box
As the Transporter, the Pallets, and the boxes are always going to be the same, we configure their
classes in the Class Library.
• For the Transporter we selected the settings below:
We use the standard setting of 1 for the Z-dimension of the storage area of type Store. Thus
the Transporter does not stack any Pallets one onto the other.
• For the Container, our Pallet, we selected the settings below. We entered 3 as the Z-dimension;
this way the Pallet can stack 3 Boxes onto each other.
• To create the box, we duplicated the Container in the Class Library. We then renamed the
duplicated object to Box and selected the settings below. We entered 3 as the Z-dimension,
this way 3 parts can be stacked in the Box. The length and width make sure that four Boxes
fit on a Pallet.
• In the entrance control we determine the parts that are loaded onto the Transporter.
First we set the length of the Transporter to 3.2 meters. We could also have done this in the
class of the Transporter in the Class Library. We recommend to not change the standard settings
of the built-in objects if possible. If you customize them and then merge models later on or if you
update the class library later on, your customized settings are going to be discarded and replaced
by the standard settings. You then have to make your customizations again.
Then, we are going to create a Pallet and continue creating Boxes on it until the Pallet is filled
with Boxes. In the last step we are going to produce parts until the Boxes are full as well.
@.Length := 3.2
• First we create a sensor at which the robot unloads the Pallets from the Transporter.
• Next we are going to create the sensor control which stops the Track until the Transporter has
been unloaded all the way. Then the Transporter drives on and is going to be removed from
the installation in the Drain.
param SensorID: integer, Front: boolean
@.stopped := true
@.stopped := false
Now we are going to configure the conveyors that transport the Pallets, the Boxes, and the Parts:
• For the two Conveyors on the left we created two sensors each. For the Conveyor on the right we
created one sensor. The robots unload parts at the first sensor from a Conveyor and load then
onto the next Conveyor as the second sensor. The sensors for unloading parts from a Conveyor
are triggered by a light sensor by the rear of the part.
• Then we programmed the sensor controls at which the individual Conveyors load the parts onto
the next Conveyor.
Except for the Destination the sensor control is the same for the three Conveyors. We have to
adjust the variable Destination, namely PickAndPlace1 and PickAndPlace2.
@.stopped := true
@.stopped := false
Our three robots load the parts at the sensors from the Track onto the Conveyor and then onto the
other two Conveyors.
We configured the robots with the same settings. We entered a loading time and an unloading time
of 2 seconds each. The robot places the parts at the respective first sensor onto the succeeding
Conveyor.
We doubled the size of the graphic of the first robot by selecting a scaling factor of 2.
When we now run the simulation, we can watch how the robots unload the stacked parts and
singularize them.
In this basic sample model we demonstrate how you can use the Converter with its default settings,
i.e., without changing anything.
The Source produces parts and moves them on to the connected Line. The Converter passes the
parts straight through to the succeeding Line.
The finished simulation model looks like this:
To create the simulation model, insert the objects so that they match the screenshot above. You can
use the Lines and the Converter as you inserted them, i.e., without changing their settings.
To limit the number of parts in the plant, the Source produces 5 parts only.
Start the simulation and watch how the parts move on the Lines and how the Converter conveys them
straight through in the direction of motion, first from right to left and then from bottom to top.
• Select the type of part and how the parts are to be produced.
o We selected a random frequency.
o We selected the name of the frequency table, which we inserted before, namely the
TableFileMyParts. Selecting the table automatically applied the correct format.
The Source then produces the parts with the settings above and the Converters convey them
sideways to the stations ProcessingA or ProcessingB respectively.
Go to Configure the Converters that Convey Parts to and from ProcessingA
Insert and configure the Converters that convey the parts to and from the station ProcessingA:
• As we want to convey the parts laterally to the station ProcessingA or ProcessingB respectively
depending on their name, we opened ConverterToA and selected the strategy > MU Name.
• We then clicked Open List and entered the names of the parts which we want to move to the
station ProcessingA into the list. We want the parts named A1, A2, and A3 to be conveyed laterally
to the left, so we entered their names and selected side 3 in the attribute list. As you remember,
the numbers designate the side of the Converter at which the part exits.
• As we want to convey the parts arriving from ProcessingA straight on, we opened
ConverterFromA and selected the strategy > MU Name.
• We then clicked Open List and entered the names of the parts which we want to move on into
the list. We want the parts named A1, A2, and A3 to be conveyed straight on, so we entered their
names and selected side 0 in the attribute list.
Insert and configure the processing stations, which process the parts for a certain time before feeding
them back into the factory:
• Enter the capacity of the processing stations. We entered 10 is the x-dimension and as the
y-dimension respectively. This results in 100 processing places on each station.
• Enter a processing time. We decided to use a normally distributed time with the settings
below.
Insert and configure the Converters that convey the parts to and from the station ProcessingB:
• As we want to convey the parts laterally to the station ProcessingB depending on their name, we
opened ConverterToB and selected the strategy > MU Name.
• We then clicked Open List and entered the names of the parts which we want to move to the
station ProcessingB into the list. We want the parts named B1, B2, and B3 to be conveyed laterally
to the left, so we entered their names and selected side 3 in the attribute list. As you remember,
the numbers designate the side of the Converter at which the part exits.
• As we want to convey the parts arriving from ProcessingB straight on, we opened
ConverterFromB, and selected the strategy > MU Name.
• We then clicked Open List and entered the names of the parts which we want to move on into
the list. We want the parts named B1, B2, and B3 to be conveyed straight on, so we entered their
names and selected side 0 in the attribute list.
• Start the simulation and watch how the Converters convert the parts laterally to the left and
straight on depending on their name. To better recognize that they do this correctly, we drew an
icon with a red arrow pointing in the direction of motion.
You will notice that the right hand side of the part points downwards after it has moved from
ConverterToA into the processing station. This is because moving the part laterally to the left
rotates it 90 degrees clockwise.
Once the part moves from the processing station to ConverterFromA, it is rotated another
90 degrees clockwise, thus moving backwards towards the Drain, which removes it from the
installation.
In this sample model the Source produces 10 parts of three different types. It moves the parts to a
Converter, which conveys them laterally to the left, laterally to the right, or straight through according
to their names. We programmed where exactly each type goes in a strategy control.
To accomplish this, you will:
• Configure the Source That Produces the Parts
• We then selected the name of the delivery table, which we inserted before, namely the TableFile.
Selecting it automatically applied the correct format.
The Source then produces the parts with the settings above and the Converter conveys them to
the connected objects.
Go to Configure the Converter that Conveys the Parts
Back to Convey Parts According to a Strategy Control
• To create the control, we right-clicked into the text box strategy method and selected Create
Control. Plant Simulation then entered self.OnStrategy and opened the method.
We then entered the following source code. It conveys the parts named A laterally to the left,
i.e., to exit 3 of the Converter, the parts named B laterally to the right, i.e., to exit 1, and the parts
named C straight on, i.e., to exit 0 of the Converter.
The source code in SimTalk 2.0 notation looks like this:
param entranceNo: integer
if @.name = "C"
?.ExitForNextEnteringMU := 0 /* number of the exit of the converter*/
elseif @.name = "A"
if entranceNo = 2
?.ExitForNextEnteringMU := 3
else
?.ExitForNextEnteringMU := 0
end
else
if entranceNo = 2
?.ExitForNextEnteringMU := 1
else
?.ExitForNextEnteringMU := 0
end
end
(entranceNo : integer)
is
do
if @.name = "C" then
?.ExitForNextEnteringMU := 0; /* number of the exit of the converter*/
elseif @.name = "A" then
if entranceNo = 2 then
?.ExitForNextEnteringMU := 3;
else
?.ExitForNextEnteringMU := 0;
end;
else
if entranceNo = 2 then
?.ExitForNextEnteringMU := 1;
else
?.ExitForNextEnteringMU := 0;
end;
end;
end;
• Start the simulation and watch how the Converter first moves the 10 parts named A laterally to the
left, the 10 parts named B laterally to the right, and the 10 parts named C straight on.
In this sample model the Converter sends all arriving parts to the default exit, which we select.
To create the simulation model, insert the objects so that they match the screenshot below. The
finished simulation model looks like this:
To make the Converter move the parts to the default exit on the respective succeeding Line, open
the dialog of the Converter.
• Select the Strategy > Default Exit.
• Select the number of the Default exit. We selected 3 is we want all parts to exit upwards. As you
surely remember, the exits are numbered like this:
Start the simulation and watch how the parts move on the Lines and how the Converter conveys them
to the exit with the number you selected, 3 in our case.
In this sample model the Converter feeds parts from a branch line into the main line, once the gap,
which you enter, is big enough to accommodate the part.
To create the simulation model, insert the objects so that they match the screenshot below. The
finished simulation model looks like this:
Insert and configure the Source which produces the parts moving on the main line:
• Select when parts are to be produced. We entered a constant interval of 30 seconds, meaning
that the Source produces a part every 30 seconds.
• Select which part type is going to be produced. We selected the part MyPart, to which we added
a direction arrow.
To make the Converter need the parts from the branch line into the main line, provided the gap
between the parts on the main line is big enough, open the dialog of the Converter.
• Select the Strategy > Feed in.
• Enter the size of the gap between the parts. We entered a gap of 5 meters.
Start the simulation and watch how the Converter moves the parts from the branch line into the main
line and conveys them with the orientation in which they were fed in.
In the sample model the Source PartsIn produces parts of type MyCarbody and moves them to the
AngularConverter. It in turn changes their conveying direction. The length, which the part takes up
on the AngularConverter, then changes from MU length to MU width. This process uses up the
moving time. Once the part has exited the AngularConverter, it returns to its original position. It
then is ready for the next MU.
The finished simulation model looks like this:
• First, insert and configure the Source. Select the part which it is to produce. We named our
Source PartsIn and selected the part MyCarbody, which we created in the folder Models.
• Insert the Line that feeds the parts to the AngularConverter. You can make it as long as you like,
but you do not have to change any of the other settings. We made our feeder line 10 meters
long. We also changed some curve settings for display reasons to better accommodate the
screenshot of our part MyCarbody in the Line.
• Insert the first AngularConverter and configure it. We entered an entry length and an exit
length of 5 meters each.
We also changed some curve settings for display reasons to better accommodate the screenshot
of our part MyCarbody in the AngularConverter.
• Insert the ProcessingLine into which the AngularConverter moves the parts and configure it.
o We entered a length of 2.5 meters.
o We entered a speed of 0.001 meters per second to make the part stay on the processing
line instead of being moved on continually.
Note that Plant Simulation also recalculates the time when you click Apply and/or OK. In our
case a time of speed of 0.001 meters per second over a length of 2.5 meters corresponds to
a time of 41 minutes and 40 seconds and vice versa.
o We also changed some curve settings for display reasons to better accommodate the
screenshot of our part MyCarbody in the AngularConverter.
o To finish the simulation model, insert the second AngularConverter, another Line, and the
Drain, which removes the parts from the plant. For the AngularConverter and the Line you
can use the same settings as for the Line and the AngularConverter, which you inserted
above. Finally, connect all objects with Connectors.
o To make the model visually more pleasing, move the objects closer to each other so that the
Connectors are not visible. Then, reduce the simulation speed by dragging the speed slider
to the left, start the simulation, and watch how the car bodies move over the stations.
Double-click a part when it has reached the point at which the conveying direction changes
on the AngularConverter at the top. Up to this point the conveying direction is forward.
After this point the conveying direction is lateral right until the part reaches the point at
which the conveying direction changes again.
After this point the conveying direction changes to backward until the part reaches the Drain.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respectiveCategory, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling in Tecnomatix Plant Simulation 2D
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
In this sample model the Source produces four parts of type MyPart and moves them onto the
feeder line of the Turnplate. It in turn rotates each part by 90 degrees to the right and moves it on
to its successor.
• First, configure the Source. As we want it to produce four parts only, we selected time of
creation > number adjustable and entered 4 is the amount. We then selected the part to be
produced, namely MyPart, which we created in the folder Models.
• Insert the Line that feeds the parts to the Turnplate. You can make it as long as you like, you do
not have to change any of the other settings though.
• Insert the Turnplate and the Line that moves the parts on to the Drain.
• Configure the Turnplate. As we want it to rotate the part by an angle of 90 degrees, you can use
the default setting, namely the strategy > angle and a rotation angle of 90 degrees.
• To be able to see that the Turnplate actually rotates the part and moves it on rotated, mark the
sides of the icon of the part. We made the top of our part red and the bottom green.
Instead, you can also select Vector graphics active on the tab Graphics of the part.
• Start the simulation and watch how the Turnplate rotates the part. You will not be able to see
anything with the default simulation speed setting, as the simulation runs too fast.
• To remedy this, you can reduce the simulation speed in a reset method.
EventController.Speed := 60
• Start the simulation again and watch how the Turnplate rotates the part.
You can use the Turnplate to model a shrink wrapper. In our example we apply an overwrap
around the parts on our pallet to stabilize the load.
In this sample model the SourceParts creates nine parts. It moves them onto Line1, which feeds them
to the Turnplate. The Turnplate turns them by 90 degrees to the right. The successor line moves the
parts onto the ParallelProc , which processes them for two minutes. It then moves them on to the
TransferStation, which loads them onto a pallet. The lines moves the pallet back to the Turnplate,
which shrink wraps it, and moves it on to shipping, i.e., to the Drain.
To accomplish this, you will:
• Configure the Source and the Feeder Line
Insert and configure the Source. As we want it to produce nine parts only, we selected time of
creation > number adjustable and entered 9 is the amount. We then selected the part MyPart,
which we created in the folder Models.
Next, insert the feeder line that moves the part on to the Turnplate. You can use the Line with its
default settings.
Go to Configure the Turnplate
Go to Configure the Line Which Transfers the Parts
Go to Configure the Stations Which Handle the Pallet
Back to Model a Shrink Wrapper
Insert the Turnplate and configure it. The Turnplate has two tasks in our example:
• It rotates the parts by 90 degrees to the right and then move them on to Line1.
• It rotates the pallet after the parts have been stacked onto it to simulate the shrink wrapper.
• Specify the name of the strategy method and program the actions it has to execute.
We decided to use a user-defined attribute of data type method. We right-clicked in the text box
strategy method and selected Create Control. Plant Simulation then entered self.OnStrategy and
opened the method.
We then entered the following source code, which first sets the rotation angle of the part itself and
then of the pallet after the parts have been loaded onto it. The leading sign in the instruction -(4
* 360) designates the direction in which the Turnplate rotates; + stands for clockwise, - stands for
counterclockwise. Our example rotates the pallet four times by 360 degrees counterclockwise.
The source code in SimTalk 2.0 notation looks like this:
var rotAngle: integer
if @.typeOf(~.MyPart) -- rotates the part
rotAngle := 90
else
if @.typeOf(~.MyPallet) -- rotates the pallet
rotAngle := -(4 * 360) -- minus (-) designates counterclockwise rotation
end
end
?.rotatePart(rotAngle)
?.rotatePart(rotAngle);
end;
Next, insert and configure the Line which accepts the parts from the Turnplate.
All you have to do here is to define the sensor which triggers moving the parts to the parallel station.
• Click the tab Controls.
• Right-click into the text box control and select Create Control.
• Copy the following source code and paste it. It determines how to move on the part or the pallet.
• Next, insert the parallel station into which Line1 moves the parts. You do not have to change any
of its settings. The TransferStation will enter the exit control of the parallel station automatically
once we configure the TransferStation.
o Drag the station from which the parts arrive, the ParallelProc in our case, onto the
TransferStation. This enters the exit control into the ParallelProc.
o Drag the station on which the target of the loading action (the pallet), the LinePallet in our
case, is located onto the TransferStation. Select the station type Load and enter the position
of the sensor on the LinePallet and click Apply. Adjust the position until it is located at the
position where it needs to be and click OK.
• Start the simulation and watch how the Turnplate rotates the part. You will not be able to see
anything with the default simulation speed setting, as the simulation runs too fast.
• To remedy this, you can reduce the simulation speed in a reset method.
EventController.Speed := 60;
• Start the simulation again and watch how the parts are first rotated to the right, moved to the
parallel station, and moved on to the transfer station, which loads them onto the pallet. The
loaded pallet is then fed back to the Turnplate, which rotates it four times around its center
to the left and them moves it on to shipping.
• Insert the line that feeds the parts to the Turntable. You can make it as long as you like, but you
do not have to change any of the other settings.
• Insert the Turntable and its direct successors in the sequence of stations. The Turntable feeds
these to configure its entry angle table and its exit angle table. In our model these successors
are the feeder lines of the Drains.
• Our Turntable is 4 meters long and has its rotation point in the center, i.e., at 2 meters.
• To connect the Turntable with its successors, select the Connector in the Toolbox and click the
end point of the Turntable. Drag the mouse to the starting point of the Line and click the left
mouse button. You’ll notice that the starting point of the Connector jumps to the left on the
rotation circle of the Turntable. This is because Plant Simulation computes the angle at which the
successor is located in the Frame in relation to the Turntable.
• To make the border around the Turntable proper wider to set if off against the feeder line, you can
change the pen weight. In our sample model we entered 4.
• Finally, configure the Drains and start the simulation. Watch how the part moves onto the
Turntable. It first rotates to the line FeederPartA, and moves the part onto it. It then returns
to its original position, picks up the next part, rotates to the line FeederPartA, and moves the
part onto it, and so on.
• To make the Turntable turn the part around before moving it onto the top feeder line, open the
Exit Angle Table and selectWhich side > MU leaves backwards for the line FeederPartA. Start
the simulation again and watch how the Turntable turns the part around. To better see this, we
colored the top part of our part red and the bottom part blue.
Also compare the sample model: Click the Window ribbon tab, clickStart Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Modeling in Tecnomatix Plant Simulation 2D
You can use the Electrical Overhead Monorail to transport goods flexible with an overhead rail
system within your plant. The Electrical Overhead Monorail consists of a rail system on which the
vehicles move independently under their own power. Employing the built-in switches, you can model
branching, with the built-in junctions you can rejoin the branched rails.
To add the Electrical Overhead Monorail objects to your simulation model, click Manage Class
Library > Library > Libraries > Standard Libraries > Free on the Home ribbon tab.
As we modeled the library Electrical Overhead Monorail mostly in 3D, select 2D and 3D in
the dialog when you create the new model.
• Insert a Track with a length of 2.5 meters as placeholder for the Lifters which we will insert later.
This placeholder facilitates inserting the rail systems and the flush fit of the rail segments. Type
in the anchor point height. We entered 5.
• Insert the two rail systems between which the Lifter lifts the Hangers and lowers them. It is easier
to activate the planning view on the tab View.
• Click the object Track on the tab EOM of the Toolbox to insert the lower rail. Type in the anchor
point height to place the rail up in the air instead of on the floor. We entered 5.
• Insert the second segment of the lower rail. Click the object Track on the tab EOM again. Type in
the same anchor point height as before. Connect the Tracks. Make sure that the Tracks all point
in one direction. The result looks like this in 2D:
• Insert the Lifter with the same width as the placeholder and delete the placeholder. We used the
default height of 15 meters, a width of 2.5 meters and a depth of 2 meters. Move the rails so
that they connect flush to the Lifter.
Now we set the attached lines. Drag the connected Tracks/rails over the object Lifter and drop
them there.
When you open the list of attached lines in the dialog of the Lifter, it looks like this.
Note that the Lifter automatically fills in the columns Type, Direction, and Stop Position when
you run the simulation.
• Click the object Track on the tab EOM of the Toolbox to create the upper rail. Type in the anchor
point height. We entered 9.
• Insert the second segment of the upper rail. Click the object Track on the tab EOM again. Type in
the same anchor point height as before. The result looks like this:
Add the new attached lines to the Lifter by dragging them onto the Lifter and dropping them there.
• Insert a Source which produces the parts and connect it with one of the attached lines on the
right-hand side. We selected Time of Creation > Number Adjustable and Amount > 2. We
select the object Hanger that is part of the library as the MU that is to be produced.
• Finally we have to set the attribute Destination of the objects of type Hanger. To do so we use
the two methods setTrack and setTrack1 in which we set the attribute Destination of the current
Hanger. As we want to use these methods as a front-trigger exit control, we have to move the
current Hanger. When you run the simulation, Plant Simulation enters these methods as exit
controls into the Tracks.
Our finished simulation model looks like this after we reduced the height of the Lifter to 12 meters and
changed the background color of the model:
In this example we demonstrate how to load and unload the moving object Clampshell of the
Electrical Overhead Monorail with the LoadStation. In addition we how to model smooth height
transitions with the object VerticalCurve.
As we modeled the library Electrical Overhead Monorail mostly in 3D, select 2D and 3D in
the dialog when you create the new model.
• Set the Hangers for the Transport and the Produced Part
In our first step we insert the rails of the Electrical Overhead Monorail, the LoadStations, and
stations to be loaded.
• Insert two Tracks with a length of 3.5 meters each as placeholders for the LoadStations which
we are going to insert later on. This placeholder facilitates inserting the rail systems and the
flush fit of the rail segments.
• Insert the rails/Tracks of the Electrical Overhead Monorail so that they match the figure below.
Type in the anchor point heights of the Tracks. We documented the different anchor point
heights and the lengths of the rail segments with an object of type Comment.
• Insert an object of type VerticalCurve between the objects Track2 and Track. We entered the
settings below into the dialog of the VerticalCurve.
The vertical curve compensates the difference in elevation from 9 meters of the object Track2 to 5
meters of the object Track. The result looks like this:
• Insert two LoadStations above the placeholders with the same widths as these and delete the
placeholders. We entered these settings into the LoadStations.
• Assign the rails/Tracks to the LoadStations by dragging them onto the LoadStations and dropping
them there.
• Click Open List of Attached Lines to check if the attached rails were assigned correctly. The
tables should look like this:
• Insert the stations which are to be loaded and unloaded: Insert a Source, two SingleProcs, and a
Drain. Connect the four objects as shown in the figure below.
In our second step we program the controls which make sure that the parts are moved correctly.
• First, we program the exit control of the SingleProc. Insert a Method and rename it to onExit.
Type in this source code:
waituntil LoadStation.canBeLoaded prio 1
-- now an empty hanger is located at the Loadstation
var loadingTime : time := 50
wait loadingTime
var Hanger := LoadStation.Lift.cont
@.move(Hanger)
-- move Hanger to Track1
LoadStation.loadFinished(Track1)
The loading time depends on the loading process as such. If you do not need a loading time,
comment this line out in the source code.
The parameter of the method loadFinished of the LoadStation is the destination to which the
Lift drives.
Assign the method onExit as the exit control to the SingleProc.
• Next, we program the method for unloading the object LoadStation1. Insert a Method and
rename it to unload. Type in this source code:
waituntil LoadStation1.canBeUnloaded prio 1
-- now now Hanger is located at LoadStation1
var unloadTime : time := 50
wait unloadTime
var Hanger := LoadStation1.Lift.cont
Hanger.cont.move(SingleProc1)
LoadStation1.unloadFinished(Track2)
self.methcall(10)
• In addition we need an Init-Method which calls the method unload, and two methods which
set the destination of the Hangers.
Insert a Method and rename it to Init. Type in this source code:
&unload.methcall(10)
• We also need two methods to designate the target stations. Insert two Methods and rename
them to setTargetStation and setTargetStation1.
• Double-click the object Track1, change to the tab Controls and click Sensors. Click New to
create a new sensor. Select a relative position of 0.5. Select the method setTargetStation1
as the Control.
• Double-click the object Track, change to the tab Controls and click Sensors. Click New to
create a new sensor. Select a relative position of 0.5. Select the method setTargetStation
as the Control.
Set the Hangers for the Transport and the Produced Part
In our last step we feed the Hangers for transporting our parts into the Electrical Overhead Monorail.
• Insert a Source next to the VerticalCurve. Connect the Source with the rail Track1.
• Double-click the icon of the Source and configure it. Click the tab Attributes, select the Time of
creation > Number Adjustable and type in an amount of 4.
• Select the MU Clampshell, which is part of the library Electrical Overhead Monorail, as the MU.
• Finally, we have to designate the part that is to be produced and transported. To do so, we
double-clicked the Source next to the SingleProc and selected the MU > Buggy, which we
received from a colleague.
• The finished model looks like this in 3D with the simulation running:
You can use the Kanban Objects to model production facilities using pull strategies. The customer
order at the end of the production plant determines which parts have to be produced.
To add the Kanban objects to your simulation model, click Manage Class Library > Libraries >
Standard Libraries > Free > Kanban on the Home ribbon tab.
We modeled the Kanban objects in Frames and with the object Dialog. For this reason
they do not use the Siemens PLM standard design, but the Windows design.
In our very basic simulation model a KanbanSingleProc at the end of a production line orders the
parts, which the Assembly station, located directly before the KanbanSingleProc in the sequence
of stations in the plant, requires to assemble cars. Two sub-lines feed wheels for two differing car
models via a KanbanBuffer and two KanbanSources into the plant.
In addition to the stations we inserted above, we need:
• A control, which orders the wheels to be attached to the car, when it is ready to be moved to the
Assembly station. We enter this control as an exit control into the SingleProc Processing in
the bottom line.
• A bill of materials, i.e., a TableFile, which tells how many and which type of wheel the two car
models need.
• Configure the Kanban Buffer which Manages Storing and Ordering of Parts
We’ll start modeling our Kanban system by establishing the sequence of stations within the plant.
• Insert a KanbanSource and a KanbanBuffer, which feed the wheels for our cars to the Assembly
station.
• Insert another KanbanSource, which produces the cars to which the wheels from the other
line are attached. Insert a processing station, a SingleProc in our case, to the right of the
KanbanSource.
• Insert an Assembly Station to the right of the two feeding lines. It attaches the wheels to the
cars.
• Insert a KanbanSingleProc and a Drain .This KanbanSingleProc is the crucial station of the
entire system as it orders the parts to be produced and assembled.
Make sure that you connect the bottom line to the Assembly station before connecting
the top line otherwise the wheels will not be loaded onto the truck correctly!
To view the order in which you connect the stations, click Options > Show
Predecessors in the General ribbon tab.
After inserting the required objects into our simulation model, we have to configure them.
Go to Configure the Kanban Buffer which Manages Storing and Ordering of Parts
We want the Assembly Station station to put four wheels, which it receives from the line at the
top of the model, onto the cars, which the bottom line delivers. We choose these settings on the
tab Attributes.
• Select Predecessors from the drop-down list Assembly table with. Then, click Open and enter
the number of the predecessor into column 1 and the number of wheels into column 2. We want
to assemble 4 wheels which predecessor 2 delivers.
• As the main part, the car, comes from predecessor 1, we can use the default setting 1 for Main
MU from predecessor.
• To put the wheels onto the car, select Attach MUs is theAssembly mode.
• To send the car on to the next station, select Main MU is the Exiting MU.
To configure the KanbanSingleProc, which is the crucial station of the entire system as it orders the
parts to be produced and assembled, when they are needed, double-click its icon .
• Click Insert New Part on the tab Part Information. Enter the types of parts you want to order
and the supplier. We entered MyCarA and the KanbanSource Cars is the station producing it.
To delete an entry from this table, select Tools > Open Part Information Table and
delete the respective row from that TableFile. Instead, you can also double-click the
entry on the tab, delete the EntityType and then close the dialog.
• As we want to define a sequence of orders, we have to select the check box Sequence on the
tab Advanced. We also want the sequence of orders to be repeated, we have to make sure that
the check box Cyclical is selected. Then, click Open and enter the sequence into the table. We
entered MyCarA, MyCarB and then MyCarA again.
To configure the KanbanSources Wheels and Cars, which produce the parts, when the
KanbanSingleProc and the KanbanBuffer order them, double-click their icon .
• Click Insert New Part on the tab Part Information of the KanbanSource named Wheels. Enter
the type of parts you want to order and which MU class you want to use. We entered MyWheelA
and selected the MU class Entity.
• Click Insert New Part on the tab Part Information of the KanbanSource named Cars. Enter the
types of parts you want to order and which MU class you want to use. We entered MyCarA and
the MU type Transporter.
Configure the Kanban Buffer Which Manages Storing and Ordering of Parts
To configure the KanbanBuffer, which temporarily stores parts, and orders replenishment when the
stock dwindles, double-click its icon .
• Click Insert New Part on the tab Part Information of the KanbanBuffer. Enter the type of part
you want to order, the amount of parts you want to keep in stock and the station which produces
the parts. For MyWheelA we entered the information shown in the screenshot below.
• A bill of materials, i.e., a TableFile, which tells how many and which type of wheel the different
car models need.
To accomplish this, insert a Method and a TableFile into the simulation model.
To make the KanbanBuffer order the type of wheels, MyWheelA or MyWheelB, for the car models,
MyCarA or MyCarB, we entered this source code into the method MyExitControl. They instruct the
buffer to get the correct type of wheels according to the mapping you are going to enter into the
TableFile BOM (bill of materials) in the next step. It then moves the part on to the successor.
The source code in SimTalk 2.0 notation looks like this:
var requiredWheelType: string
requiredWheelType := BOM[1,@.EntityType]
KanbanBuffer.requestParts(requiredWheelType, 4)
@.move
on the table, activate the column index and the row index.
Then, enter the Method is the exit control into the SingleProcProcessing.
• The Track and the TwoLaneTrack are passive material flow objects without a propulsion system
of their own. They mainly serve as the route on which the active material flow object Transporter
moves, forward or in reverse.
When modeling your transport system keep these characteristics of Line, Track and TwoLaneTrack in
mind:
• All three are length-oriented objects, i.e., Plant Simulation uses their own Length, and the MU
length of the MUs, which you enter into their dialog windows to determine how many MUs they
can hold. The point-oriented material flow objects on the other hand, such as the SingleProc, the
ParallelProc, etc. do not use a length.
• You can Define Controls for Length-Oriented Objects and define sensors for them, compare
Create Sensors.
• Parts transfer from a point-oriented object to a length-oriented object in their entirety, i.e., they are
located on Line and Track in their full length as soon as their tip has moved onto these objects.
• Parts transfer from one length-oriented object to another length-oriented object with the speed
(Speed) you enter into the dialog of the length-oriented object. This is of importance, when you
employ entrance controls.
• To model simple transport systems, you will use the active object Line.
• To model cross-transfer systems, AGV systems, cranes, etc. you will use the passive object
Track.
• To turn the MU in the direction of motion of the flow of materials, when it turns a curve, select
Rotate movables.
• To use the length of the curve in the layout within the Frame is the actual length of the Track, the
Line or the FootPath, select Transfer length . When the dialog is open, Plant
Simulation enters this value into the textbox Length.
To be able to edit the length, clear the check box . Then you can type in a new
length or make slight adjustments to the length of the inserted object.
To create a class from a Line, Turntable, Track, TwoLaneTrack or FootPath, model this class in the
Frame, and then drag this object from the Frame to the Class Library. You can then insert this class
into the active and into any other simulation model.
You can:
• Insert Curved and Straight Segments
• Draw Straight and Curved Segments with a 90° Angle (Fixed Values)
• Make sure that Curve mode in the class of the object, either in the Class Libraryor in the Toolbox,
is active . In Curve mode Plant Simulationanimates the MUs using the number you
entered into the text box Animate on every xth pixel.
• Click the Track, the TwoLaneTrack, the Line, the FootPath, the Pipe in the Toolbox, and drag
the mouse to the Frame window and click the point where the object is to start. This opens the
dialog Edit Parameters of Curve.
When you drag a length-oriented object from the Class Library to the Frame, Plant
Simulation inserts it as a straight segment . You can then append points to it or
insert points between existing anchor points.
To draw a straight segment, click a second time at the position at which you want the end of the
segment to be. To draw a curved segment, hold down Ctrl, drag the mouse down to draw the
curve downward, and click the left mouse button once to set the curve.
To draw the next straight segment of the line, release Ctrl, drag the mouse to the end point of
the line and click the left mouse button once.
To draw a continuous sequence of straight and curved segments, for example for continuous
conveyors, click on an existing curved or straight end segment to start a new segment. Plant
Simulation then uses the end coordinate of the first sequence as the start coordinate of the second
sequence and automatically connects the two. You can prevent this by holding down the Altkey.
Click the right mouse button once or click Finish to exit Insert mode and to insert the
curve you drew. This also closes the dialog Edit Parameters of Curve.
Press Esc or click Abort to terminate curve mode without inserting the curve.
Click Delete Last Point to delete the most recently inserted anchor point.
When the grid is active , Plant Simulation places the points that make up the line onto grid
points, provided this is possible. For this fixed vales take precedence. When you enter a radius of
2.5 meters, for example, the end point of the arc will not be placed onto a grid point. This results
in a non-tangential transition between the end of the arc and the end of the next straight segment,
which will be placed onto a grid point again.
When you insert a straight segment after a curved segment, Plant Simulation now always
enforces a tangential angle of 0°.
To insert the curved Line, TwoLaneTrack, Track or FootPath with fixed values, enter them into
the text boxes in the dialog and select the check box fixed of the respective item to tell Plant
Simulation that you want to use these fixed values.
• For a line segment, you can enter the Line length in world coordinates and the Tangential
angle as compared to the previous segment.
For both segment types you can enter an anchor point height. It determines the height, i.e., the
distance from the floor, to the next anchor point. It is, for example, especially useful when you
model a ramp for material handling equipment.
• For a curved segment, you can enter the Arc length, its Radius, and its Curve angle in
degrees as compared to the previous segment.
The Curve angle is the angle that is formed by the radius between the start point A and the
end point B of the arc segment. A positive number designates a clockwise angle. A negative
number a counterclockwise angle.
When you define a curve angle of 360°, Plant Simulation automatically connects the
end point the curve with its starting point.
• For a following straight segment you can enter the Tangential angle and the Line length.
The tangential angle designates the change in the tangential direction. Enter a positive number
for a clockwise angle. Enter a negative number for a counterclockwise angle. Normally the
tangential angle is relative to the previous direction of the curved segment. For the first segment
the tangential angle is the angle to the positive x direction.
When you insert a straight segment after a curved segment, Plant Simulation always enforces a
tangential angle of 0 degrees.
• When you move an object or a vector graphics object in the Frame with drag-and-drop.
• When you insert an anchor point of a Connector or of a curved object into the Frame.
• When you move an anchor point of a Connector or of a curved object with drag-and-drop.
Inserting a length-oriented curved object in the 3D Viewer works along the same lines. When you
insert a length-oriented curved object, the 3D Viewer shows the extrusion path of this object. The
path of the polycurve initially just consists of the starting point:
• Either the insertion point, i.e., the position on the grid on which you click or
• The end point of the picked object, which is its exit projected onto the XY layer.
• The 3D Viewer shows a movable line, which connects a path tool at the starting point with
another path tool attached to the cursor.
• You insert straight path segments by clicking the left mouse button. You insert curved path
segments by holding down the Shift key and by clicking the left mouse button.
• You terminate curve mode by clicking the right mouse button. In 3D, you can also do this
by pressing the Esc key.
• The 3D Viewer will not insert a length-oriented object, if the curved object does not consist of at
least two segments/points after you finished or terminated inserting the curved object.
In addition, you can insert vertical curve segments into polycurves with the mouse:
• Select the length-oriented object which you want to insert into the Frame. In our example we
insert a Line.
• Press and hold down the Up arrow on the keyboard to insert a curve pointing upwards in the Z
dimension. Click the Down arrow to insert a curve pointing downwards in the Z dimension.
• Enter the radius and the angle of the segment into the dialog Edit Parameter of Curve.
• Click the mouse into the scene to insert the segment. The result looks like this:
Go to Draw Straight and Curved Segments with a 90° Angle (Fixed Values)
Go to Draw Straight and Curved Segments without Fixed Values
Go to Change the Shape of a Segment
Go to Create a Curved Object with SimTalk Commands
Go to Import Settings of a Curved Object from Another Simulation Model
Go to Keyboard Shortcuts for Inserting a Curved Object
Compare Add Animations and Interactions to the Simulation Objects
Compare Edit a Curved Path with the Mouse
Back to Working with Curved Objects
Draw Straight and Curved Segments with a 90° Angle (Fixed Values)
• Drag the mouse to the Frame window to the point where you would like to start the straight
segment of the line.
• Click the left mouse button once to set the starting point of the line.
• Plant Simulation opens the dialog Edit Parameters of Curve. Here, we defined default settings
for inserting a curve with a 90° angle, i.e., a fixed tangential angle of 0°, a fixed curve angle of
90° and a fixed radius of 2 meters.
You can either apply these values or you can enter a different radius to make the curve wider. To
do so, drag the mouse to the dialog and enter another value into the text box.
Plant Simulation saves the last set of settings in the dialog, so that you can re-use
them the next time you insert a curved object.
To draw the curve, drag the mouse back to the Frame window, hold down Ctrl, drag the mouse
down to draw the curve downward, and click the left mouse button once to set the curve.
To draw a curve pointing to the left: Drag the mouse back to the Frame window and hold down
Ctrl. Then drag the mouse down to draw the curve downward, and click the left mouse button
once to set the curve.
• To draw the next straight segment of the line, release Ctrl, drag the mouse to the end point of
the line and click the left mouse button once.
• Click the right mouse button once to exit Insert mode. This also closes the dialog Edit
Parameters of Curve.
When the grid is active , Plant Simulation places the points that make up the line onto grid points,
provided this is possible. For this fixed vales take precedence. When you enter a radius of 2.5
meters, for example, the end point of the arc will not be placed onto a grid point. This results in a
non-tangential transition between the end of the arc and the end of the next straight segment, which
will be placed onto a grid point again.
To get a tangential transition, you can deactivate Snap to Grid by holding down Alt, when you click
the left mouse button to set the end point of the second straight segment.
To draw a curved segment without using fixed values, you will have to click the left mouse button
three times. To activate curve mode, you have to hold down Ctrl, when you click the mouse button
the first time!
• The first mouse click sets the starting point.
• The third mouse click sets the arc length or the curve angle respectively.
• Drag the mouse in a direction of your choice and as far as you want the segment to be long.
Click the left mouse button again to set the first anchor point. Now, Plant Simulation draws
the segment with the settings you selected.
• Continue this until the object has the length and the shape you want.
• To set the end point of the segment, and to exit Insert mode, click the right mouse button.
To draw a curved segment of Track, TwoLaneTrack, Line or FootPath without using fixed values:
• To set the starting point of the curved segment, hold down Ctrl and click the left mouse button
once.
You will notice that the text boxes now show the actual values of the curve segment.
• To set the tangential angle, drag the mouse in a direction of your choice.
• To set the radius of the curved segment continue dragging the mouse until the curve has the
radius you want it to be and click the left mouse button.
• To set the arc length, continue dragging the mouse until the curve is as long as you want it to
be and click the left mouse button.
• To set the end point of the segment, click the right mouse button.
• To delete the last anchor point from the curve, drag the mouse pointer from the Frame window to
the dialog Edit Parameters of Curve and click Delete Last Point.
Naturally you can combine both techniques to insert curved and straight segments in any sequence
you like.
Go to Insert Curved and Straight Segments
Go to Draw Straight and Curved Segments with a 90° Angle (Fixed Values)
Go to Change the Shape of a Segment
Go to Create a Curved Object with SimTalk Commands
Go to Keyboard Shortcuts for Inserting a Curved Object
Back to Working with Curved Objects
• To change the shape of the straight segment, click an anchor point with the left mouse button, and
drag it up and down or left and right until the shape meets your needs. Depending on how far you
moved the anchor point, Plant Simulation lengthens the segment and compresses or expands it.
• To delete an anchor point from the curve, right-click it and select Delete Point on the context menu.
• To insert an anchor point between two existing anchor points, right-click at the location between
those points and select Insert Point on the context menu.
• To append anchor points to the end of the curve, right-click anywhere on the curve and select
Append Segments on the context menu. Add additional anchor point with the dialog Edit
Parameters of Curve.
• To change the direction of motion of a curved object, i.e., to make the last point of the object the
first point, right-click the object and select Reverse Segments. This is especially handy if you
want to mirror the layout of a production line by copying it and then reversing the direction of
motion of the mirrored line to ensure a circular flow of materials.
• To flip the selected object on the y-axis, right-click it and select Mirror Vertically.
• To flip the selected object on the x-axis, right-click it and select Mirror Horizontally.
• To move the entire curved Track, TwoLaneTrack, Line or FootPath, click it once with the left
mouse button and drag the mouse up or down or left or right. You can also use the arrow keys
to move the object one pixel at a time or hold down Shift and press an arrow key to move the
object one grid unit at a time.
• To delete the entire curved Track, TwoLaneTrack, Line or FootPath, click it once with the left
mouse button and press Delete.
• To extend an existing curved Track, TwoLaneTrack, Line or FootPath, without adding a new
anchor point, grab the handle with the left mouse button and drag the mouse to the new
location.
• To link two or more existing curved Tracks, TwoLaneTracks, Lines or FootPaths, insert a
Connector between them.
• To insert and connect another straight length-oriented object with an existing curved Track,
TwoLaneTrack, Line or FootPath, click with the left mouse button on the end of the first object,
move the mouse to the beginning of the second object and click the mouse button.
Naturally, you can also create a curved object using the SimTalk commands derive and duplicate.
var obj := .Materialflow.Line.derive(.Models.Frame)
obj.Coordinate3D := makeArray(5, 5, 0)
Import Settings of a Curved Object from Another Simulation Model shows how you can use the
methods getCurveSegments, and setCurveSegments.
Back to Working with Curved Objects
To transfer the settings of a curved object from one simulation model to another, we first have to write
the segments table into a Variable with a Method. Then, we export this Variable, so that we can
import it into the other model.
Executing the method, exportMySegments in our example, writes this data into the Variable,
MySegmentsTable in our example.
Clicking Open opens the segments table. Here you can also save the segments table as an
object file and re-use these settings in other simulation models.
• If you want to use the segments table in another Frame in the same simulation model, copy the
Variable, MySegmentsTable in our example, and paste it into that Frame, Frame1 in our example.
Then, insert a Method into Frame1.
If you want to use these settings in a totally different simulation model, insert a TableFile into
that model. Save the segments table, MySegmentsTable in our example, as an object file(.obj).
Open the exported segments in that TableFile.
• Program the Method to overwrite the settings of the Line, which we inserted, with the exported
settings. Run the method, importMySegments in our example.
Line.setCurveSegments(MySegmentsTable)
When Curve mode is active these keyboard shortcuts apply, even before you click a mouse button
for the first time.
To do this Press/click
The MUs are transferred from the point-oriented station SP1 into the length-oriented Line, which then
transports them to the point-oriented station SP2.
The Line moves the MUs from the station SP1 with the Final speed we enter to the station SP2. Plant
Simulation computes the transport Time using the final speed and the Length of the Line. Note that
speed, length and transport time depend on each other. When you change speed or length, Plant
Simulation recalculates the transport time anew. Changing the transport time also changes the speed.
You can also use the Line to model an accumulating or a non-accumulating transport system
between stations.
• To make the MUs accumulate on the Line, select the check box Accumulating. This allows the
MUs to move front to end to each other, when the exit of the conveyor is blocked.
• To make the MUs retain their distance to each other, i.e., make all succeeding MUs stop moving
when the preceding MU cannot exit, clear the check box to deactivate Accumulating.
As we want to apply the default behavior of the Line, we do not change its Capacity of -1, which
stands for an infinite number of MUs. This way its capacity is defined by its own length and by
the length of the parts (MU), which it transports.
In our sample we entered an Availability of 85 percent and an MTTR of 360 seconds for the two
SingleProcs, SP1 and SP2.
When you do not decouple the stations, the Line behaves like a belt conveyor, meaning that the
belt stops when an MU blocks the exit of the Line and restarts as soon as the MU at the exit has
moved on to the successor.
Go to Model a Fixed Gap or a No Gap Conveyor
Back to Model a Simple Conveyor Between Two Stations
Back to Modeling a Transport System with Active Objects of Type Line
You can use the Line to model conveyors with gaps between the parts moving on it. The gap is the
distance between the rear of the preceding part and the front of the succeeding part.
• The default setting of the Line for the MU distance is -1, meaning that the feature MU distance
is turned off and that the parts can move onto the conveyor as soon as they arrive from the
predecessor.
• A conveyor with no gap between the parts does not allow a space between them, when you
enter an MU distance of 0.
• A conveyor with a mixed gap ensures that the space between the parts moving on it always is the
same. The fixed gap causes the conveyor to frequently stop though.
In the example below we typed in 0.5 as the MU distance, which ensures a space of 0.5 meters
between the transported parts.
• A conveyor with a minimum gap ensures that the space between the parts moving on it will not
become less than the minimum gap. It prevents the conveyor from stopping and ensures that all
parts exit the conveyor if it transports a certain number of parts.
In our example we selected the MU distance type > Minimum Gap and typed in 1 as the MU
distance, which ensures a minimum space of 1 meter between the transported parts.
When running the simulation in our sample model, you’ll notice the continuous flow of parts on
the minimum gap conveyor and on the conveyor which does not use an MU distance, while the
no gap conveyor and the mixed gap conveyor stop quite often, denoted by the waiting parts.
When you model transport systems with passive objects, you will employ the Track or the
TwoLaneTrack and the Transporter .
As the Track is a passive object, you cannot just connect it with two stations, but have to make
sure that a Transporter is available, plus you have to load and unload this Transporter. To prevent
the MUs from automatically transferring from the preceding station, in our example SP1, onto the
Track, do not connect them with a Connector.
• Use the SimTalk method create and enter this command into the init method of your simulation
model:
.MUs.Transporter.create(Track)
This inserts a Transporter at the end of the Track. If you want to insert a Transporter anywhere
else on the Track, enter a position into the Method. This example creates the Transporter 5.5
meters along the length of the Track:
.MUs.Transporter.create(Track, 5.5)
As the Transporter is to move parts from station to station, SP1 and SP2 in our example, you first
have to produce those parts and then load them onto the Transporter at the station SP1 and unload
them at the station SP2. For this you will program a control in a Method and enter its name into the
respective text box on the tab Controls.
Without entering a control, the Transporter must moves to the end of the Track and stops there. To
make the Transporter move back to the beginning of the Track, once it unloaded the parts, select the
check box Front and enter these statements into the exit control, FrontOutCtrl in our example:
if @.empty
@.backwards := true
Once the Transporter backed up to the beginning of the Track, Plant Simulation activates the rear
backward exit control, when you select Rear and enter the name of the Method into the text box
Backward exit. This control has to accomplish these tasks:
• Wait until an MU is ready to exit the station, SP1 in our example.
end;
Line 3 tells Plant Simulation to wait until an MU is located on the station SP1 and is processed all
the way. Line 4 loads the MU onto the Transporter. Note that we use the anonymous identifier @ to
address the Transporter. Line 5 tells the Transporter to move forward again to the end of the Track.
When the Transporter reaches the end of the Track you have to accomplish these tasks:
• Wait until the station, SP2 in our example, is Empty.
is
do
if @.empty then
@.backwards := true;
else
waituntil SP2.empty prio 1;
@.cont.move(SP2);
@.backwards := true;
end;
end;
The cross-sliding car facilitates quick, easy and cost-effective cross transport if other materials
handling equipment obstructs the way. It is mainly used for moving the conveyed parts from one
conveyor onto another one.
We modeled the CrossSlidingCar based on the Track is an application object to be able to fully use the
curve property of the Track. The Transporter, which transports the parts, is part of the Cross Sliding
Car (CSC). It makes extensive use of the loading space of type Line. It is an active length-oriented
loading space similar to a conveyor being part of the loading space, which transports the loaded
parts forwards or backwards. We use sensors in the cross-sliding car to determine the position onto
which the parts are placed on the loading space of the cross-sliding car.
We modeled the cross-sliding car in Frames and with the object Dialog. For this reason it
do not use the Siemens PLM standard design, but the Windows design.
• Drag the feeding belt into the cross-sliding car and drop it there. It then creates the sensors on the
cross-sliding car. To view the positions, click Track Attributes > Open List of Attached Lines.
• Then, you have to make the Source produces parts that have the user-defined attribute
Destination. This attribute of data type string contains the target object to which the part is to
be transported, in our example the Line AA.
These sample applications show some possible fields of application of the cross-sliding car. You can:
• Model a Simple Cross-sliding Car
This sample model shows how the parts, which the Source produces according to the PartsList, are
placed onto the center of the CrossSlidingCar and are then distributed to Line2, Line3, and Line4,
Line1 and Line3 are located at the same position on the track of the cross-sliding car. In this case
the CSC must stops and slides the part to the other side. The time the part needs to move onto the
cross-sliding car and off of it depends on the width of the cross-sliding car and the conveying speed.
• Insert the lines Line1, Line2, Line3, and Line4 into your simulation model.
• Insert the cross-sliding car, starting below Line4 and ending beyond Line2.
Plant Simulation inserts the cross-sliding car with the default width of the Track in
which it is based. As soon as you run the simulation, Plant Simulation adjusts the width
of the cross-sliding car to the length of the transported part.
• Drag all lines onto the cross-sliding car and drop them there.
• If you would like to fine-tune the positions of the sensors on the Lines, change to the tab Track
Attributes and click Open List of Attached Lines. Then edit the sensor positions. When
doing so, make sure that the Track of the cross-sliding car is long enough to accommodate
the new sensor positions.
• Finally, enter an exit control that selects the next transport order. In our sample model we named
the control partHere.
The source code in SimTalk 2.0 notation looks like this:
var part,caller,target: object part := @ caller := ? target := part.destination
CSC.transportOrder(caller, target, part, 1)
This sample model shows how the CrossSlidingCar distributes parts and brings parts products from
several feeding conveyors.
The cross-sliding car CSC receives driving orders from the two feeding conveyors Line and Line1. It
then distributes the parts onto the three Lines AA, BB, and CC. The method setNewTarget sets the
destination for the products at the sensor positions.
The source code of the Method setNewTarget looks like this:
-- SimTalk 2.0 notation
param sensorID: integer
@.destination.DD
-- SimTalk 1.0 notation
sensorID : integer
is
do
@.destination.DD;
end;
This sample model uses a similar layout as the model shown in Model a Cross-sliding Car that
Distributes and Brings Together Parts. The main difference is that the CrossSlidingCar CSC1 is
controlled by an application-specific strategy.
This strategy, which we programmed in the method myStrategy, ensures that the cross-sliding car
CSC1 first unloads the arriving parts from the Line AA, then from the Line BB and finally from the
Line CC. To do so, we use the internal order list of the cross-sliding car, which is shown below. The
order list is a user-defined attribute of the object cross-sliding car.
It contains the order date and time, the source, i.e., the Line at which the cross-sliding car picks up
the part, the destination, i.e., the Line st which it is to deliver the part, the priority of the order, which
we do not use yet, and the part to be transported.
The method myStrategy dorts this table ascending according to column 2 ( source) and returns the
row with the number 1. Therefore the first order on the table will be executed.
Creating a 3D model from our 2D model allows us to visualize the flow of parts even better. To do so:
• Click Activate 3D on the Window ribbon tab.
• Click the tab Class Library, open the folder Models, and click our model CSC_Demo_3 with the
right mouse button. Select Open in 3D Window.
When your simulation model requires a portal crane or an overhead crane, you can use the
application object StorageCrane . With it you can model four basic scenarios:
• Automatically Place Parts into Stock and Remove Parts from Stock
• Automatically Place Parts into Stock, Remove Parts from Stock on Demand
• Place Parts into Stock on Demand, Remove Parts from Stock Automatically
• Place Parts into Stock on Demand, Remove Parts from Stock on Demand
• Temporarily Store Parts, Put together the Order, Remove the Parts from Stock
We modeled the StorageCrane in Frames and with the object Dialog. For this reason it do
not use the Siemens PLM standard design, but the Windows design.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Automatically Place Parts into Stock and Remove Parts from Stock
Your Plant Simulation license determines how you can use the StorageCrane.
To model a portal crane, which automatically places parts into stock and which automatically removes
parts from stock, proceed like this:
• Insert the StorageCrane into your simulation model. Connect it with its predecessor and
with its successor.
• Double-click the StorageCrane to open its dialog window. Define its properties, such as its size,
the number of storage places, etc.
• Select the check box Remove after this time on the tab Removal. Then, enter the time after
which the part is to be removed from stock. Note that this check box activates automatic stocking!
When you select it, the removal orders have the highest priority (100).
• Make sure that the check box Define your own method for searching an available location is not
selected. When it is cleared, the internal mechanism of the crane automatically searches for an
available storage location starting at the largest coordinate on the y-axis and the x-axis on the
bottom level of the storage area and places the part onto it. It then proceeds to fill the free storage
location toward the smaller coordinates on the y-axis. Then it goes to the second but largest
coordinate on the x-axis and the y-axis and fills the free storage places, and so on. When the
bottom level of the storage area is full, it starts filling the second level, i.e., the z-dimension (Stack
height), starting at the largest coordinate on the y-axis and the x-axis, and so on.
• Insert an EventController into the Frame, start the simulation and watch the crane place parts into
stock and remove them from stock without you having to interfere.
• Click the tab Statistics and check how many parts the portal crane placed into storage and
how many it removed from storage.
Automatically Place Parts into Stock, Remove Parts from Stock on Demand
To model a portal crane, which automatically places parts into stock and which removes parts from
stock on demand, proceed like this:
• Insert the StorageCrane into your simulation model. Connect it with its predecessor.
• Double-click the StorageCrane to open its dialog window. Define its properties, such as its size,
the number of storage places, etc.
• The successor has to ask the crane to remove parts from stock. For this you will employ the
method getPart. In our example the crane removes 4 parts of type Entity with the priority 20
from the store.
is
do
@.move;
if self.~.empty then
PortalCrane.getPart("Entity", 4,20);
end;
end;
• Insert an EventController into the Frame, start the simulation and watch the crane place parts into
stock and remove them from stock.
• Click the tab Statistics and check how many parts the crane placed into storage and how many it
removed from storage.
Place Parts into Stock on Demand, Remove Parts from Stock Automatically
To model a portal crane, which places parts into stock on demand and which automatically removes
parts from stock, proceed like this:
• Insert the StorageCrane into your simulation model. Connect it with its successor.
• Double-click the StorageCrane to open its dialog window. Define its properties, such as its size,
the number of storage places, etc.
• The predecessor has to ask the crane to place the parts into stock. For this you will employ the
method storePart. The instruction below moves the part (@) onto the entry place of the crane. The
entry place of the crane then enters an order to move the part into its order list. It fulfills the order
with the priority you enter, in our example priority 1.
• Select the check box Remove after this time on the tab Removal. Then, enter the time after
which the part is to be removed from stock. Note that this check box activates automatic stocking!
When you select it, the removal orders have the highest priority (100).
• Insert an EventController into the Frame, start the simulation and watch the crane place parts into
stock and remove them from stock.
• Click the tab Statistics and check how many parts the crane placed into storage and how many it
removed from storage.
Place Parts into Stock on Demand, Remove Parts from Stock on Demand
To model a portal crane, which places parts into stock on demand and which removes parts from
stock on demand, proceed like this:
• Double-click the StorageCrane to open its dialog window. Define its properties, such as its size,
the number of storage places, etc.
• The predecessor has to ask the crane to place the parts into stock. For this you will employ the
method storePart. The instruction below moves the part (@) onto the entry place of the crane. The
entry place of the crane then enters an order to move the part into its order list. It fulfills the order
with the priority you enter, in our example priority 1.
• The successor has to ask the crane to remove parts from stock. For this you will employ the
method getPart. In our example the crane retrieves 4 parts of type Entity from the store. The
crane enters this order with the priority 20 into its order list.
• Insert an EventController into the Frame, start the simulation and watch the crane place parts into
stock and remove them from stock.
• Click the tab Statistics and check how many parts the portal crane placed into storage and
how many it removed from storage.
Temporarily Store Parts, Put together the Order, Remove the Parts from Stock
Temporarily Store Parts Put Together the Order Remove the Parts From Stock
Suppose you have to combine parts within a production plant to corresponding orders. To facilitate
this, each part has an attribute called OrderNo, which designates the order number. The parts, which
are to be combined into an order, arrive in an unordered sequence. They have to be placed into
intermediate storage until all parts of the order are in stock. Then, the parts of the complete order can
be retrieved from stock. Each order contains a different number of parts. The attribute OrderQuantity,
which each part has, tells how many parts belong to an order.
To solve this task, we will demonstrate how to:
• Define How the Source Creates Parts and Moves Them On
The method ExitCtrl checks if the value of the Variable, which shows the number of parts which were
created for an order, is the same as the number of parts which was actually ordered. When this is the
case, Plant Simulation increases the order number by 1. It also determines the order size, between
1 and 10 parts, using a uniform distribution. The bounds of the distribution, 1 and 11, are never
reached. The mathematical function floor computes the next-lower value.
The source code in SimTalk 2.0 notation looks like this:
param App: object
App := self.~
if App.currNo=App.OrderQuantity
App.OrderNo := App.OrderNo+1
App.currNo := 1
App.OrderQuantity := floor( z_uniform( 3, 1, 11 ))
else
App.currNo := App.currNo+1
end
@.createAttr("OrderNo", "integer")
@.createAttr("Quantity", "integer")
@.OrderNo := App.OrderNo
@.Quantity := App.OrderQuantity
@.name := "Order_"+to_str(App.orderNo)
@.OrderNo := App.OrderNo;
@.Quantity := App.OrderQuantity;
@.name := "Order_"+to_str(App.orderNo);
end;
The Method then creates the attributes OrderNo and OrderQuantity, which contain the number of the
order and the size of the order. Finally, the Method sets the name of the part to the order number.
Back to Temporarily Store Parts, Put together the Order, Remove the Parts from Stock
The second station in the sequence of stations, the ParallelProc, shuffles the sequence of orders.
First, we define a capacity of 100 parts by entering 10 for the x-dimension and 10 for the y-dimension.
Then, we select the Normal distribution for the processing time. We enter a mean value of 10 minutes,
and a sigma of 5 minutes. This way the processing time will be calculated anew for each incoming
part and the parts will thus be shuffled.
Back to Temporarily Store Parts, Put together the Order, Remove the Parts from Stock
From the Shuffle station the parts move on to the crane. It places them into intermediate storage until
all parts of an order are in stock. The crane then removes the completed order from stock.
As we ourselves want to determine how the crane places parts into stock, we select the check
box Define your own method for searching an available location. We then enter the name of
the Method , in which we want to program our storage strategy: myStrategy. Finally, we type in
our source code with the statements.
To format this Method, so that is has the correct format for our purpose, we can either click OK or
Apply. The for loops, together with the built-in method placeIsFree, first search for a free storage
place for stocking the parts.
The source code in SimTalk 2.0 notation looks like this:
param byref x1,y1,z1: integer, part: object -> boolean
-- search a free storage place
for var k := 1 to crane.getStoreZDim
for var i := crane.getStoreXDim downto 1
for var j := crane.getStoreYDim downto 1
if crane.placeIsFree(i,j,k)
x1 := i
y1 := j
z1 := k
return true
end
next
next
next
return false
end
As soon as a free place is available, the method transferToStock, which we programmed, places the
part into stock.
The source code in SimTalk 2.0 notation looks like this:
param part: object, x1,y1,z1: integer
var order : string
var row : integer
var location :table
InventoryList.setCursor(1,1)
if InventoryList.find({1,1}..{*,*}, part.name)
row := InventoryList.CursorY
else
row := InventoryList.YDim+1
InventoryList["quantity", row] := part.quantity
InventoryList["OrderNo", row] := part.name
InventoryList["number", row] := 0
end
&releaseFromStock.newCallChain(row)
end
The Method first checks the InventoryList of a part with this order number already exists in the
store. When this is not the case, the crane enters the order number and the order quantity into
the InventoryList. As you remember, we defined order number and order quantity as user-defined
attributes for the part. The crane then increases the number of parts in the store by 1. When the
number of stored parts is the same as the number of ordered parts, the crane removes the parts of
this order from stock. As this Method call may only be activated after the part has been transferred to
stock for good, we employ the method newCallChain.
Back to Temporarily Store Parts, Put together the Order, Remove the Parts from Stock
This Method retrieves all parts of a certain type, identified by its name, employing the built-in method
getPart. As we chose the name of the part to be identical with the order number, we can directly
retrieve the order number and the order quantity. After this, the crane deletes the order number
from the InventoryList.
Back to Temporarily Store Parts, Put together the Order, Remove the Parts from Stock
Back to Model a Facility Using a Storage Crane
This example demonstrates how to load a train with a storage crane. For this we create parts in a
Source and place them in the store of the crane. As soon as a train arrives at the loading station, the
crane loads the parts onto it. The loaded train then leaves the storage area of the crane, and will be
unloaded at another station along the tracks. Note that the loading station has to be located within the
storage area of the StorageCrane. To accomplish this, we have to solve these tasks:
• Produce the Parts and Place them into the Storage Area of the Crane
Produce the Parts and Place them into the Storage Area of the Crane
The parts, in our example Containers, will be created in an object of type Source. The succeeding
station SingleProc delays the parts employing a normally listributed processing time. From
the SingleProc the parts are directly moved to the entry station of the storage crane, which then
automatically places them into stock.
Our StorageCrane has a length of 20 meters and a width of 10 meters. The portal positions are
located at 0 meters and 8 meters, meaning that the gantry juts out 2 meter over its columns. This
is where the train is going to move.
We distribute 20 times 10 storage places across the store. Each storage place is 1 meter by 1 meter.
We mark rows 9 and 10 as barred area in which the tracks of the train run. Other than that, we do not
change any of the default settings of the crane.
For our model we create two new object classes, Engine and Boxcar, in the Class Library
byduplicating the Transporter:
In a Frame of its own we combine the Source, the sequence table, the collision control hitch and a
short piece of track.
• We configure the Source so that it creates a train every ten minutes according to the settings,
which we enter into the sequence table.
• In the sequence table we instruct the Source to produce one engine and seven boxcars per train.
• For the engine we set the attribute isTractor to true and the speed (in column 12) to 1 m/s.
• For the boxcars we set isTractor to false and the speed (in column 12) to 1.1 m/s. This way we
cause a collision event, which hitches the boxcars to each other and to the engine.
• We then program the control for the collision event in the method hitch.
The source code in SimTalk 2.0 notation looks like this:
var rear, front: object
rear := @
front := rear.frontMU
rear.hitchFront(front)
We model the track of the train with the object Track. For this we have to make sure that a piece of
track runs underneath the crane so that the crane can load the parts onto the train. We thus define a
sensor on the far right side of the crane area. The exact position depends on the way we model our
track. As sensor control we enter the method load in which we program how the train is to be loaded.
The method load is to be executed only, when the engine of the train triggered the sensor. Thus we
first have to check if the respective car of the train is the engine, i.e., if the attribute isTractor is true.
If so, the train stops and we retrieve the contents table of the crane. For safety purposes we wait
until the store contains 10 containers at least.
The first boxcar is hitched directly to the rear of the engine (engine.rearMU). The loading position
refers to the X-Position of the crane at which the first boxcar is located.
Then we create the loading orders for the crane. For this we always take the last entry in its contents
list. We utilize the method getPartFromPositionToObject to instruct the crane to load the part from
the specified position in the contents list with the priority 20 to the X-Position loadPos, and the
Y-Position10 into the boxcar. As the boxcar can only hold a single container, we also enter the
loading position (1,1). The priority 20 insures that the loading orders have a higher priority than the
storage orders.
Then we proceed to the next boxcar and adjust its loading position accordingly. This we repeat until
we have given the loading orders for all boxcars. Note that until now we only have issued the orders,
but that the boxcars have not necessarily been loaded yet! To ensure this, we pass over all boxcars
again and wait until all boxcars are loaded. Only then can the engine start and pull the train away.
The complete source code of the method load in SimTalk 2.0 notation looks like this:
var content: table[integer, integer, integer, integer, object]
var i, row: integer
var boxcar: object
var engine: object
var loadPos: integer
var outcome: boolean
if @.isTractor
engine := @
engine.stop
content.create
repeat
-- 10 containers at least need to be in the store
PortalCrane.getStoreTable(content)
if content.ydim 10
wait( 300 )
end
until content.ydim >= 10
boxcar := engine.rearMu
loadPos := 18
boxcar := boxcar.rearMU
loadPos -= 2
content.cutRow( row )
end
waituntil boxcar.full
boxcar := boxcar.rearMU
end
engine.continue
end
The complete source code of the method load in SimTalk 1.0 notation looks like this:
At another location along the track we define another sensor and assign it the method unload is its
control. This Method is only to be executed, when the engine triggers the sensor. First we stop the
train. The first boxcar is located directly behind the engine. Starting from this boxcar we pass over
the entire train. When the boxcar is loaded, we wait until the SingleProc named SP is Empty and
then move the Container into this station. When all boxcars are unloaded, the engine can start
pulling the train away again.
The source code of the method unload in SimTalk 2.0 notation looks like this:
param sensorID: integer
var engine: object, boxcar: object
if @.isTractor
engine := @
engine.stop
boxcar := engine.rearMu
while boxcar /= void
if boxcar.cont/= void
waituntil MySingleProc.empty
boxcar.cont.move( SP )
end
boxcar := boxcar.rearMu
end
engine.continue
end
The source code of the method unload in SimTalk 1.0 notation looks like this:
In this example we demonstrate how to transport heavy parts that are to be processed from one
machine to another machine on the shop floor with an overhead crane.
For this we instantiate the object StorageCrane. The only setting of the StorageCrane which we
change is to deactivate the automatic removal of parts ( Removal > Remove after this time).
Next we place several instances of the SingleProc within the storage area of the crane. In order to be
able see them, we set the icon of the StorageCrane to transparent by selecting View > Change Icon.
Then, we connect two SingleProcs each. Thus we created a processing machine and a removal
station. For this removal station we enter an exit control and the short processing time it takes
the part to be moved from the machine to the removal station.
Within the exit control we first assign the current part. Then, we instruct the StorageCrane to transport
the part with the priority 2 from the position at the coordinates (13,6) to the position (10,3) and to
there place it onto SingleProc1. As the SingleProc only has a single processing station, we do not
have to specify the station on the SingleProc and enter -1 twice.
The source code in SimTalk 2.0 notation looks like this:
var part: object
part := @
PortalCrane.shiftPartFromToObject(part, 2, 13, 6, 10, 3, SingleProc, -1, -1)
To model Tugger Trains, consisting of a tractor and a number of trailers. you will use a number of
extended features of the Transporter. In our sample model a tugger train is loaded with parts, which
will be unloaded at a station on the main line and on the side line each.
The model demonstrates how to:
• Define the Tractor of the Tugger Train.
• Double-click the object Tractor. To designate it as the tractor of the tugger train, which pulls the
trailers , select the check box Is Tractor. This Transporter then shows the icon tractor
instead of the icon Operational. As a vector graphic the icon of the tractor looks like this .
To prevent the tractor from loading parts, enter 0 as the X-dimension and the Y-dimension. For
the loading space types Track and Line, enter 0 as the Capacity.
We modeled the source, which creates the tugger trains. in the Frame which we named
SourceTuggerTrains. We did this to prevent our overall model from becoming too clogged with objects.
The Frame contains of these objects:
• A Source object, which creates tractors and trailers according to the settings, which we enter
into a sequence table.
• A Track object, which should be long enough to accommodate the tugger train with its entire
length after the Source object has created it. This ensures that the tugger train is able to move
onto the succeeding object as a whole. The tugger train in our example consists of a tractor and
four trailers, each of which is 1.5 meters long. So we entered a length of 8 meters for the Track.
• A Method object, in which we program how the trailers are hitched up to the tractor. when they
collide with the transporter driving in front of them.
• An Interface object, which provides the connection to the other objects within the simulation
model.
To configure the Source object, which creates the tractors and the trailers. which make up the tugger
train, double-click its icon.
To produce the objects as a sequence according to the settings, which we enter into the sequence
table:
• Select MU selection > Sequence.
• Click and select the TableFile MySequenceTable, which we inserted above. To create a tractor
object using the MU class Tractor and four trailer objects using the MU class Transporter, we
entered the values shown in the screenshot below.
• The characters, which we enter into the column Attributes, only serve as a placeholder for the
sub-tables contained in these cells. Withon the sub-tables we set the attributes of the tractor
and of the trailers.
To designate the tractor. we entered the attribute IsTractor and set it to true. To set its speed,
we entered the attribute Speed and entered 1.0 m/s.
We already defined the attributes of the tractor in the class Tractor. We just entered
them again to make sure that the settings in the tractor are the correct ones, in case
the settings of the class get changed.
To designate the trailers, we set the attribute IsTractor to false. As we want the trailers of drive
faster than the tractor and to collide with the object in front of them, we entered 1.1 m/s as their Speed.
To designate the collision control(CollisionCtrl), we entered the name of the Method, which we
inserted above, hitchMethod in our case. The collision control hitches the trailers to each other and
the front trailer to the tractor.
To program the collision control hitchMethod, which we inserted above, double-click the Method
object. We want this control to hitch the colliding Transporter to the one in front of it. To do so, we
have to establish the Transporter moving in front of the active Transporter.
Finally, we are going to hitch the rear Transporter to the one moving in front of it to create the tugger
train.
These statements above translate into this source code in our Method in SimTalk 2.0 notation:
var Rear, Front: object, TractorSpeed: real
Rear := @
Front := @.frontMU
if Front.IsTractor
TractorSpeed := Front.Speed
Rear.hitchFront(Front)
else
Rear.hitchFront(Front)
end
These statements above translate into this source code in our Method in SimTalk 1.0 notation:
is
Rear, Front : object;
TractorSpeed : real;
do
Rear := @;
Front := @.frontMU;
if Front.IsTractor then
TractorSpeed := Front.Speed;
Rear.hitchFront(Front);
else
Rear.hitchFront(Front);
end;
end;
Back to Configuring the Source Object and Creating the Sequence Table
Back to Model the Source Creating the Tugger Trains
To demonstrate how the tugger trains move as a single unit on a track system, let’s model a main line,
from which a side line splits, which then leads back into the main line. For this we use four Track
objects and connect them with Connectors. To move the side line over the main line, hold down the
Shift and/or Ctrl keys and press the arrow keys.
• A Source which produces the parts with the default settings and a station, which loads them
onto the trailers of the tugger train.
• An unloading station on the main line and the side line each, plus a Drain each, which removes
the parts from the lines. For the two Drains. which we named ShippingMain and ShippingSide,
we use the default settings.
Configure the loading station on the tab Attributes. Select the object which provides the parts
(parts from) and the object on which the tugger train moves ( target is on). In our case this is the
SourceParts and the Track.
Enter the position of the sensor, which triggers loading the tugger trains with parts. We entered
7(meters). The TransferStation thenenters these settings into the dialog Sensor of the Track.
Next, configure the stations UnloadingMain and UnloadingSide is shown in the screenshots below.
When you are finished, insert an EventController, start the simulation and watch how the tugger trains
are loaded with parts, move on the main line, are unloaded, are loaded again and are unloaded
on the side line on their second trip.
Back to Define the Tractor of the Tugger Train
Back to Model the Source Creating the Tugger Trains
Back to Model the Track System on which the Tugger Trains Move
Back to Model a Tugger Train
We modeled the DataFit objects in Frames and with the object Dialog. For this reason they
do not use the Siemens PLM standard design, but the Windows design.
• Where in the plant are buffers necessary? What is the optimal buffer size?
• How do some or all of the above factors interact and produce different results?
• Or do you also have to simulate other areas, such as receiving the parts delivered by the
suppliers, warehousing, shipping, etc.?
• Data extracted from the production program, which you collected by watching the machines in
the plant or which you received from the experts on the shop floor.
For simulating the material flow of interlinked production and assembly facilities you need:
1. Data covering the entire production system (model data):
• The production program, such as the produced products, the lot sizes, etc.
• The layout of the plant, its structure, controls, and the points where parts are introduced
into or discharged from the system.
• Reworking, such as reworking times, the station that produces rejects, and the frequency
of rejects.
3. Data covering machines, transport systems and work stations (object data):
• Failures, including MTBF, MTTR, reference time, distribution, and variance.
• Set-up times.
• Which distributions to select for the Processing time, the Set-up time, the Recovery time, the
Cycle time, and the Failure times for the Plant Simulation objects.
The Level of significance is the probability with which a distribution with estimated
parameters will be rejected by the goodness-of-fit test, although it is suitable for the
sample.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Compare Statistics Tools
Go to Input Data in DataFit
Go to Filter Data in DataFit
Go to Fit Data in DataFit
Go to Evaluate Data in DataFit
Back to Step 3: Decide which Distribution to Use
DataFit only computes the distribution parameters for a sample with more than 10 values.
You can only proceed to the next tab, after you have selected the required settings and entered the
data for them on the active tab. DataFit then activates buttons and/or text boxes on the next tab.
Most buttons are toggle buttons that activate and deactivate a feature.
• Select a column that contains the data you want to use in the dialog that opens and click Load.
Or
• Click Read to import data from the file whose name you enter into the text box Data file.
• When you import data from other programs, for example from Excel, you have to select the
same Decimal separator in Plant Simulation is you used in the other application. You might
also paste the sample data into the table via the Windows-Clipboard. For this you have to click
Open to open the input table.
o Continuous numbers, which include negative numbers, and floating point numbers, for
example -10, 1.4, 5, ...
When you have entered all required data or selected the required settings, you can proceed to the
tab Filter.
Back to Distribution-Fitting with DataFit
To filter data:
• You can, but do not have to enter a value for the Lower bound and a value for the Upper bound.
• This activates the buttons Show descriptive statistics and Open filtered data.
• Clicking Show opens a table with descriptive statistics of the characteristics of the sample data.
• Clicking Open filtered data opens a table with the sorted data to be used for data fitting, i.e.,
after eliminating unwanted values.
When you have entered the required data or selected the required settings, you can proceed to
the tab Fit.
DataFit estimates the parameters of the selected distribution(s) and then performs a goodness-of-fit
test with the filtered data on the tab FIT.
• Click Select and select one, several or all distributions in the dialog that opens.
• Enter a Level of significance for the values. You can enter a number between 0 and 1. In most
cases you will enter a number between 0 and 0.2.
• Click Fit to estimate the parameters for the selected distribution or distributions using the sample.
• If you are investigating a large sample, you will have to use the Chi-Square Test is the
Goodness-of-Fit Test. For this you have to enter the Number of classes. The Goodness-of-Fit
Test describes how good the distribution with its parameters fits the given sample.
When you have entered the required data or selected the required settings, you can proceed to the
tab Evaluation.
Back to Distribution-Fitting with DataFit
• The Kolmogorov-Smirnov and the Anderson-Darling test are only suited for continuous
distributions with 10 to 2000 values.
Open the results table that shows which parameters of which distribution to enter in Plant Simulation.
• The columns Result Chi, Result KS, Result AD tell, if the distributions are applicable to the
sampled values or not. This is the case, when the corresponding value statistic is less than the
corresponding value. Naturally, the evaluation takes the Level of significance into account.
• The columns labeled Parameter 1, Parameter 2, and Parameter 3 show the exact numbers
and the names of the rounded parameters as you enter them into the dialogs of the Plant
Simulation objects.
• To show a Report of the parameters and the goodness-of-fit test, click Show.
• To reduce the size of the model, which might have been bloated by the Report, click Delete.
• When none of the selected distributions adequately represent the properties of the sample, you
can use an empirical distribution to model the data of the sample in Plant Simulation. Click
Open to open the Frequency table.
The distributions you use in your simulation have realizations that may be arbitrarily large or small,
respectively. For this reason, you will use distributions with upper and lower bounds, to cut off values
you do not want to consider.
Be aware that using a distribution with bounds will change the mean value and the standard deviation.
When you use the normal distribution for modeling a random time, the lower bound automatically will
be 0.
When you enter the parameters µ = 2.0, and σ = 1 for the normal distribution, a real mean value of
the distribution with the lower bound 0 and the upper bound 3 will be 1.77.
• Change to the tab Statistics Values. Enter the parameters of the distribution for which you want
to investigate the effects of the bounds. Then, click Start to compute the real mean value and the
real standard deviation of the distribution with bounds.
After the calculation is done, you can click Show to view the density function and the bounds.
The density visualizes how the bounds cause the mean value to shift.
The solid vertical line designates the real mean value of the distribution with bounds.
The dotted line designates the mean value of the distribution without bounds.
In addition, the TruncDistribution show the probability of a hit, with which a random number of the
distribution without bounds falls in between the bounds, which you entered.
Plant Simulation throws the dice until a random number falls in between the bounds of the
distribution with bounds. When its probability is too small, it may happen that the maximum
number of samples, which you entered under File > Preferences > Simulation does not suffice
and Plant Simulation interrupts the simulation.
• On the tab Parameterization you determine the parameters of the distribution, so that the
distribution with bounds arrives as the mean value, which you set.
To a certain degree you execute the reverse conversion to the calculation task on the tab
Statistics Values.
Click Start to start calculating. Note that not each mean value between the bounds is viable.
• On the tab Normal you compute the distribution parameter Sigmaσ of the normal distribution
with given quartering parameter Muµ and probability of a hit.
In addition, the TruncDistribution computes the real mean value and the real standard deviation of
the normal distribution with bounds.
define. Compare the chapter about confidence intervals in the documentation that comes with
the library DataFit.
We modeled the ExperimentManager in Frames and with the object Dialog. For this
reason they do not use the Siemens PLM standard design, but the Windows design.
You find the ExperimentManager in the Tools folder in the Class Library or on the toolbar Tools
in the Toolbox.
Your Plant Simulation license determines how you can use the ExperimentManager.
• With a runtime license you can execute experiments with a simulation model. You can modify
parameters in tables. You cannot change the structure of the ExperimentManager model.
• With an application license, you can also change the structure of the model.
• With a professional license, you can, in addition, define the experiments in a Method.
• The runtime license and the student license cannot control distributed simulations.
You can use computers with the following license types as simulation machines:
You can also Refine the Settings and Set Static Parameters and Set Static Parameters.
In a simulation study you’ll examine how a set of input values, which are the model parameters,
affects output values. The output values can be observed after a single simulation run. Each
simulation study needs at least one output value.
To open the table into which you enter the output values, click the button Define Output Values on
the tab Definition. An output value can be a method or an attribute of an object in your model. You
can enter a description for the output values which the ExperimentManager show in all evaluations.
This makes the results of the simulation study easier to understand.
When you drag an object onto the ExperimentManager, it offers all numerical attributes and methods
which can be used as output values.
If the results of a simulation run are provided in a Plant Simulation table, you can use the entire
table as output value of the study. To designate a table as the results table drag it onto the
ExperimentManager.
To open the table into which you enter the input values, click the button Define Input Variables on the
tab Definition. An input value can be an attribute of an object or an entry in a table. Before executing
an experiment, the ExperimentManager sets the input values in the simulation model. These input
values are not changed in the simulations runs of an experiment.
Hold down the Shift key and drag an object onto the ExperimentManager and drop it there. This
shows all attributes of the object in a dialog. To select one or more attributes, hold down Ctrl and click
the attributes your are interested in. This opens the table file of all input values. Then, add other
values. You can also enter a description of the input value which the ExperimentManager uses in all
evaluations. The ExperimentManager checks the entries by closing this table file.
Input values can also be parameters of probability distributions, which you have to type into the table.
To set the input values for the experiments, as shown in the figure below, click the button Define
Experiments on the tab Definition.
After you have finished creating your simulation model, you can start running experiments with
it. Note that a simulation run always has to end. Many models might continue running after the
processes, which interest you, have been simulated, for example to simulate failures, etc. When you
use the method stop of the EventController in your simulation model, you have to call the method
endSim of the ExperimentManager at the appropriate place. Instead, you can also set the duration of
the simulation, by either entering an End time in the EventController or setting it with the attribute End.
To run the experiments with the settings you defined, proceed as follows:
1. Click Reset to reset the ExperimentManager.
Depending on the size of your simulation model, running the experiments can take a while. Plant
Simulation show the currently running simulation in the dialog. At the end of the experiment
run the ExperimentManager opens a report.
When you defined several experiments with many simulation runs that take a long time to be
executed, you can run them overnight.
After the ExperimentManager has executed the simulation experiments, you will want to examine
the results.
You can:
• View the Results as a Table.
Related Topic
Viewing Evaluations in the Reference part of the Online Help
You can execute an experiment run without any input values. But each simulation
study requires at least one output value.
2. Click Detailed Results to show the values for all output values.
The observations of each experiment represent a sample for each output value. The
ExperimentManager computes these values for it. The:
• Mean value
• Standard deviation
• Minimum
• Maximum
The confidence intervals belong to the Confidence interval which you entered under Tools >
Advanced Settings > Settings.
If you defined a table as output value, the table DetailedResults provides sub-tables with the following
statistical values of the numerical entries of this table:
• Mean value
• Standard deviation
• Minimum
• Maximum
The column Observations provides the results of all simulation runs for all output values.
Back to Step 3: Evaluate the results of the simulation study
Related Topic
View Output Values of Interest in the Reference part of the Online Help
You can select to show min-max intervals or confidence intervals for the output values.
Under Tools > Advanced Settings > Settings you can select of the
ExperimentManager show the 25 percent, the 50 percent, and the 75 percent quartiles for the
min-max intervals.
This type of display is called a box plot. It shows the distribution of the observations of an output
value of an experiment.
You can select what the report shows under Tools > Advanced Settings > Report. You can select to
automatically show the report at the end of the simulation study and to save the report. You can also
select if the ExperimentManager saves the data of the table Results to an Excel file. This way you
can publish the results of a study in a compact format. If you want to save the report or the Excel file
to a folder, click Folder and select the target folder.
To add a Chart which you inserted into your model to the Report, drag the Chart over the icon of the
ExperimentManager and drop it there.
The topic Execute a Simple Simulation Study describes the most basic way of running experiments
with the ExperimentManager. Here you learn how to refine the settings when you Set Static
Parameters and when you Set Dynamic Parameters.
Static parameters are specific values for each experiment for each parameter. If you want to, you can
also Modify Settings in the Configuration Method.
Under Tools > Advanced Settings > Settings you can configure the settings of your simulation
model with a SimTalkmethod. Select the check box Use configuration method and click Method to
open the Method object userMethod and program additional settings for each experiment. You can
use all commands which SimTalk provides. Note that the code you enter into this Method modifies
the settings for the experiment.
Under Tools > Advanced Settings > Rules you can define dynamic parameters. For this type
of parameterization the results of previous experiments produce the values for the input values
of the current experiment.
A rule is a logic expression that consists of a condition and an action. As soon as the condition of a
rule is met, the associated action of the rule is taken.
First enter the number of experiments you want the ExperimentManager to execute.
The ExperimentManager checks if the conditions you entered as the table condition and as the
method condition on the tab do apply. It then takes the action(s) which you entered into the table
action and programmed in the method action.
1. To use dynamically changing parameters, select the check box use rules.
2. Select one of the built-in rules from the drop-down list Select rule, Create a Rule of Your Own.
3. Select the check box Rule is active, to activate the rule you selected. This rule will then be
executed before the simulation experiment.
4. If you want to, you can enter the number of the experiment(s) for which the rule applies.
5. Enter a Priority. The greater the number you enter, the higher the priority will be: A rule with the
priority 10 is executed before a rule with the priority 1.
To use the rule which you selected for the first experiment, select the check box Use for first
simulation run. When you do not select it, the ExperimentManager only uses the rule from the
second experiment onward.
2. Click Table Condition. Enter your values into the table that opens.
• Click into the cell and select the level of the Opening Parenthesis. Plant Simulation
evaluates expressions in parenthesis from the inside to the outside, i.e., it evaluates the
contents of the innermost expression in parenthesis first and then proceeds towards the
outside one by one.
• Enter the name of the Object whose attribute value you want to compare to another object.
• Click into the cell and select an Operator that compares the attribute values: < (less than), >
(greater than), = (equal to), ~=(about equal), or /= (unequal to).
• Enter the name of the Object whose attribute value is compared to the object you entered
above.
• Click into the cell and select the level of the Closing Parenthesis.
• Click into the cell Boolean Operation and select an operator, AND or OR that connects
the boolean values that result from evaluating the logical expression you defined in a row
of the query table.
3. If you want to, you can also test a condition in a Method. For this, click Method Condition and
enter your source code into the Method that opens.
4. Click Table Action. Enter your values into the table that opens:
• Enter the name of the object chose attribute value you want to manipulate.
• Click into the cell and select an operator that manipulates the attribute value.
• Enter the value the operator adds, subtracts or equates to the value of the attribute you
entered above.
5. If you want to, you can also program a Method that executes an action. To do so, click Method
Action and enter your source code into the Method that opens.
The GAWizard integrates genetic algorithms into an existing simulation model. You can use it
for optimizations in which the evaluation is based on a simulation run as well as for optimizations in
which the evaluation is based on calculations in Methods.
Your Plant Simulation license determines how you can use the GAWizard.
Genetic algorithms are stochastic optimization procedures that in most cases only produce an
approximate solution. For the most common practical applications these approximate solutions do
suffice. Genetic algorithms manage several solution proposals during the optimization. According
to evolution in biology these solution proposals are called individuals. The individuals managed
in a single optimization step are combined into a generation. The quality of a solution proposal is
evaluated through a numerical value, the so-called fitness value.
Solutions generated by Genetic Algorithms are passed to the simulation model, which in turn will be
configured accordingly. When you do not use the Batch-Mean method, Plant Simulation starts the
simulation run with the settings typical for this solution. At the end of the simulation run the simulation
model is going to pass the resulting fitness value back to the object GAWizard.
The Batch-Mean method starts a single simulation run for the entire optimization run. After a warm-up
period, it uses time sectors for evaluating the solution. At the beginning of a time sector the method
configures the model for a solution. At the end of the time sector the fitness value will be determined.
When your evaluation takes place via a model containing random components, such as failures of
machines, then you have to execute several simulation runs for each newly created individual. The
fitness value is called observation. The genetic algorithm uses the mean value of all observations of
the fitness values of an individual. Enter the number of observations per individual on the tab Define
of the GAWizard. For a deterministic simulation, you will use a single observation per individual.
When the genetic algorithm creates individuals defining the same parameterization, the GAWizard
recognizes this and uses the fitness values of the already evaluated individuals. The optimization run
thus does not waste additional time for multiple evaluations of an individual.
Go to Configuring the GAWizard
Go to Analyzing the Results of the Optimization
Back to Executing Simulation Experiments
To pack and send a Plant Simulation model to somebody, who does not have Plant Simulation in his
computer, you can use Pack and Go.
Pack and Go takes all files needed for starting the selected simulation model with a Plant Simulation
Viewer license, packs the files and saves them as a self-extracting executable. You can send this
packed model to a customer for example, who can open the model by simply double-clicking it.
• To start Pack and Go, select File > Share > Pack and Go in the program window.
• If you would like to save your model, before sending it, click Yes in the dialog that opens.
• Navigate to the folder into which you want to save the model file. Enter a name and click Save.
• Click OK after Pack and Go successfully created the package. Then, distribute the file, for
example by sending it as an e-mail or by putting it in your Intranet, etc.
• The recipient can double-click the file you sent and start the simulation to view what you wanted
to show.
Be aware that the Plant Simulation Viewer license only provides a restricted set of features,
which are described under the Window ribbon tab > Start Page > Getting Started > Example
Models > Product Information.
• If you would like to save your model, before sending it, click Yes in the dialog that opens.
• Navigate to the folder into which you want to save the model file. Enter a name and click Save.
• Click OK after Pack and Go successfully created the package. Then, distribute the file, for
example by sending it as an e-mail or by putting it in your Intranet, etc.
• The recipient can double-click the file you sent and start the simulation to view what you wanted
to show.
Be aware that the Plant Simulation Viewer license only provides a restricted set of features,
which are described under the Window ribbon tab > Start Page > Getting Started > Example
Models > Product Information.
• You can also create an icon each for the different states the objects may take to display the state
of operation of an object, such as failed, paused, etc. during a simulation run.
To use state icons instead of the LEDs, right-click the material flow object and select Edit Icons.
Click State Icons/LEDs > Use State Icons on the General ribbon tab of the Icon Editor, so that
the latter shows that it is selected.
For this, you can modify any of the built-in icons or design new one icons in the Icon Editor. Here you
can also create and modify the animation structures, i.e., the animation points and animation lines, to
define the route and the paths which the mobile objects (MUs) take.
Go to Activate and Deactivate the Animation
Go to Working with Object Icons
Go to Set and Link Animation Points and Animation Lines
As the animation slows down the simulation, only turn it on, when you actually want to
show the simulation model to somebody. For your overnight batch runs we recommend to
turn it off.
We differentiate between:
• Icon Animation , i.e., the animation of the icons of the material flow objects themselves.
When it is active, the objects show the state they are in. This way you can easily detect which
object obstructs the flow of materials.
• MU Animation , i.e., the animation of mobile objects in your simulation model. During the
simulation run the animation shows the state of the objects and the positions and movements of
the MUs.
o When you activate MU Animation, you immediately detect the flow of the mobile objects and
can detect blocked stations, where the MUs pile up.
o When you deactivate MU Animation while an object intends to change its state, Plant
Simulation delays its display on screen until you activate the animation again or until the
object is selected.
To deactivate:
• Icon Animation, click Icon Animation on the Home ribbon tab. Icon Animation is
activated by default.
To run the simulation with the setting you selected, click Start/Stop Simulation in the EventController.
The icons of an object are a property of its class, i.e., an object in the Class Library and
all of its instances share the same set of icons. Modifying the icons of an instance will
change the icons of all objects of this class!
Plant Simulation uses the icon of an object to display it in the Class Library, in the Toolbox, and in
the Frame. The icons can also serve to display the state of operation of the object, such as failed,
paused, unplanned, etc. You can modify the built-in icons, including any of the animation paths, or
design new ones in the Icon Editor.
At times you have to edit one of the existing icons of an object or you will want to add different
icons to it.
Go to Editing an Icon
Go to Creating an Icon
Go to Defining the Rotation of an Object
Go to Making Areas of an Icon Transparent
Compare Icon Editor
Back to Animating Your Simulation Model
Editing an Icon
To edit the icons of an object, do one of the following:
• Right-click the object in the Frame and select Edit Icons or press Ctrl+I.
• Select the object in the Frame and click Edit Icons on the Home ribbon tab or press Ctrl+I.
• Right-click the object in the Class Library and select Edit Icons.
• Click on the Home ribbon tab to edit the icons of the selected Frame.
• Click on the Home ribbon tab to edit the icons of the selected object.
• Then, use the functions on the Edit Ribbon Tab, the Animation Ribbon Tab, and the General
Ribbon Tab of the Icon Editor to actually edit the icon.
Go to Creating an Icon
Go to Defining the Rotation of an Object
Go to Making Areas of an Icon Transparent
Back to Working with Object Icons
Creating an Icon
To create a new icon and to then open an existing drawing you would like to use, do one of the
following:
• Click New Icon on the Edit ribbon tab. If the drawing you open is larger than the default
icon size of 41 by 41 pixels, enter another width and/or height.
• Click Import > Import Bitmap File/Import Icon Resource, navigate to the folder that contains
the drawing you would like to use as an icon, select the file and click Open.
• Drag a graphics file (.gif, .bmp, .ppm, .ppm raw, .dxf or .dwg) from the Windows Explorer, etc.
over the drawing window and drop it there.
• To draw a line or a shape, select a drawing color and one of the drawing tools
• To move the reference point, click and then click the position you would like to move the
reference point to.
o of a contiguous color area, select a color in the color palette and click the area whose color
you would like to change with
• To draw with two colors, you can assign a color each to the left mouse button and the right
mouse button:
o Click a color in the color palette with the left mouse button to add this color to the top drawing
color field. Or
o Double-click the color field and define a color of your choice in the dialog Colors.
o Then, click the respective mouse button to draw with that color.
• To make transparent
o one or several pixels, click the transparency field and click the pixel(s), which you would like
to make transparent with one of the drawing tools.
o a contiguous color area, click the transparency field and click the area, which you would
like to make transparent with .
The background of the Frame shines through any area you marked as transparent.
Go to Editing an Icon
Go to Defining the Rotation of an Object
Go to Making Areas of an Icon Transparent
Back to Working with Object Icons
To set how Plant Simulation rotates the selected material flow object itself, click Rotation Center >
Rotate around Reference Point on the General ribbon tab of the Icon Editor.. The reference point
of an object is located in the center of the icon by default.
• When you use the default setting Rotate around Reference Point, Plant Simulation rotates and
zooms the icon around the reference point. You can compare this to pushing a pin through the
center of a photograph and then turning the photograph around this pin.
• When you deactivate Rotate around Reference Point, the upper left corner of the icon remains
at the same location when rotating and zooming the icon.
In addition to defining the rotation of the material flow object, you can define, if an MU that transfers
onto a material flow object uses the same orientation, i.e., the same rotation angle, as the icon of the
material flow object it is animated on.
These settings only apply when Plant Simulation show the object with its icon. They do not
apply when you selected Vector graphics active for the MU.
• When you use the default setting, Same as the Object, the front end of the MU points in the same
direction as the right border of the material flow object.
• When you deactivate Same as the Object, the front end of the MU points in the direction it had,
when it transferred onto the material flow object.
• Click the color picker and click in the background of the icon. This makes that color the
active drawing color, which we want to replace.
• Select the transparency color that replaces the active drawing color with in the Color Palette
proper, not in the transparency color field!
If the transparency color is not part of the color palette proper, double-click any field in the Color
Palette that contains a color you do not need, and enter 0, 128, 128 into the dialog Colors >
Custom and click OK.
• To use the changed icon as the current icon of the object, make sure that is selected.
• Click the transparency color field with the left or right mouse button to make the
transparency color the drawing color.
Go to Creating an Icon
Go to Editing an Icon
Go to Defining the Rotation of an Object
Back to Working with Object Icons
^
During the simulation run the MU moves along the connecting lines, which you established with the
Connector, from material flow object to material flow object and/or material flow object to components
you modeled in a Frame. In your animated simulation model, Plant Simulation places the reference
point of the icon of the MU onto the animation point of the icon of the material flow object or
the animation line of the icon of the Frame.
For a material flow object the correlation looks like this:
To insert an animation point or an animation line into the icon of the class of a material flow object
or of a Frame:
• To open the Icon Editor, right-click the Frame into which you would like to insert an animation
structure and select Edit Icons.
• To activate Animation Mode, which allows you can insert animation points and animation lines,
click the Animation Ribbon Tab.
To insert an animation point or an animation line into the icon of the class of an object, click Open
Class on the Home ribbon tab. You will notice that Plant Simulation opens the class object of the
selected object. If you want to insert an animation point into the icon of the active instance of
the icon, do not click Open Class.
• To insert an animation point into the icon of a point-oriented object, click . Then, click into
the drawing area with the left mouse button at the location of your new animation point.
• To insert a straight animation line into the icon of a length-oriented object, click .
Then, click into the drawing area with the left mouse button, hold the mouse button down to insert
the beginning of the line, drag the mouse until the line is as long as you want it to be and release
the mouse button. This inserts the end of the line.
• To insert a non-straight animation line into the icon of a length-oriented object, click
.Then, click once into the drawing area with the left mouse button to set the starting point of
the line, click again to set the next anchor point. Plant Simulation connects the anchor points to
create the line. Continue this until the polygonal chain meets your needs.
o Blue: Is the standard color for all objects, except for the Frame. For a Frame Plant Simulation
shows that the animation point is linked to an object located within that Frame.
o Light blue: Is the same as blue. In addition, it shows that an animation point of a Frame
is linked to this animation point.
o Red: The animation point in a Frameis not linked to an object located within that Frame. For
this reason Plant Simulation does not show an animation for this point.
• When you are done inserting, close the class object, and click Yes to save the changes to the
icon of the class.
To link an animation point, which you inserted into the class of an object, with the animation
point/line of a Frame:
• Select the Frame in which you would like to link the animation structure with the right mouse
button and select Edit Icons.
• To activate Animation Mode, which allows you to link animation points and animation lines, click
the Animation ribbon tab.
• Click Link/unlink animation point and select the animation point/line in the icon of the
Frame. Plant Simulation shows the selected animation point or the animation line
This opens the window of the Frame you selected above. Click the material flow object to which
you want to assign the animation point/line. You will notice that the color of the assigned animation
point or the animation line changes to blue. When an MU moves to this animation
point/line during the simulation run, Plant Simulation shows it on this animation point/line.
To delete all animation points/lines of an object, click or click the animation line with the right
mouse button.
You can delete an animation point and insert a new one immediately afterwards without
the correlation getting lost.
By default all material flow objects collect statistics values from the beginning to the end of the
simulation runs. If you don’t want them to do so, deactivate statistics collection by clearing the
check box Resource statistics on the tab Statistics or Product statistics
on the tab Product Statistics.
In addition the material flow objects provide energy statistics values.
The EventController controls when statistics collection starts and when it will be reset, i.e., started
anew.
• Click the tab Settings. Click in the text box Statistics and enter the time at which the
EventController resets statistics and deletes all statistics values it collected up so that time,
compare Statistics Collection Period. Plant Simulation starts collecting statistical data for all
material flow objects anew from this time on. This way you can discard data collected during
warm-up phases, which might distort the validity of the simulation results.
• When you reset your simulation model, by clicking Reset Simulation , Plant Simulation
deletes statistics data of all objects and resets the statistics values to 0. During a simulation run
you can achieve the same effect using the method initStat. This way you can restart the collection
of statistical information after a warm-up period of a machine, for example.
Covering Plant Simulation statistics in detail would go beyond the scope of the Plant Simulation
Step-by-Step Help. It is described under the topic Statistics of the Material Flow Objects in the Plant
Simulation Reference Help.
You can view and visualize the statistics results of your simulation runs in a number of ways.
Go to Viewing Statistics in the Dialogs of the Objects
Go to Viewing the Statistics Report
Go to Showing Statistics with Display Panels in the Model
Go to Showing Statistics in a Chart
Go to Showing Statistics and Other Values in a Report
Go to Showing Values During the Simulation Run with the Display
Go to Showing Statistics During the Simulation Run in Excel
Go to Accessing Statistics with Methods and Attributes
Compare Statistics of the Material Flow Objects
In its most basic form you can view the statistics, which the objects collected during a simulation run,
in their dialogs, either on the tab Statistics or by opening the statistics tables of the objects:
• The material flow objects proper show the most important statistical data they collect on the
tab Statistics.
By default, the resource type used most often is pre-selected:
o Production: for the SingleProc, ParallelProc, the Assembly station, and for the
DismantleStation.
o Transport: for the PlaceBuffer, Buffer, Sorter, Track, Line, Transporter, and for the Container.
Plant Simulation does not dynamically update the values during a simulation run
when the dialog window is open. To accomplish this, select Refresh in the View
menu of the object or press F5.
Shows the portion of the statistics collection period during which the
Working
object was Working.
Shows the portion of the statistics collection period during which the
Setting-up
object was Setting-Up.
Shows the portion of the statistics collection period during which the
Waiting
object was Waiting.
Shows the portion of the statistics collection period during which the
Blocked
object was Blocked.
Shows the portion of the statistics collection period during which the
Powering up/down
object was Powering up/down.
Shows the portion of the statistics collection period during which the
Failed
object was Failed.
Shows the portion of the statistics collection period during which the
Stopped
object was Stopped by a LockoutZone.
Shows the portion of the statistics collection period during which the
Paused
object was Paused.
Shows the portion of the statistics collection period during which the
Unplanned
object was Unplanned, i.e., is not scheduled to work.
Shows the capacity-based portion of the time during which the object
Relative occupation was occupied, not paused and not failed to the time the object was not
paused and not failed as a real number.
Shows the portion of the statistics collection period during which the
Relatively empty object was Empty in relation to the time during which the object was
available.
Shows the number of MUs, which are located on the object. The rules
Contents
described under Entries apply.
Shows the minimum number of MUs that was located on the object. The
Minimum contents
rules described under Entries apply.
Shows the maximum number of MUs that was located on the object. The
Maximum contents
rules described under Entries apply.
Shows the number of MUs that entered the object as an integer. When
an MU enters the object, it only counts the MUitself, not its contents:
Entries When a Container bolding several entities enters the object, the number
of entries increases by 1, not by the number of entities located on the
Container!
Shows the number of MUs that exited the object as an integer. When an
MU exits the object, it only counts the MU itself, not its contents: When a
Exits
Transporter bolding several MUs leaves the object, the number of exits
increases by 1, not by the number of MUs the Transporter transports!
To view the statistics values, which the object collected, click Show Statistics Report on the Home
ribbon tab. You can query most of these values with the Methods that are listed next to the name of
the value in the description of the statistics table.
To view Energy Statistics values, click . Plant Simulation show these values
in a dialog of its own:
Shows the portion of the total energy consumption during which the
Working
object was working.
Shows the portion of the total energy consumption during which the
Setting-up
object was setting-up.
Shows the portion of the total energy consumption during which the
Operational
object was operational.
Shows the portion of the total energy consumption during which the
Failed
object was failed.
Shows the portion of the total energy consumption during which the
Standby
object was on standby.
Shows the portion of the total energy consumption during which the
Off
object was off.
The energy states of the material flow objects differ from the resource states with the same
name. The values for the resource states refer to the statistics collection period, while the
values for the energy states refer to the total energy consumption.
To view Energy Statistics - Energy Statistics in the Statistics Report, click the object in the Frame, and
press F6.
• The mobile objects(MUs) show the most important statistical data they collect on the tab
Product Statistics.
You will:
• Check How Many Parts Were Introduced into the Plant
Next to the values described under Viewing Statistics in the Dialogs of the Objects, you can make the
Source record which MUs it actually created at which point in time.
• To write all events for which the Source produced MUs during a simulation run to a table, select
Creation table on the tab Statistics.
The Source records these events in addition to the resource statistics it collects in
any case.
o The column Path show the path of the MU class, the name of the MU and its number.
o The column Time of Generation show the time when the Source produced the individual MU.
Next to the values described under Viewing Statistics in the Dialogs of the Objects, you can make
the Drain record statistics for MUs with the same name, i.e., product statistics, which move through
the simulation model.
The numbers for the average exit interval and for the throughput are of special interest for production
planning and production control specialists.
• To collect statistics data depending on the type of MU, select Type dependent statistics. Plant
Simulation will show this statistical data after the simulation run on the tab:
Shows the percentage of the sum of the times during which the MUs
Working were located on a Working object, in relation to the statistics collection
periods of all MUs. In general, this is the life time of the MUs.
Shows the percentage of the times that the objects were setting-up for
Setting-up the MUs, in relation to the statistics collection periods of all MUs. In
general, this is the life time of the MUs, compare Setting-Up.
Shows the percentage of the times during which the objects were waiting
Waiting for the MUs, in relation to the statistics collection periods of all MUs. In
general, this is the life time of the MUs, compare Waiting.
Shows the percentage of the sum of the times during which the MUs
Stopped were located on an object that was Stopped, in relation to the statistics
collection periods of all MUs. In general, this is the life time of the MUs.
Shows the percentage of the sum of the times that the MUs were located
Failed on a Failed object, in relation to the statistics collection periods of all
MUs. In general, this is the life time of the MUs.
Shows the average life-span of MUs, which were created and removed
Average lifespan from the plant during the statistics collection period. Only those MUs are
counted whose product statistics was active.
Shows the average time interval between exits of the MUs, which the
Drain removed from the plant. It results from adding up the times of all
Average exit interval
intervals, and then dividing them by the number of intervals. Statistics
only starts counting from the time the first MU arrived!
Shows the number of MUs, which the Drain removed from the plant,
Total throughput
starting at the time, at which you activated Type dependent statistics.
Shows the number of MUs, which the Drain removed from the plant in an
Throughput her hour
hour on average, covering all observed times during which MUs arrived.
Shows the number of MUs, which the Drain removed from the plant in a
Throughput her day
day on average, covering all observed times during which MUs arrived.
To view the statistics, which the Drain collected, click Show Statistics Report on the Home ribbon
tab. You can query most of these values with the Methods that are listed next to the name of the
value in the description of the statistics table.
Back to Viewing Statistics in the Dialogs of the Objects
• Waiting for resources. This is the portion of the time the Assembly station was waiting before
the main MU entered into it, or from the time set-up is finished, until assembly starts in relation of
the statistics collection period.
Click the button to open the table Waiting Times, which shows the sum of the waiting times of the
MUs for each predecessor.
You can check and work with the Contents list of the individual material flow objects in a number of
ways.
You can:
• Open the Contents List in the Dialog of the Material Flow Objects
We demonstrate how to work with the contents list with the objects from the sample model below.
You can also use these techniques for working with the Forward Blocking List, the Exit Blocking List,
and the Backward Blocking List of the individual material flow objects.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started
> Example Models, and click Small Examples. Then, select the Category, the Topic, and the
Example in the dialog Examples Collection and click Open Model.
Back to Viewing Statistics in the Dialogs of the Objects
Open the Contents List in the Dialog of the Material Flow Objects
To open the Contents list of the individual material flow objects in your simulation model during or
after the simulation run, open the dialog of the respective object and select View > Contents.
• The point-oriented objects with a capacity of 1 part show the path in the list, i.e., the name
and the number of the current part.
• The point-oriented objects with a capacity of more than 1 part show the path in the list, i.e., the
names and the numbers of the parts that are located on it. The capacity or the number of parts
located on the object determines how many parts it shows.
• The length-oriented objects (Line, Track, TwoLaneTrack, and Transporter) show the path in the
contents table, i.e., the name and the number of the parts, that are located on the object. In
addition it shows the position of the MUs in the object.
The column Object show the path to the part, the column From show the start position of the
MU, and the column To show the end position in the length unit you selected under File > Model
Settings/Preferences > Units > Length. The number of rows matches the number of MU
parts located on the object.
In our example, the Line is 15 meters long, while each part is 2.5 meters long.
The Line can thus accommodate 5 parts in their entirety, which the contents list shows.
To accomplish this, we entered the following source code in SimTalk 2.0 notation into an
endSimmethod:
-- Copies the contents lists into the table MyContentsList
-- as an array with the method copyToTable
var x,y: real, row: integer
var a : any := Buffer.contentsList
MyContentsList[1,1] := "Buffer"
a.copyToTable(MyContentsList,2,1)
row := MyContentsList.yDim + 2 -- inserts an empty line
MyContentsList[1,row] := "Line"
print a -- prints the contents list as an array to the console
print "Number of items: ",a.yDim
var b := Line.contentsList -- local variable is of data type any
print b
print "Number of items: ",b.yDim
b.copyToTable(MyContentsList,2,row)
MyContentsList.opendialog
-- Writes the contentsList into a table
-- as previous versions of the program did
Buffer.contentsList(ContentsListBuffer)
Line.contentsList(ContentsListLine)
To accomplish this, we entered the following source code in SimTalk 1.0 notation into an
endSimmethod:
-- Copies the contents lists into the table MyContentsList
-- as an array with the method copyToTable
is
x,y : real; row : integer;
do
local a : any := Buffer.contentsList;
MyContentsList[1,1] := "Buffer";
a.copyToTable(MyContentsList,2,1);
row := MyContentsList.yDim + 2; -- inserts an empty line
MyContentsList[1,row] := "Line";
Then, we manually formatted the table MyContentsList by selecting the correct data types for the
columns and by entering the column index items as shown below.
After running the simulation, the endSim method writes the contents lists to the table:
To delete the contents of the contents list, you can enter the following source code into a reset method.
MyContentsList.delete
In addition it writes the contents lists as an array each for the objects Buffer and Line to the Console.
Finally, the endSim method writes the contents lists of the Buffer and the Line into the tables
ContentsListBuffer and ContentsListLine, which we inserted into the Frame.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started
> Example Models, and click Small Examples. Then, select the Category, the Topic, and the
Example in the dialog Examples Collection and click Open Model.
Back to Open the Contents List in the Dialog of the Material Flow Objects
Go to Print the Contents List to the Console as an Array
Back to Check the Contents List of the Stations
To print the contents lists of the objects Buffer and Linefrom our example to the Console as an array
each, type the following source code into a Method and run the method.
print Buffer.contentsList
print Line.contentsList
Back to Open the Contents List in the Dialog of the Material Flow Objects
Back to Write the Contents List into a Table for Further Processing
Back to Check the Contents List of the Stations
All parts, represented by the MUs Entity, Container and Transporter, show the percentages of the
times the part spent waiting or working in a resource of type Production, Transport or Storage on
the tab Product Statistics.
To view all product-related statistics data, which the MU collected, select View > Show Statistics
Report. You can query most of these values with the Methods that are listed next to the name of the
value in the description of the statistics table.
As the Container and Transporter can load and transport other parts, they provide resource statistics
as well, compare Viewing Statistics in the Dialogs of the Objects.
The Tab Statistics show the values split up by Services and by Exporter. For each of these blocks,
adding up the individual values yields 100 percent. You can query most of these values with the
Methods that are listed next to the name of the value in the description of the Statistics Report.
When you select the check box Fail services on the tab Attributes, the Exporter collects the failure
times of the Services and of the Exporter. When you deactivate it, the Exporter only collects the
failure times of the Exporter.
The Exporter only collects failed times that take place during the processing and the set-up time, i.e.,
times that are located outside of the paused time and of the unplanned time.
Waiting times only accumulate during the times, when the Exporter is available, i.e., when these times
are located outside of the paused, the unplanned and of the failed times.
Shows the portion of the set-up time for services of the statistics
Services setting-up
collection period of the Exporter, weighted with the capacity.
Shows the portion of the working time of the services of the statistics
Services processing
collection period of the Exporter, weighted with the capacity.
Shows the portion of the statistics collection period, which the services
Services repairing
spent for repairs, weighted with the capacity.
Shows the portion of the statistics collection period, which the services
Services waiting spent waiting for an importer plus the time the services spent waiting for
an MU at the importer, weighted with the capacity.
Shows the portion of the statistics collection period during which the
Services failed
services were failed.
Shows the portion of the statistics collection period during which the
Exporter operational
Exporter was working, weighted with the capacity.
Shows the portion of the statistics collection period during which the
Exporter paused
Exporter was paused.
Shows the portion of the statistics collection period during which the
Exporter unplanned
Exporter was unplanned.
Shows the portion of the statistics collection period during which the
Exporter failed
Exporter was failed.
Shows the sum of the released capacity that the Exporter placed with
Free capacity (sum)
any importer.
Mediated capacity
Shows the sum of the brokered capacity.
(sum)
Minimum free Shows the minimum capacity that is available. When the Exporter did
capacity not collect any valid value yet, the tab shows -1.
Maximum free Shows the maximum capacity that is available. When the Exporter did
capacity not collect any valid value yet, the tab shows -1.
Minimum mediated Shows the minimum brokered capacity. When the Exporter did not
capacity collect any valid value yet, the tab shows -1.
Maximum mediated Shows the maximum brokered capacity. When the Exporter did not
capacity collect any valid value yet, the tab shows -1.
The most comfortable way of viewing statistics values of one or of several objects is to open the
Statistics Report. Below we demonstrate how to use it.
• Let us assume that we want to show the statistics of several objects in a single report. To do so,
we select them (Shift+click, or drag a marquee over them) and press F6. Compare this example:
• The report adds the statistics of the objects, which you selected, to the drop-down list in the top
left corner of the display window. In our example these are the statistics values of the Stationary
resources Source (Receiving) ,SingleProc, SingleProc1, SingleProc2, and SingleProc3
as well as the Importer Statistics. To jump to any of the topics, which interest you, select
that topic from the drop-down list:
• One of the main topic shows the resource statistics of the material flow objects split up by
the states these objects were in, i.e., the working time, the waiting time, the blocked time,
the powering up/down time, the failed time, the stopped time, the paused time, and the
unplanned time. Note that these times add up to 100 percent. The set-up time and the empty
time, which follow, may be part of the working time, waiting time or of the blocked time. For
details compare the Statistics Report.
The subtopics further down in the report show details about the working time, the waiting time,
the blocked time, the failed time, the stopped time, the paused time, the unplanned time, the
set-up time and the empty time in the order in which they appear here.
The bar chart on the right hand side shows the respective portions of the times.
A bar with this color Means that the object is Looks like this
green Working
brown Setting-Up
gray Waiting
yellow Blocked
red Failed
pink Stopped
blue Paused
• The subtopics show details of the working time, thewaiting time, the blocked time, thefailed
time, the paused time, the unplanned time, the set-up time and the empty time in the order in
which they appear in the first table. For details compare the Statistics Report.
• To add one or several objects in your model, which collect statistics to an open report, select
it/them in the Frame and press F6. In our example we added the Drain object.
You will notice that the report added the objects Drain and Drain1 to the list of stationary
resources as well as to the drop-down list of available topics.
• To jump to the statistics of this Drain, select Drain Statistics from the drop-down list. For details
compare the Statistics Report.
• You can add any of the objects, which collect statistics, to the report. It then adds these objects
to the drop-down list:
• To save the report as an HTML file (*.htm or *.html) or as a text file (*.txt) click Save. Enter a
name for the file and select the folder into which you want to save it.
To quickly and easily show values of interest during a simulation run in your simulation model, you
can define a Display Panel each for the individual objects in the Frame. The display panel is kind
of a dashboard that watches statistics values or states of the objects and shows them in different
ways: As text, as a bar or as an LED.
When you deactivate Icon Animation Plant Simulation show the display panel, but does not
update its values and continues showing the previous values. It does not update the values either,
when no simulation is running. To still show current values, it updates them:
• When the simulation stops, either because you stopped it or because the End time has been
reached.
You can:
• Show Values as Text
• Click the station for which you want to show the value with the right mouse button and select Edit
Display Panel or click Edit Display Panel on the Home ribbon tab.
• To activate and to show the Display Panel in the Frame, select the check box Active. To
deactivate it, clear it.
• Enter the Width and the Height of the display panel in the Frame. If need be, adjust the X-position
and the Y-position.
o To make the background color of the display panel shine through the text, select Transparent.
o Enter the X-position of the label on the display panel and click OK.
• Then, define the Border color around the display panel and its Background color to make
the display panel stand out in the Frame. Click the drop-down arrow in the color box and
select a color in the dialog Colors. We selected black as the border color and light gray as
the background color.
• Click Apply to show the display panel with the item you defined so far in the Frame. As you’ll
want to show the value to the right of the label, increase the Width of the display panel.
• Next, select the value you want to display next to the label. Click New.
o In the dialog Display Panel Element click and select the Value you want to show.
As we want to show the working portion of our station, we select the statistics method
statWorkingPortion
o Select the display Type > Text and select Display as percentage. Finally, adjust where Plant
Simulation shows the value on the display panel by moving the X-position to the right of
the label Working:.
As we want to show several values aligned correctly one below the other, we align them right.
• Click the station for which you want to show the value with the right mouse button and select
Edit Display Panel.
• Select the check box Active to show the Display Panel in the Frame.
• To display the bar above the icon, move the X-position and the Y-position to the top left corner
of the icon.
• Enter the width and the height of the display panel in the Frame. In this case it matches the
width and the height of the bar itself.
o In the dialog Display Panel Element click and select the Value you want to show. As we
want to show the number of parts in the buffer, we select the method numMU.
o Select the Color of the bar and enter its Length and its Width.
o Finally, select the Direction into which the bar deflects starting at the X-position of the
item. We selected right.
Suppose you want to display the working, waiting, blocking, failed and paused portions of a
station on a display panel below the object.
• Click the station for which you want to show the values with the right mouse button and select
Edit Display Panel.
• Select the check box Active to show the display panel in the Frame.
• Enter the position and the width and the height of the display panel in the Frame.
• In the dialog Display Panel Element click and select the Value you want to show. We
selected the statistics method statWorkingPortion.
• Select the Color of the bar and enter its Length and its Width.
• Select the Direction into which the bar deflects starting at the X-position of the item. We
selected up.
• Click OK again to finish defining the display panel. It then looks like this.
• Repeat the steps described above to add the values statWaitingPortion, statBlockingPortion, etc.
to the display panel. Select a different color for each value and to shift the X-position of each
value to the right so that they do not overlap. The result will then look like this.
Suppose you want to add a light-emitting diode to display more states on the icon of the object than
the built-in LEDs show. You can, for example, show an LED if the Line is occupied.
• Click the station for which you want to show the LED with the right mouse button and select
Edit Display Panel.
• Select the check box Active to show the Display Panel in the Frame. Enter the position and
the width and the height of the display panel in the Frame.
OnOff := ShowDisplayPanel.Value
MyStation1.DisplayPanel.Active := OnOff
Line.DisplayPanel.Active := OnOff
Buffer.DisplayPanel.Active := OnOff
MyStation2.DisplayPanel.Active := OnOff
When you then click the Checkbox, Plant Simulation hides the displayed display panels. When you
click it again, Plant Simulation displays the hidden display panels again.
The display window of the Chart does not use the standard Siemens PLM theme, but
your Windows theme.
The dialog window of the Chart uses the standard Siemens PLM theme.
The Chart graphically displays the data sets that Plant Simulation recorded during a simulation
run. You can select to show:
• Data from a table, into which you saved the simulation results, for example.
• Data from input channels you define that dynamically record the values of attributes of interest of
objects that your are interested in.
To show statistics values of an object in the Chart, which you inserted into a Frame, you can use
drag-and-drop:
To Drag a To a
Show the statistics of a material flow object material flow object Chart
• To apply the settings you selected in the dialog and to show the records, click Apply. When you
resize the display window, Plant Simulation also resizes the shown graph.
• To show the data the Chart collected in the display window, click Show Chart.
• To open the dialog of the Chart, double-click anywhere in the display window.
• To make a Chart of type Histogram or Plotter collect data during the simulation run, select
Collect data in the dialog. To deactivate data collection, clear the check box.
• To delete all values that the Chart collected, select Tools > Reset Values.
The Chart lets you select settings in a number of ways. You can:
• Select Settings in the Statistics Wizard
When you select another Category, the Chart automatically shows the icon of this category in the
Frame window.
A Chart, which you insert into a Frame, provides a Statistics Wizard. Right-click the Chart and
select Statistics Wizard on the context menu.
• Select the class(es) of object(s) for which you would like to show statistical data in the Chart
under the group box Class. The Chart only adds material flow objects to the display for which
you selected the check box Resource statistics in the Tab Statistics.
• Select the type(s) of resource(s) for which you would like to show statistics of the selected
object(s) in the Chart from the drop-down list box Resource type: Production, Transport or
Storage. Select the Resource type on the tab Statistics of an object collecting statistical data.
Use the check boxes in the Statistics Wizard to restrict which objects Plant Simulation shows.
• If you would like Plant Simulation to also show statistical data of objects within Frames that you
inserted into the Frame in which the Chart is located, select the check box Include subframes.
• Select the criterion which Plant Simulation uses when sorting statistical data from the drop-down
list Sort criterion: Either the Name of the object, or one of the states it is in: Working, Setting-Up,
Waiting, Blocked, Failed, or Paused.
To sort the stations by their fame in alphabetical order from A to Z, select Sort criterion > Name.
To sort the stations in the order that meets your needs, drag the stations onto the Chart in the
order it is to show them. To change the order at a later point in time, edit the table of the Input
channels by cutting the respective columns of the objects and pasting them in the desired order.
• Finally, click OK to open the display window of the Chart with the settings you selected in the
dialog.
Before you start your simulation run, you can tell the Chart that to use as the source of the data
it displays and in which mode it collects data.
The display window of the Chart does not use the standard Siemens PLM theme, but
your Windows theme.
The dialog window of the Chart uses the standard Siemens PLM theme.
• Select the Data source, i.e., whether the Chart takes the data you want to display from a set
of input channels or from a table.
• To show values of channels you define in a table file, select Input Channels from the drop-down
list.
To open a table into which you can enter the input channels, click Table File. These channels
are, as a rule, the paths to attributes or methods of objects, whose values you want to display.
You can also enter complex expressions, such as the sum of two attributes, etc.
Enter any text you want to add as the legend to the Chart into the row index.
For the Statistics type> Resource we preconfigured the following entries in the Statistics Wizard:
• To show the contents of a table as a diagram, select Table File. This might, for example, be a
table into which you saved the results of a simulation run.
Enter the name and the path of the table file containing the data, or click the button and
select the table in the dialog Select Object.
Enter the Range of the table cells you want to show.
o To show all cells in all columns and rows, enter {*,*}..{*,*}.
o To show the one but last column of the table, enter {-2,*}..{-2,*}.
o To show the one but last and the last column, enter {-2,*}..{*,*}.
• Select which mode the Chart uses to update the data it shows.
o Sample mode updates the Chart periodically and takes the next sample after the time span
you enter into the text box Interval.
o Watch mode updates the Chart, whenever the value of an observable Method, for example
numMU, numMUParts, statMaxNumMU, statNumIn, statNumOut, etc. or of a observable
attribute changes, for example Pause, Speed, Unplanned, etc.
The column Watchable in the dialog Show Attributes and Methods of the individual objects
shows all methods and attributes Plant Simulation can observe.
o Plot mode updates the Chart, whenever a simulation event takes place.
• Show the frequency distribution for one or several input channels, see Show Values in a
Histogram.
• Show the progression of one or more values over time, see Show Values as the Chart Plots Them.
When you select another Category, the Chart automatically shows the icon of this
category in the Frame into which you inserted it.
• Show a number of x-y pairs of values or several sets of x-y pairs of values, see Show Values
as an XY Graph.
To show a number of values or several sets of a number of values as a chart, click the tab Display
and select Chart from the drop-down list Category.
To show the frequency distribution for one or several input channels as a histogram, click the
tab Display and select Histogram from the drop-down list Category. A histogram graphically
summarizes the distribution of a data set.
To make the Chart collect data during the simulation run, select Collect data in the dialog. To
deactivate data collection, clear the check box.
To show the progression of one or more values over time, click the tab Display and select Plotter
from the drop-down list Category.
To make the Chart collect data during the simulation run, select Collect data in the dialog. To
deactivate data collection, clear the check box.
You can only show values as an XY graph, when you select Data > Data source > Table
File.
Select the type of Chart for displaying the recorded data. A record consists of the entries of a row or a
column, depending on the setting you selected under Display > Data.
Depending on the Category you selected ( Chart, Histogram or Plotter), the Chart provides some
or all of the following chart types:
100% Stacked show each record as a column, stacked one on top of the other, showing
Columns the respective percentage of the entire set of 100 percent.
shows each record as a set of bars, one stacked horizontally next to each
100% Stacked Bars
other, showing its respective percentage of the entire set of 100 percent.
shows each record as areas. When displaying several records, the Chart
stacks the areas from the individual records one behind the other. Use
Area
this to show the trend of the contribution of each value over time or
categories.
shows each record as areas. When displaying several records, the Chart
Stacked Area
stacks the areas from the individual records one on top of the other.
shows each record as a set of areas, one stacked on top of the other,
showing the respective percentage of the entire set of 100 percent.
100% Stacked Area
Displays the trend of the percentage each value contributes over time or
categories.
shows each record as a set of data points, and fits the best straight
Points and Best Fit
line to them. The line is calculated from least-squares-approximations
Line
of the data set.
shows each record as a set of data points, and fits the best curved line
Points and Best Fit
to them. The curve is calculated from least-squares-approximations
Curve
of the data set.
shows the x-y pairs as data points. The first record contains the
XY Points x-coordinates. The Chart interprets all additional records as the
associated y-coordinates. Use this to compare pairs of values.
shows the x-y pairs as data points and connects them with a line. The
Line first record contains the x-coordinates. The Chart interprets all additional
records as the associated y-coordinates.
shows a vertical bar for each x-y pair, starting from the zero line. The
Sticks first record contains the x-coordinates. The Chart interprets all additional
records as the associated y-coordinates.
connects the points belonging to the x-y pairs and fills the areas thus
Area created. The first record contains the x-coordinates. The Chart interprets
all additional records as the associated y-coordinates.
• Select how the Chart show the records i.e., the entries of a row or of a column.
o Graph show the records as a graph only in the display window.
o Table show the records as a table, i.e., as text only in the display window. Select a font and
a relative font size on the tab Font
o Graph and Table show the records as a graph and as a table in the display window.
• Select how the Chart show the data. This way you can present different views of the same record.
• If you want to, you can also select a 3D effect for some of the Chart Types:
o None adds no 3D effect to the Chart Type you selected.
o Gradient bars adds an effect between a gradient and a 3D look to the chart type you selected.
• To change the background color of the Chart proper in the display window, click the tab Color.
Double-click the cell labeled Background and select another color. Click Apply to change
the color.
• To change the color around the Chart proper in display window, click the tab Color. Double-click
the color field next to Desk and select another color. Click Apply to change the color.
• To display the Chart in the Frame, instead of the icon of the object, select Display in frame
on the tab Display.
We advise to increase the size of the icon of the Chart in the Frame: Hold down Shift + Ctrl, grab
one of the four corners of the icon with the mouse and drag the icon to a convenient size.
• To interrupt the line the Chart draws for values that are not defined, select Gap when null on the
tab Display. To continue drawing the line, clear the check box.
• To copy the contents of the display window to the Clipboard is a bitmap, select Tools > Copy to
Clipboard. You can then paste it into another application with Ctrl+V or Home > Paste.
• To show Grid lines in the x-axis in the display window, select X-axis on the tab Axes. Enter
the maximum number of grid lines on the x-axis. This feature is especially handy, when the
Chart displays a large number of points within a limited space and you want to regulate how
many grid lines the display window shows.
To hide them, clear the check box.
• To show grid lines on the y-axis in the display window, select Y-axis .
To hide the grid lines, clear the check box.
• To set the range the Chart is to display scaled on the y-axis, enter the first value of into the left
text box. The default setting 0 … 0 means that Plant Simulation scales automatically.
Enter the last value of the range the Chart is to display scaled on the y-axis into the right text box.
When you enter neither Title for Subtitle, the Chart might, under certain circumstances,
cut off the upper part of the y Range. To prevent this, you can enter a blank space
into the text box Subtitle.
Naturally, you will also want to add a title and a subtitle to your chart, and format them, add text to the
x-axis and to the y-axis and add a legend that tells what the values mean.
• Enter any text that Plant Simulation show as the title of the Chart in the display window into the
text box Title. In our example we entered Utilization of Stations.
Select a font, if you want to bold face or italicize the text and a relative font size on the tab Font.
Select a color for all text in the display window on the tab Color. Double-click the color field next
to Font and select another color. Click Apply to change the color.
• Enter any text that Plant Simulation show as the subtitle of the Chart in the display window into
the text box Subtitle. In our example we entered Engine Plant Anytown.
• Enter any text that Plant Simulation show in the display window on the x-axis. In our example
we entered Station.
Select a font, if you want to bold face or italicize the text and a relative font size on the tab Font.
This font applies to all labels, except for the Title, the Subtitle and data displayed in
Table format in the display window
• Enter any text that Plant Simulation show in the display window on the y-axis. In our example
we entered Percent of 100.
• Select if and on which side of the display window Plant Simulation show the legend for the
values the Chart displays.
As you remember, you enter the text you want to show as the legend into the row index of the
table when you select Data source > Input Channels > Table File.
• If need be, you can also add additional lines and/or text to the display window. Click Annotations
and fill on the table that opens.
• Type: Enter 0 for displaying a vertical line or enter 1 for displaying a horizontal line. Enter 2 or 3
for labeling the x-axis or the y-axis. Enter 4 for any text.
• Value: Enter the value where the Chart displays the line in the display window. For a vertical
line this is the x-value, for a horizontal line this is the Y-value.
• From: Enter the starting point of the line here. If you do not enter a value, the Chart extends an
existing line. This way you can not only create horizontal and vertical lines but also diagonal lines.
• To: Enter the end point of the line here. If you do not enter a value in the cells From and To, the
Chart draws the line from the left to right, or from the top to the bottom of the display window.
• Color: Enter the number of the color of the line here. This is the number of one of the lines you
defined on the tab Color.
• Style: Enter the style of the line here, such as dotted, dashed, etc.
1 is a dashed line
2 is a dotted line
3 is a dash-dot line
4 is a dash-dot-dot line
When you want to present all of the results of a simulation run, which Plant Simulation outputs to
tables and diagrams, on an HTML page on screen, you will use the object HtmlReport. You can also
print, and save, this HTML page for sharing it with your colleagues or for displaying it on a web site.
You can insert the HtmlReport into your simulation model from the folder UserInterface in the
Class Library or from the toolbar User Interface in the Toolbox.
To open the dialog Object Parameters for an object, which you added to the tab Content with
drag and drop, click the mouse between the name of the object and the closing bracket, and
click .
Then, select the settings you need in the dialog Select Object.
• Enter the content, which the HtmlReport shows, in textual form on the Tab Content of the object.
As you will see, the syntax is easy to understand enabling you to quickly type in the required
instructions.
In our example below, we’ll introduce the most important items which you can add to your report.
• To address an object, we entered its name within square brackets, for example [MySingleProc].
• To show the icon named logo of the object HtmlReport and to zoom the icon when zooming the
report window, we entered an exclamation mark followed by the name of the icon enclosed in
square brackets followed by an asterisk. The asterisk denotes zooming.
[!self, logo, *]
To show the picture of your company, for example its logo, add it as an icon to the object
HtmlReport and name it logo. In our example below, we used the Siemens logo.
• To show a heading of level 1, we entered a number sign # followed by the title of the heading:
# General Information
• To show a heading of level 2, we entered two number signs ## followed by the title of the heading:
## Model Overview
• To show body text, followed by a bulleted list, we entered the body text, followed by a * denoting
the bullet, and the text we want to display.
Below we provide this information about the simulation model:
* Model file: [=modelFile]
* Simulation root: [EventController.Location]
* Simulation time: [EventController.SimTime]
* End time: [EventController.End]
• To show a formula, we entered the equal sign =followed by the name of the functionenclosed
in square brackets:
* Model file: [=modelFile]
• To show the value of the attribute SimTime of the EventController, we entered the name of the
object followed by the name of the attribute enclosed in square brackets:
* Simulation time: [EventController.SimTime]
• To show a heading of level 2, followed by a screenshot of the Frame containing our model,
we entered:
## Simulation Model
The simulation model looks like this:
><**[current, "Test Simulation"]**
The words Test Simulation are the caption that is shown below the screenshot.
The greater than sign followed by a less-than sign >< centers the screenshot.
o We selected the TableFile/List chose values you would like to show. We then clicked OK.
o We entered the caption which the HtmlReport show below the TableFile.
o We entered the identifiers of the columns of the TableFile which the HtmlReport show on
the HTML page.
Instead, we can also directly type in the respective instructions, compare the example below:
# Statistics Tables
These **statistics values** are of general interest. Feel free to add more.
## Drain Statistics
Drain statistics shows the contents of the *summary report* table.
[.MaterialFlow.Drain*]
## Deliveries
Delivieries shows the contents of the table object *DeliveryList.*
[DeliveryList]
• To show the contents of objects of type Chart from our model as screenshots, proceed like this:
o We selected the Chart which you would like to show. We then clicked OK.
o We entered the caption which the HtmlReport show below the Chart.
o We entered the image width with which the HtmlReport show the picture of the object. You
can also enter an asterisk (*) for either the width or the height to ensure that the image
will not be distorted.
o We entered the image height with which the HtmlReport show the picture of the object. You
can also enter an asterisk (*) for either the width or the height to ensure that the image will
not be distorted. Click OK.
Instead, we can also directly type in the respective instructions, compare the example below:
# Resource Chart
The *resource chart* for the *Stations* look like this. Feel free to add more.
## Stations
The utilization of the processing *Stations* is as follows:
><[StationChart, 150, 100]
The numbers 150 and 100 designate the width and the height of the screenshot.
The greater than sign followed by a less-than sign >< centers the screenshot.
• To show a solid horizontal line between the contents of the Report proper and the footer,
we entered:
---
• To show a footer containing indented text, designated by the greater sign >, the current date and
a signature, we entered the following HTML tag:
> Cedar Rapids, [=day(sysdate)].[=month(sysdate)].[=year(sysdate)+1900]
Best regards,
<span style="font-family: Segoe Script; font-size:16pt">H. Thompson</span>
Our finished Report with the above settings looks like this:
When you want to show a value of an attribute, of a method, or of a Variable at all times throughout
the entire simulation run, we will use the Display . The Display is, for example, ideally suited to
dynamically show the fill level of a Buffer.
You can insert it into your simulation model from the folder UserInterface in the Class Library or
from the toolbar User Interface in the Toolbox.
• When you deactivate the Display, it shows its icon in the Frame, into which you insert edit.
• When you activate it by selecting , the Display shows a value in the Frame window,
such as .
You can:
• Select which Data the Display Shows
Before you start your simulation run, you have to tell the Display which value it displays and in
which mode it collects the data.
• Click to enter the path to and the name of the object whose data you want to view.
Then, enter the value of a global variable (Variable), of an attribute or of a method of
an object into the text box after the path. You might, for example, enter buffer.numMU,
.Models.Frame.ParallelProc.statNumOut, store.XDim, etc.
The Display supports the data types boolean, integer, real, string, object, time, money, length,
weight, speed, date and datetime. When the path you enter is invalid, the background of the text
box changes to red.
• If you want to, you can also enter a brief description (Comment) of the displayed value. You
might, for example enter a description of the attribute that the Display displays, such as Fill
Level Buffer. The Display show this text below the value in the Frame window.
When you select to display the value as Text, we recommend to enter one or two
spaces after the last word, so that the value does not appear too close to the comment.
• Select which mode the Display uses to update the displayed data.
o Sample mode updates the Display periodically and takes the next sample after the time
span you enter into the text box Interval.
o Watch mode updates the Display, whenever the value of an observable Method changes,
for example numMU, numMUParts, statMaxNumMU, statNumIn, statNumOut, etc. or of an
observable attribute, for example Pause, Speed, Unplanned, etc.
The column Watchable in the dialog Show Attributes and Methods of the individual objects
shows all methods and attributes which Plant Simulation can observe.
Back to Showing Values During the Simulation Run with the Display
Before you start your simulation run, you have to tell the Display how to show the value it collects.
In Sample mode it updates the value periodically, in Watch mode, whenever the displayed value
changes.
• Select how you want the Display to show the value: As Text, as a Bar or as a slice of a Pie.
The Display can only show numerical values as a bar and as a slice of a pie. These are easy to
comprehend, but not very well suited if accuracy is important.
• When you select Bar or Pie, the Display show the value in relation to the Minimum and the
Maximum value of the range you enter. An empty bar/pie indicates values less than or equal to
the lower bound of the range. A full bar/pie represents values greater than or equal to the upper
bound of the range. You can also change the height and the width of the bar/pie graphic by
dragging its outline with the left mouse button while holding both the Shift and the Ctrl keys down.
The Display show the actual minimal and maximal values as dashed lines in the Frame window,
which is not as accurate as you might need it to be. To view the current values, click the tab Data
and look at the boxesMinimum and Maximum.
To reset the values on the tab to 0, click Reset Values.
• When you select Text, the Display show the value as a number or as text in the Frame window.
Then, you can select a Font size for displaying the value itself and for displaying the Comment
you entered. Enter a blank after the text you enter so that the Comment value is not shown
attached to the text.
• To make the background of the Display you inserted into a Frame transparent, select
Transparent.
Then, the Display show the space around the text in the color you selected as the Color for the
background of the Frame, i.e., the background color of the Frame shines through the hollow
parts of the text.
• To select a color for the text the Display displays and for the outline of its display graphic, click in
the field next to Color and select a color in the dialog Colors.
Back to Showing Values During the Simulation Run with the Display
You can dynamically show statistics values, which Plant Simulation records in a global variable, at all
times throughout the entire simulation run on an Microsoft Excel data sheet. You can thus use the
spreadsheet functions and the graphic display options that Excel provides to visualize values. Plant
Simulation and Excel exchange data via DDE.
You can insert the Variable into your simulation model from the folder InformationFlow in the
Class Library or from the toolbar Information Flow in the Toolbox.
You will:
• Set the Variable Up
• Set Excel Up
• Embed the Excel File into the Model Using the Object FileLink
For visualizing the value, which the global variable records, you will first insert an object of type
Variable into the simulation model. Then, select settings for displaying the value in the Frame and
for sending it to Excel:
• Enter a meaningful Name. In our example we entered AverageThroughputTime is we want to
record the average throughput time.
• Select the Data type of the value to be recorded. As we want to measure the throughput, we use
the default setting integer.
• Select how to display the value, which the Variable records, in the Frame. We selected to
show the Variable transparent, in blue with a large font size on the background of the Frame
• As we want to send the value of the Plant Simulation Variable to Excel, we select Support
DDE hotlinks.
Go to Set Excel Up
Go to Embed the Excel File into the Model Using the Object FileLink
Back to Showing Statistics During the Simulation Run in Excel
Set Excel Up
After you have inserted and set up the Variable chose value you want to show in Excel in Plant
Simulation, you have to set up Excel.
• Start Excel.
• Enter ='eM-Plant'|data!'.<absoute path to the Variable>' into the cell that is to show the
value of the Variable.
To show the Average throughput time for model 1 (cell A5) per minute, we entered
='eM-Plant'|data!'.Models.Model1.AverageThroughputTime'/60 into the cell B5.
• Then, add additional display options of the values, such as charts, etc. to the cells below. Consult
the Microsoft Excel Help for details of how to accomplish this. Save the file.
Embed the Excel File into the Model Using the Object FileLink
To be able to open the Excel file from within your Plant Simulation model, drag it from the Windows
Explorer to the Frame and drop it there.
To embed the Excel file into the simulation model, click Yes. Then, you can double-click the icon of
This connection between the Excel and the Plant Simulation Frame is established with a FileLink
object. To open it, click with the right mouse button and select Open.
Naturally you can access most of the statistics values with methods and attributes:
• For the material flow objects the names of the Methods are listed next to the name of the value in
the description of the Statistics Report.
• For the Drain the names of the Methods are listed next to the name of the value in the description
of the Statistics Report.
• For the Exporter and the Worker the names of the Methods are listed next to the name of the
value in the description of the Statistics Report.
• In addition, you might want to check the topics Methods for Accessing Statistics of the Material
Flow Objects and Attributes for Statistics Values of the Material Flow Objects.
• For the MUs the names of the Methods are listed next to the name of the value in the description
of the Product Statistics of the MUs and of the Resource Statistics of the MUs.
• For the object Transporter the names of the Methods are listed next to the name of the value
in the description of the Driving Statistics of the Transporter.
• In addition, you might want to check the topics Methods for Accessing the Statistics of the Mobile
Objects and Attributes of All Mobile Objects.
To open the dialog of the object Checkbox, double-click the name Checkbox to the right of the
To switch between the on and the off state of the Checkbox, click its icon in the Frame. To show an
expression of your choice next to the check box, enter it into the text box Label. We entered Motor
in our example.
• Click New Icon on the Edit ribbon tab of the Icon Editor and draw a new icon for the state/value
true. Name it true3 for example. Make true3 the current icon.
When you now click the check box in the Frame, it changes its icon from green , meaning on,
to red , meaning off.
Back to Toggle States with the Checkbox
If you want the check box to switch modes when a certain action takes place in your simulation
model, you have to program this in a control.
Double-click the name of the check box and select the control in which you programmed when
the icon of the check box is to change from one state to the other. We wrote the method
myStateChangeControl to do that.
You can insert the Button into your simulation model from the folder UserInterface in the Class
Library or from the toolbar User Interface in the Toolbox.
The button executes the action, which you programmed in the control, when you click it. The button
shows the label you type in as text on the button in the Frame.
By default Plant Simulation does not show a tooltip for the button in the Frame when you roll the
mouse over it. To display a your own tooltip, create a user-defined attribute and name it Tooltip.
Plant Simulation can show the button in the Frame in a number of ways:
• With the built-in icon and the label you type in, for example . You might have to
adjust the width and the height so that the label fits the button without being cut off. You can
do this by holding down Ctrl+Shift and dragging a corner of the icon. Or you can enter exact
values into the text boxes. Or you can combine both methods by first dragging to roughly resize
the button and then by fine-tuning the values in the text boxes.
Then, you can show the text you enter as the label in this user-defined icon of the button,
for example.
To be able to tell that you clicked the button, we recommend to draw two pictures for the button,
one for the unclicked state , and one for the clicked state . In our example
above the name of the unclicked icon is icon3, the name of the clicked icon consequently has
to be icon3_down. Note that the button does not stay depressed, but returns to its unclicked,
raised state when you release the mouse button.
• With a picture you paste into a new icon in the icon editor, and for example.
Then, program the action in the button control that the button executes when it is clicked.
To open the dialog of the button, click it with the right mouse button and select Open on the context
menu.
You can also select the button by dragging a marquee around it.
See also Configure the Buttons to Open the Parts Table and the Callback Method
Back to Toggling States and Executing Actions
You can insert the Drop-Down List into your simulation model from the folder UserInterface in the
Class Library or from the toolbar User Interface in the Toolbox.
In our sample model we show how to combine the user-defined controls Button, Check Box, and
Drop-down List to make meaningful use of them and how to access a number of settings in your
simulation model quickly and easily.
• The check box turns moving the parts on to a dedicated tray in the plant
on or off.
• The drop-down list sets the dedicated destination tray of the parts if you
click the check box to on.
• The button opens the table according to which the Source produces the parts.
• The button opens the sensor control of the feeder line that sends the parts on
to their destination trays according to the settings of the check box and of the
drop-down list .
• Configure the Buttons to Open the Parts Table and the Callback Method
Our Source with the label Parts In produces the parts in a cyclical sequence according to the
settings, which we entered into the Parts Table.
Compare the topic Produce Parts in a Fixed Sequence One Time Only in how to work with the
production table.
Enter the attribute, which sets the tray to which the part is going to be moved, into the sub-table that
double-clicking into the respective cell in the column Attributes of the production table opens.
We entered the attribute Destination and the respective Tray.
If is turned off, the Source produces the part Board in a cyclical sequence and
moves the boards across the materials handling equipment to the destination trays.
For moving the part, the callback method, which we enter as a sensor control into the feeder
line, uses the attribute Destination of the part.
Go to Configure the Feeder Line with Sensor and Sensor Control
Go to Configure the Turnplate to Rotate the Part According to an Attribute
Go to Configure the Check Box and the Drop-down List
Go to Configure the Buttons to Open the Parts Table and the Callback Method
Back to Select One of Several Options from a Drop-down List
The feeder line is part of the materials handling equipment that transports the parts to their destination
trays. Our line is 11 meters long. We entered a sensor at 10 meters and entered the method
PartDestination, which has the label Callback, as the sensor control.
Following the feeder line in our plant we added a Turnplate to rotate the produced boards. For Tray1
and Tray3 the blue part points to the right/up, for Tray4 and Tray2 the red part points to the right/up.
To do so, we selected the strategy > MU Attribute and the attribute type > Object, and entered the
required values into the attribute list.
We entered the attribute Destination, the names of the destination trays, Tray1 to Tray4, and the
angle around which the board will be rotated. 90 stands for 90 degrees clockwise, -90 stands for 90
degrees counterclockwise.
In our example the check box and the drop-down list work together:
• The check box turns moving the parts on to a dedicated tray on or off.
• The drop-down list sets the dedicated destination of the parts once you
click the check box to set it to on.
To configure the drop-down list, proceed as follows:
o Enter the width and the height with which the drop-down list will be shown in the Frame. We
entered a width of 120 pixels and the height of 20 pixels.
o Click the button Items and enter the items which the drop-down list show in the Frame.
o Enter the number of the item in the list which the drop-down list will show in the Frame by
default into the text box Value. We entered 1 to make the drop-down list show Tray1 then it
is closed.
To open the dialog of the drop-down list, click it with the right mouse button and select Open on
the context menu.
Configure the Buttons to Open the Parts Table and the Callback Method
We finally thought it to be helpful if we could open the parts table and the callback method with one
click instead of having to navigate to them in the Frame and double-clicking their icon.
To do so, we configured two buttons:
• The button opens the table according to which the Source Parts In produces
the parts.
o Enter the width and the height with which the button will be shown in the Frame. We entered
a width of 120 pixels and the height of 20 pixels.
o Enter the control, which will be called, when you click the button. We decided to use a
control that is part of the object. So we right-clicked into the text box Control and select
Create Control.
We then entered the following source code into the control that opened. It opens the parts
table in the Frame with the name TableFile and the label .
The source code in SimTalk 2.0 notation looks like this:
self.~.~.TableFile.openDialog
is
do
self.~.~.TableFile.openDialog;
end;
• The button opens the sensor control of the feeder line that sends the parts on
to their destinations according to the settings of the check box and of the
drop-down list
o Enter the width and the height with which the button will be shown in the Frame. We entered
a width of 120 and the height of 20 pixels.
o Enter the control, which will be called, when you click the button. We decided to use a
control that is part of the object. So we right-clicked into the text box Control and select
Create Control.
We then entered the following source code into the control that opened. It opens the callback
method of the sensor control in the Frame with the name PartDestination and the label Callback.
As we want to open the window of the method, not to execute its source code, we have to enter
the reference operator in front of the method openDialog.
• The BottleneckAnalyzer and the SankeyDiagram for analyzing and displaying the flow of
materials through a plant.
• The EnergyAnalyzer for analyzing measures for saving energy in your plant.
We modeled the dialogs of the objects with the object Dialog. The windows of the objects
do not use the standard Siemens PLM theme, but your Windows theme.
BottleneckAnalyzer
BottleneckAnalyzer
The BottleneckAnalyzer visualizes the standard statistics of the material flow objects and sorts the
data into a table. It displays the statistics of the material flow objects that are located in the same
Frame is the BottleneckAnalyzer or in sub-frames. The bottleneck analyzer works statically, i.e., it
does not collect data during the simulation run. For this reason that you can insert it even after
the simulation run is finished.
You can Analyze the model, Remove the statistics charts, and Open the ranking table. You can also
configure the BottleneckAnalyzer: you can select the type of Resources and select Display options.
You can insert the BottleneckAnalyzer into your simulation model from the folder Tools in the Class
Library or from the toolbar Tools in theToolbox.
When an object has the user-defined attribute _BNanalysed, of data type boolean, and when you set
this attribute to false, this object will not be part of the BottleneckAnalyzer’s analysis. You can create
this attribute for an object by dragging the object over the BottleneckAnalyzer and by dropping it there.
Back to BottleneckAnalyzer
Analyze
To visualize the statistics, click the Analyze button. For a Frame, the BottleneckAnalyzer show the
statistics of the critical resource, which is the material flow object processing the highest number of
parts.
The BottleneckAnalyzer only shows the statistics of a material flow object when the
statistics is activated and for the type of resource you selected in the dialog Configure.
green Working
brown Setting-Up
gray Waiting
yellow Blocked
red Failed
Back to BottleneckAnalyzer
Remove
To delete the displayed values, click the Remove button.
Back to BottleneckAnalyzer
Open
To select the sorting criteria of the statistical values, which the BottleneckAnalyzer show and which it
then writes to a table file, click the Open button.
When you click OK, the BottleneckAnalyzer opens a table file that lists all material flow objects,
showing the statistical values for the states you selected.
Back to BottleneckAnalyzer
Resources
Select if the BottleneckAnalyzer displays statistical data for a resource of type Production, Transport
and Storage on the tab Configure.
Back to BottleneckAnalyzer
Display
Select how the BottleneckAnalyzer displays the statistics values from the drop-down list:
As Only Bars, as Plus Scale, or Plus Background.
Back to BottleneckAnalyzer
Navigate Menu
The menu command Open Location opens the Frame window in which the object is located.
Back to BottleneckAnalyzer
Help Menu
The Help menu provides these menu commands:
Contents
The menu command Contents opens the table of contents of the Tecnomatix Plant Simulation help.
Index
The menu command Index opens the index of the Tecnomatix Plant Simulation help.
Help on BottleneckAnalyzer
The menu command Help on BottleneckAnalyzer opens the help topic pertaining to the
BottleneckAnalyzer.
Related Topic
Using HTML Help
Back to BottleneckAnalyzer
EnergyAnalyzer
EnergyAnalyzer
The EnergyAnalyzer analyzes the energy consumption of the selected machines in your plant.
You can insert the EnergyAnalyzer into your simulation model from the folder Tools in the Class
Library or from the toolbar Tools in theToolbox.
You can:
• Add the objects for which the EnergyAnalyzer collects energy consumption data on the Tab
Objects.
• Show the collected energy consumption data in a table or in a chart in the Tab Evaluate. In
addition you can visualize the values of the individual machines. Show a plot the collected values
during the simulation run.
The context menu of the EnergyAnalyzer also provides commands for some of the features described
above.
Tab Evaluate
Tab Evaluate
Back to EnergyAnalyzer
Open
To open the table that shows the names and the collected energy values of the selected objects,
click Open.
• The values in the first three cells are values that the EnergyAnalyzer computes.
sum of the
entire energy
Energy StatEnergyTotalConsumption
consumption of
the station.
portion of the
entire energy
Energy consumption
StatEnergyOperationalConsumptionPortion
operational of the station
while it was
operational.
current power
Current
input of the PowerInput
power input
station
• The values in the remaining cells are values that the built-in energy features collected, compare
Energy Statistics.
Show
To show a chart of the energy consumption of the selected objects, click Show.
Note that the chart of the EnergyAnalyzer show the energy consumption in kilowatt hours (kWH). The
built-in Energy Statistics chart, on the other hand, shows the energy consumption in percent of 100.
The colors for the energy states are identical in both charts.
Visualization
To visualize energy consumption of the selected objects with a colored circle around the respective
object, click Show.
To hide energy consumption of the selected objects, click Hide.
Red means that this object has the highest energy consumption. The red circle automatically has
the greatest line width.
For comparing the energy consumptions of the resources, the EnergyAnalyzer show colored bars
above the objects in the Frame. To be able to compare them, the graphics must not obscure the
bars. For this reason you can set the common z-coordinate of the base area of all bars with the
attribute _3D_lowerSurface. The default value of 2 makes sure that the built-in graphics are visible.
This height corresponds to a consumption of 0.
The EnergyAnalyzer assigns a bar to the maximum value, whose top surface has the height
_3D_upperSurface hat. Its default value is 12, so that the bar of the resource with the maximum
consumption has a height of 10.
For identifying the energy consumption, the EnergyAnalyzer divides the consumption values of the
selected resources into four categories. For categorizing the resources it considers their maximum
consumption. When this maximum consumption is the value max, the categorizes correspond to
these consumption intervals between
1. 0 to 0.4 max
A resource of the fourth category, i.e., with the highest consumption, is surrounded by a thick red
circle. A resource of the first category, i.e., with low consumption, is surrounded by a thin blue circle.
Above the circles the EnergyAnalyzer show a bar chart which displays the portions of the consumption
values during the energy states working, setting-up, operational, failed, on standby, and off.
You can enter the radius of the circle on the tab Settings.
Plot
To continuously show the plotted values of the power input of the selected objects during the
simulation run, click Show.
This only works if you select the check box Monitor energy consumption on the tab Settings.
Tab Objects
On the tab Objects you can add the objects for which the EnergyAnalyzer collects energy
consumption data. To do so, click Add All. The EnergyAnalyzer then inserts all object for which you
selected the check box Active on the tab Energy into the list on the tab.
Instead, you can also select the objects in the Frame, drag them onto the EnergyAnalyzer, and
drop them there.
To delete one or several of the objects, double-click in the list. Then, delete the contents of the
respective cell in the dialog that opens and click OK.
Back to EnergyAnalyzer
Tab Settings
Tab Settings
On the tab Settings you can:
• Select to Monitor energy consumption of the objects or to not monitor it.
• Select to show a Display panel of cumulated energy values the objects or to not show it.
Back to EnergyAnalyzer
Monitoring all changes may have detrimental effects on run time of your model.
Graphics layer
Enter a sufficiently great negative number to ensure that the energy data is always displayed in front
of all objects and vector graphics in the Frame that contains your model.
Back to Tab Settings
Radius
Enter the radius of the circle that the EnergyAnalyzer draws around the objects to show their energy
consumption.
The EnergyAnalyzer uses the radius when you click Visualization on the tab Evaluate.
Display panel
To show a display panel with these values, select the check box.
• The cumulated energy consumption of all selected machines.
• The cumulated energy consumption of all selected machines while they were in the energy
state operational.
Navigate Menu
The menu command Open Locationopens the Framewindow in which the object is located.
Back to EnergyAnalyzer
Tools Menu
The Tools menu provides these menu commands:
Set Default Colors
The menu command Set Default Colors opens the table which contains the default colors for
showing the energy states the objects can take. The Chart also uses these colors to show the energy.
Set Colors
The menu command Set Colors opens the table in which you can customize the default colors for
showing the energy states the objects can be in. To restore the default colors, which the energy
states in the Chart show as well, select Set Default Colors.
Back to EnergyAnalyzer
Help Menu
The Help menu provides these menu commands:
Contents
The menu command Contents opens the table of contents of the Tecnomatix Plant Simulation help.
Index
The menu command Index opens the index of the Tecnomatix Plant Simulation help.
Help on EnergyAnalyzer
The menu command Help on EnergyAnalyzer opens the help topic pertaining to the EnergyAnalyzer.
Related Topic
Using HTML Help
Back to EnergyAnalyzer
SankeyDiagram
SankeyDiagram
The SankeyDiagram watches and displays instantiated MUs of MU classes.
You can insert the SankeyDiagram into your simulation model from the folder Tools in the Class
Library or from the toolbar Tools in theToolbox.
You can:
• Select if the SankeyDiagram is Active or not and Display the Sankey flows.
The context menu of the SankeyDiagram also provides commands for some of the above actions.
Active
To activate the SankeyDiagram, select this. The icon in the Frame looks different for an activated or a
deactivated SankeyDiagram. To deactivate it, clear the check box.
SankeyDiagram SankeyDiagram
Back to SankeyDiagram
Display
MUs to be watched
To designate the classes of MUs, which the SankeyDiagram watches, click Open and enter the MU
classes, whose instances Plant Simulation watches, into the table that opens.
You might, for example, enter .MUs.part, .MUs.Entity, .MUs.Transporter, etc.
Back to SankeyDiagram
Color
Select one of the predefined colors for the Connectors in the Sankey diagram: Red, Cyan, Blue,
Magenta, Green, Yellow, Black or White. Clicking Select opens the dialog Colors in which you
can select another color of your liking.
Back to SankeyDiagram
Back to SankeyDiagram
Graphics in layer
Enter a sufficiently great negative number to ensure that the Sankey flows are always displayed in
front of all objects and vector graphics in the Frame that contains your model.
Back to SankeyDiagram
Navigate Menu
The menu command Open Location opens the Frame window in which the object is located.
Back to SankeyDiagram
Help Menu
Contents
The menu command Contents opens the table of contents of the Tecnomatix Plant Simulation help.
Index
The menu command Index opens the index of the Tecnomatix Plant Simulation help.
Help on SankeyDiagram
The menu command Help on SankeyDiagram opens the help topic pertaining to the SankeyDiagram.
Related Topic
Back to SankeyDiagram
Plant Simulationprovides a number of ways to import data from other applications into Plant
Simulation. In some cases you will import data into an Plant Simulationlist or a table, process it there
and then pass it on to the material flow objects. In other cases you will directly provide imported data
to the material flow objects, for example by employing the FileInterface.
You can:
The Plant Simulation lists TableFile , CardFile , QueueFile and StackFile ( and ), and
TimeSequence can open text files, Plant Simulation object files, XML files, and Microsoft Excel
files, which contain the data you want to use in your simulation project.
• Before you open a text file, we advise to select the correct data type that fits the data you are
going to import into the individual columns of the TableFile. If the text file has a column header,
which you want to also use in your Plant Simulation list, activate and show the column index
in the Plant Simulation list.
• To open a text file or an Plant Simulation object file in a list, click Import File on the List ribbon tab.
• Navigate to the folder where you stored the file. Select the type of file you would like to open
and click Open.
Note that Plant Simulation opened the object file with the formatting, which the original file had.
For the text file we had to manually select the correct data types.
• To export the contents of an Plant Simulation list or table, click Export to File or Export Object
File on the List ribbon tab.
• For our example we used the file MyTestData.xls, which looks like this in Excel.
• To open the Excel file in an Plant Simulation table, clickImport File on the List ribbon tab.
Navigate to the folder where you stored the file. Select the file you would like to open and click
Open. Select the Excel worksheet you want to import and click OK.
• The imported Excel worksheet looks like this in our Plant Simulation table.
Check the file for correct data types, data you do not need, etc. You can also pre-process or
post-process the data by programming a Method.
• To export the contents of an Plant Simulation list or table as an Excel file, click Export Excel
File on the List ribbon tab.
To import a services list, a list of shifts or a worker creation table into one of the lists, which are
embedded in an object:
In most cases importing one of the above lists involves two lists.
The first list contains any expression of your choice, which serves as a placeholder for
the sub-tables. You might, for example, enter different names for the different services
to group them by name.
The second list, i.e., the sub-list, contains the names of the actual services and the number
to be provided.
• Open the files, which you received in a text editor. Make sure that the text, which appears in
the column header, is the first line in the file. Separate the columns with tabs. Save the files as
text files (.txt).
• Click the inheritance button to the right of Services on the sub-tab Processing so that it looks
like this . Click Services.
• Right-click in the list and click Import. Navigate to the folder where you saved the text file and
click OK.
If need be, you can then manipulate the contents of the list with the commands on the Context
Menu of Embedded Lists. You might, for example, add rows or sort the list in ascending or
descending order.
• To export the contents of an embedded list as a tab-delimited text file, right-click in the list and
select Export.
Compare Enter Times During which the Installation Works Part of the Time
Back to Importing and Exporting Data
writeElement to write the simulation results back to an XML file and continue working with these
simulation results in Process Designer or another program.
To get the most out of the XMLInterface, you have to be familiar with XPath(XML Path Language)
instructions. You might, for example, check the web site http://www.w3.org/TR/xpath for more
information. In addition, you have to be familiar with programming in SimTalk.
You can insert the XMLInterface into your simulation model from the folder InformationFlow in the
Class Library or from the toolbar Information Flow in the Toolbox.
You can:
• Select the File Name, the Context and the Import Method
Select the File Name, the Context and the Import Method
When you work with the XMLInterface, you will make extensive use of XPath (XML Path Language)
instructions and of the Plant Simulation methods and attributes of the XMLInterface itself.
Into the dialog of the XMLInterface you:
• Enter the File Name of the XML file, which the XMLInterface opens, when you want to import
data. When you export data, it specifies the name of the file, which it saves.
• Enter the context of the data you want to import. The context designates the node of the structure
of the XML document at which the XMLInterface starts reading data. You might, for example,
enter the names of certain data, or of certain objects that you are interested in, for example
Data/Objects. This way you can restrict the data to be read, i.e., if you do not need to work with
all of the data contained in the XML file, you will enter a context.
If you do not enter a context, the XMLInterface imports the entire file, which may contain a large
amount of data, some of which you do not need. This might take some time to import and use
up a large amount of your computer’s RAM.
• Click to enter the path to and the name of the Method into the text box in which you
programmed how to extract and to sequentially process the imported data.
You can read the data in its entirety, and then randomly process it as a whole. Here Plant Simulation
imports the entire document first and then processes and analyzes all data in the Method, which you
program. Randomly accessing data requires that all data you want to use is in RAM. The larger the
amount of data, the more RAM the XMLInterface uses!
You might, for example:
• Select data from the XML document.
The source code in SimTalk 2.0 notation looks like this:
-- randomly accesses data via XPath instructions
var tbl:table
XMLInterface.FileName := "D:\MSXML 4.0\books.xml"
-- load the XML document for random access into RAM
XMLInterface.openDocument
-- select nodes via XPath instruction
-- selection starts at the Context node which you entered in the XMLInterface
-- the second parameter is the selection depth for each node
-- 0 means that no children will be selected
-- the result is passed to a table
tbl := XMLInterface.getNodes("book[title='Midnight Rain']", 1)
XMLInterface.close
XMLInterface.openDocument;
-- select nodes via XPath instruction
-- selection starts at the Context node which you entered in the XMLInterface
-- the second parameter is the selection depth for each node
-- 0 means that no children will be selected
-- the result is passed to a table
tbl := XMLInterface.getNodes("book[title='Midnight Rain']", 1);
XMLInterface.close;
tbl[4,1][1,1] := "xmlns:aa"
tbl[4,1][2,1] := "specAth"
-- additional attributes
tbl[4,1][1,2] := "id"
tbl[4,1][2,2] := "bk113"
-- child nodes
tbl.createNestedList(5,1)
tbl[5,1][1,1] := "aa:author"
tbl[5,1][2,1] := "specAth"
tbl[5,1][3,1] := "XYZ"
tbl[5,1][1,2] := "title"
tbl[5,1][3,2] := "UNKNOWN"
tbl[5,1][1,3] := "genre"
tbl[5,1][3,3] := "also"
tbl[5,1][1,4] := "price"
tbl[5,1][3,4] := "12,45"
tbl[5,1][1,5] := "publish_date"
tbl[5,1][3,5] := "12.1.02"
tbl[5,1][1,6] := "description"
tbl[5,1][3,6] := "xx0011"
XMLInterface.insertNodes(tbl)
-- save the changed document
XMLInterface.FileName := "D:\MSXML 4.0\tmp.xml"
XMLInterface.write
-- close the document
XMLInterface.close
tbl[5,1][1,3] := "genre";
tbl[5,1][3,3] := "also";
tbl[5,1][1,4] := "price";
tbl[5,1][3,4] := "12,45";
tbl[5,1][1,5] := "publish_date";
tbl[5,1][3,5] := "12.1.02";
tbl[5,1][1,6] := "description";
tbl[5,1][3,6] := "xx0011";
XMLInterface.insertNodes(tbl);
-- save the changed document
XMLInterface.FileName := "D:\MSXML 4.0\tmp.xml";
XMLInterface.write;
-- close the document
XMLInterface.close;
-- parent node
tbl[1,1] := "book"
-- default namespace
tbl[2,1] := "MyBooks"
-- attributes
tbl.createNestedList(4,1)
-- explicit namespace
tbl[4,1][1,1] := "xmlns:aa"
tbl[4,1][2,1] := "specAth"
-- additional attributes
tbl[4,1][1,2] := "id"
tbl[4,1][2,2] := "bk113"
-- child nodes
tbl.createNestedList(5,1)
tbl[5,1][1,1] := "aa:author"
tbl[5,1][2,1] := "specAth"
tbl[5,1][3,1] := "XYZ"
tbl[5,1][1,2] := "title"
tbl[5,1][3,2] := "UNKNOWN"
tbl[5,1][1,3] := "genre"
tbl[5,1][3,3] := "also"
tbl[5,1][1,4] := "price"
tbl[5,1][3,4] := "12,45"
tbl[5,1][1,5] := "publish_date"
tbl[5,1][3,5] := "12.1.02"
tbl[5,1][1,6] := "description"
tbl[5,1][3,6] := "xx0011"
XMLInterface.insertNodes(tbl)
XMLInterface.FileName := "D:\MSXML 4.0\tmp.xml"
XMLInterface.write
tbl[5,1][3,2] := "UNKNOWN";
tbl[5,1][1,3] := "genre";
tbl[5,1][3,3] := "also";
tbl[5,1][1,4] := "price";
tbl[5,1][3,4] := "12,45";
tbl[5,1][1,5] := "publish_date";
tbl[5,1][3,5] := "12.1.02";
tbl[5,1][1,6] := "description";
tbl[5,1][3,6] := "xx0011";
XMLInterface.insertNodes(tbl);
XMLInterface.FileName := "D:\MSXML 4.0\tmp.xml";
XMLInterface.write;
XMLInterface.selectNodes("book[genre = 'Computer']");
-- define the loop for the selected nodes
while XMLInterface.getNextNode = true loop
print XMLInterface.getNodeName;
-- check for attributes of the nodes
numberAttributes := XMLInterface.getNumberAttributes;
for i := 0 to numberAttributes-1 loop
-- print the data of the attributes
print XMLInterface.getAttributeName(i)+":" +XMLInterface.getAttributeValue(i)
next;
-- check the children of the current node
VisitChildren;
end;
-- remove the XML document from RAM
XMLInterface.close;
You can import data from a database into Plant Simulation and run your simulation in Plant Simulation
with this data. You can then write the data resulting from the simulation runs back into the database.
To get the most out of importing data from a database, you have to be familiar with SQL (Structured
Query Language) instructions. You might, for example, check the web site http://sqlzoo.net for more
information and consult the documentation that comes with the database you are using. In addition,
you have to be familiar with programming in SimTalk.
You can:
• Import Data from an ODBC Database
To import data from an ODBC database into your Plant Simulation simulation model, you will use
the Plant Simulation object ODBC . To access several databases at the same time, you can
insert several objects of type ODBC into your simulation model, each of which communicates with
another database.
You can also access the same database with several ODBC objects. We advise against doing so, as
this may result in inconsistent data caused by conflicting commands. It might, for example, happen
that one Method deletes a data set, while another Method attempts to access just this data set. Using
a single ODBC object ensures that the sequence of instructions conforms to your intentions.
This holds especially true for real databases for which you have to apply any data manipulations,
such as read, write delete, etc. with the SQL instruction commit, before they take effect.
To import data from an ODBC database into your Plant Simulation simulation model you have to:
• Set the Data Source Up
After the simulation runs are finished, you can also export the simulation results back into the
database, compare Export Data to the Database.
Go to Exchange Data with an SQL Database
Back to Import Data from a Database
• Add a new data source in the dialog ODBC Data Source Administrator. Depending on who will
use the database you can accomplish this on the tab User DSN or on the tab System DSN.
• In the dialog Create New Data Source select the ODBC driver for the data source you would like
to use. In our example we selected the Microsoft Access Driver. Click Finish.
• Click Select in the dialog ODBC Microsoft Access Setup and select the database in the
dialog Select Database. Type in the Data Source Name. If you want to, you can also add a
Description of the database. As Plant Simulation addresses the database with this name, mind
the Plant Simulation conventions for the Name!
• Click Select and select the database to which you want to connect. Our database is called
orders.mdb.
After successfully concluding this action, the dialog ODBC Data Source Administrator show the
User Data Source, which we added.
After setting-up the ODBC data source, you have to insert the object ODBC into your Plant Simulation
simulation model. This object establishes the connection with the database and enables you to import
data from it. You can write this data into Plant Simulation tables, change them there and use them in
your simulation runs and re-export the changed data back into the database.
• To add the object ODBC to the toolbar Information Flow of your simulation model, click
Manage Class Library > Basic Objects > InformationFlow on the Home ribbon tab.
Click the object on the toolbar Information Flow and insert it into your simulation model.
In our example we inserted the following objects into our simulation model:
• An ODBC object, which controls the communication with the database.
• A Plant Simulation Table into which we import the data, and from which we export it back to the
database.
• Double-click the object ODBC and type the name of the database into the text box Database.
In our example we entered TestDB. Note that this is the same name that we entered into the
dialog ODBC Microsoft Access Setup above.
When you use a database with user management, such as SQL-Server, Oracle, etc., you also
have to enter a User name and a Password. To apply your changes, click Apply.
To log on to the database, click Login.
When all your settings worked out, Plant Simulation grays out the box with the name of the
database and shows OK in the box Message. When Plant Simulation encountered problems, it
shows an error message describing the problem.
• Then, insert a Method into your simulation model. Within this Method you program, which data
will be imported and what happens to this data.
Reading and writing data only works, when Plant Simulation is connected to the database. For
this reason the methods login and logout frame the database operation proper.
The source code in SimTalk 2.0 notation looks like this:
ODBC.login("TestDB","","")
-- database operation
ODBC.logout
is
ODBC.login("TestDB","","");
-- database operation
ODBC.logout;
end;
• Then you can read data from the database and write the results of the database query into an
Plant Simulation table. Instead, you could also write the data into a local variable.
You’ll always start the query with the command .sql. Then, define the target, in our example this
is the Plant Simulation table Orders. Next, you’ll enter SQL standard queries within quotes. The
syntax you have to use depends on your database system, consult the documentation that came
with your database. The ODBC driver of the database determines the range of commands
you can enter.
In our example we will read the entire contents of the table Orders2 from our Access database
and write it into the Plant Simulation table Orders.
When you want to format the columns of the target table in Plant Simulation according to the
formatting in the database while reading the data, make sure that Format Table in
the dialog of the object ODBC is checked. This only applies, when Plant Simulation provides
its own formats, which correspond to the formats in the database. Plant Simulation does, for
example, not provide a counterpart for the typical date format in Oracle. The documentation of
your database provides information about filters for changing formats during the query.
• You can then use and manipulate this data in Plant Simulation in a number of ways. When
working with large amounts of data, we recommend to use SQL queries with filters, as these are
oftentimes considerably faster than searching large Plant Simulation tables.
In our example the query for DeliveryTime and Amount of all parts of type panel yields this result in
our Plant Simulation table.
The source code in SimTalk 2.0 notation looks like this:
ODBC.login("TestDB","","")
ODBC.sql(Orders, "select DeliveryTime, Amount from Orders2 where MU = '.MUs.panel'
ODBC.logout
ODBC.logout;
end;
You can also export selected results of your simulation runs back to the ODBC database. For this,
you use the method .sql and a number of SQL instructions.
In our example we add a new row to our Access table Orders2 using the SQL instruction insert into.
As SQL does not provide a single statement for adding the contents of a row or of the
entire table to the database, you have to type the contents of each cell into the Method.
To add data to an existing data set, thus updating the database, we use the SQL instruction update:
The source code in SimTalk 2.0 notation looks like this:
ODBC.login("TestDB","","")
ODBC.sql("update Orders2 set Attribute = 'xyz' where Name = 'rod'")
ODBC.logout
After you established the connection to an external Oracle database server within the computer
network that your local computer can access, insert the object Oracle11g into your Plant Simulation
simulation model. It connects to the database and imports data from it. You can write this data into
Plant Simulation tables, change them there and use them in your simulation runs and re-export the
changed data back into the database.
To add Oracle11g to the toolbar Information Flow of your simulation model, click Manage
Class Library > Basic Objects > InformationFlow on the Home ribbon tab.
Click the object on the toolbar Information Flow and insert it into your simulation model.
You can also use ODBC together with Oracle! Then, you do not have to install an Oracle
Client. Be aware that the SQL instructions, which you use, are not necessarily compatible
with the ODBC version. This may cause problems if, for example, you want to switch
between an Oracle database and an Access-database for test purposes. In this case, we
recommend to use ODBC for all databases.
Plant Simulation can exchange data with an SQL database using the object SQLite.
To add the object SQLite to the toolbar Information Flow of your simulation model, click
Manage Class Library > Basic Objects > InformationFlow on the Home ribbon tab.
Click the object on the toolbar Information Flow and insert it into your simulation model.
This sample model demonstrates how to use the object SQLite to establish a connection between
Plant Simulation and an SQL database.
• The object SQLite uses a database which is stored in main memory instead of in a file on your
computer’s hard disk.
• The method openDatabase opens the database and creates a table in the database using SQL
statements.
• The objects SourceEntity and SourcePallet produce different parts that pass through the plant.
When the parts leave the respective Source objects, the method enterCreationTime records the
part type and the creation time in the database.
• Once the parts reach the Drain, the method enterDeletionTime records the time at which the
parts leave the plant.
• The simulation runs for 6 days. At the end of the simulation run the endSim method computes the
average lifetime of the parts and the method fillTable writes these results into a Plant Simulation
table.
• The method closeDatabase, which is called by the endSim method, closes the database.
• Import the Simulation Results From the Database and Show Them
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Go to Import Data from an ODBC Database
Go to Import Data from an Oracle Database
Back to Import Data from a Database
The following code examples work for SimTalk 2.0 and for SimTalk 1.0.
• Program the method to open the database. We named our method openDatabase and entered
the following source code:
-- called by the init method
MySQLite.open; -- opens the database
MySQLite.exec("CREATE TABLE MUTrace (MUName TEXT PRIMARY KEY, MUType TEXT, StartTi
-- creates the table MUTrace in the database with four columns containing the
-- name of the part, the type of the part, the start time, and the end time
• Program the method to close the database. We named our method closeDatabase and entered
the following source code:
-- called by the endsim method
MySQLite.close; -- closes the data base
• We programmed the reset , which is called when you click the Reset Simulation button in
the EventController , to delete the contents of the TableFile and the result numbers from the
Comment :
Tablefile.delete;
Tablefile.closeDialog;
Comment.Text := "MU Type, Lifetime"+chr(13)+chr(10)+"------------------------";
• We programmed the method init to show Processing... in the Comment object and to open the
database:
Comment.Text := "Processing...";
openDatabase;
• Inserted two Source objects into the model and configure them so that they produce two different
types of parts. In our model the SourceEntity produces parts of type Entity. The SourcePallet
produces parts of type Container.
Next, we selected the same rear -triggered exit control for both Sources.
We entered the following source code into the method enterCreationTime. It inserts the times at
which the parts were created, their type, and the start time into the internal database table named
MUTrace . It then binds the string values and real values to the SQL-statement and executes the
SQL-statement, thus writing the values to the database.
MySQLite.prepare("INSERT INTO MUTrace (MUName, MUType, StartTime) VALUES (?1, ?2, ?3)
MySQLite.bindString(1, obj_to_str(@));
MySQLite.bindString(2, @.name);
MySQLite.bindReal(3, EventController.simTime);
MySQLite.step;
• Insert the stations which process the parts. We inserted four SingleProcs with these settings:
• Insert the Drain, which removes the parts from the facility.
We entered the method enterDeletionTime as the entrance control and left all other settings
unchanged.
We entered the following source code into the method. It updates the database table MUTrace with the
time at which the parts were deleted.
MySQLite.prepare("UPDATE MUTrace set EndTime = ?1 WHERE MUName = ?2");
MySQLite.bindReal(1, EventController.simTime);
MySQLite.bindString(2, obj_to_str(@));
MySQLite.step;
Import the Simulation Results From the Database and Show Them
To show the simulation results in our simulation model after the simulation run is finished, you can
import data of interest from the database. In our sample model we calculated the average lifetime of
the parts and wrote these results into a Plant Simulation table and into an object of type Comment:
To do so, we inserted a TableFile into our simulation model and assigned the data type string to column
1 and 2 and the data type time to column 3 and 4. We also inserted an object of type Comment.
We then inserted an endSim method and entered the following source code. It computes the average
lifetime of the part types Entity and Container and writes that result into the Comment object. It then
calls the method fillTable, which in turn writes the lifetime of the individual parts into the TableFile:
The source code in SimTalk 2.0 notation looks like this:
var str := "MU Type, Lifetime"+chr(13)+chr(10)+"------------------------"
MySQLite.prepare("SELECT MUType, avg(EndTime-StartTime) FROM MUTrace GROUP BY MUType"
while MySQLite.step
str := str+chr(13)+chr(10)+
MySQLite.getColumnString(0)+", "+to_str(MySQLite.getColumnReal(1))
Comment.Text := str
fillTable -- name of the method that writes data to the TableFile
closeDatabase
end;
Comment.Text := str;
fillTable; -- name of the method that writes data to the TableFile
closeDatabase;
To write the lifetime of the individual parts into the TableFile, we programmed the method fillTable.
The source code in SimTalk 2.0 notation looks like this:
-- called by the endSim method
MySQLite.prepare("SELECT * FROM MUTrace")
for var column := 1 to MySQLite.getcolumnCount
var row := 1
while MySQLite.step
switch column
case 1,2 -- column 1 and 2 of data type string
TableFile[column,row] := MySQLite.getColumnString(column - 1)
else -- column 3 and 4 of data type time
TableFile[column,row] := MySQLite.getColumnReal(column - 1)
end
row += 1
end
next
TableFile.opendialog
You can import data for a simulation run from a text file with the FileInterface . You can also export
data directly into a text file with the FileInterface: You can write log files of your simulation runs or
record statistics data, etc. The FileInterface only processes ASCII characters, i.e., letters, numbers
and special characters. It provides a number of methods to move within the file.
You can insert the FileInterface into your simulation model from the folder InformationFlow in the
Class Library or from the toolbar Information Flow in the Toolbox.
Enter the File Name of the text file, which the FileInterface opens, when you want to import data.
When you export data, it specifies the name of the file, which it saves.
The method readLn opens the file and reads a single line from it. It then increases the internal
line counter by one and closes the file again.
The FileInterface transforms the contents of the line it read into a string. You can manipulate these
strings with the Functions for Manipulating Strings, such as copy, omit, strlen and with the Functions
for Converting Data Types, such as str_to_num, str_to_time etc.
Calling the method readLn again and again moves to the respective next line in the text file. The
method gotoLine moves to the line within the text file, which you pass as an integer. You can then
import that line with the method readLn. If you would like to access the same file several times in
a row, we advise to open the file beforehand, as that will increase access speed. If you do not
need a file any longer, close it.
The FileInterface can keep ten text files open at any one time.
When writing data, for example with the method write, the FileInterface opens the file and sets its
internal line counter to the end of the file by calling the method goBottom. Then, the FileInterface
saves the data to the file and closes it. The FileInterface always adds new data to the end of the file,
it does not overwrite any existing data.
If you would like to access the same file several times in a row, we advise to open it beforehand,
as it buffers the data before saving it. The FileInterface saves data before the next reading access
of the file or when closing it.
Back to Importing and Exporting Data
You can place a link, i.e., a shortcut to a file into a Frame with the FileLink . You can insert the
FileLink into your simulation model from the folder InformationFlow in the Class Library or from
the toolbar Information Flow in the Toolbox.
The FileLink places a link, i.e., a shortcut to a file into a Frame. When you drag a file from the Desktop
or the WindowsExplorer into a Plant Simulation Frame and drop it there, the FileLink creates a link
to the file in that Frame and places the icon of the application, which is assigned to the specific file
type, in the Frame. By default Plant Simulation enters the entire path to the file into the text boxes
Label and File name of the FileLink.
Plant Simulation opens a dialog asking if you would like to embed the file into the Plant Simulation
model or not. When you click Yes, it copies the file into your Plant Simulation model file when you
save the model file. When you open the model file the next time, Plant Simulation creates a temporary
file, which is a copy of the original file. When you are still editing an embedded file in its originating
application while you save the Plant Simulation model file, Plant Simulation show a message.
When you click No, the program creates a link to the file in the file system of your computer. If you
move or delete the file, the link will become invalid and Plant Simulation will not be able to find the
file and open it.
Double-click the icon in the Frame to open the application, which is assigned to the file type, and
the file for editing, provided the that application is installed on the computer. If the link is invalid,
Plant Simulation opens the dialog FileLink and shows the path and name of the invalid link in the
text box File Name. You can open the dialog of the FileLink by right-clicking its icon and selecting
Open on the context menu.
You can:
• Open Formatted Text from within the Model
To show a document in your simulation model, which contains formatted text, you can save it as an
RTF file. This way another person can always open this file in WordPad, which is part of a standard
Windows installation.
To do so, proceed as follows:
• Create the document in a program which can save RTF files. We created our document in
WordPad, entered our text, applied formatting, and saved it as an RTF file with the name
MyRTFDocument.rtf.
• Drag the RTF file from the Windows Explorer to the Frame. If you want to embed the file into
your simulation model, click Yes.
For demonstration purposes, we changed the Label so that it does not show the path of the file
but Formatted Text.
When you then pass the model on to another person, and he double-clicks the icon of the object
FileLink, it opens in WordPad.
To show a picture in your simulation model, you can save it as a BMP or as a PNG file. This way
another person can always open this file in Paint, which is part of a standard Windows installation.
To do so, proceed as follows:
• Save the picture in a program which can save BMP or PNG files. We saved our picture in Paint
and saved it as a PNG file with the name MyPicture.
• Drag the BMP or PNG file from the Windows Explorer to the Frame.
Plant Simulation asks you if you want to use the picture as the background image of your model.
We clicked No. We then clicked Yes in the next dialog to embed the picture into our model.
For demonstration purposes, we changed the Label so that it does not show the path of the
file but Picture.
When you then pass the model on to another person, and he double-clicks the icon of FileLink1,
it opens the picture in Paint.
To show a document from Microsoft Office applications or PDF files created from them in your
simulation model, save it in the native format or as a PDF file. Another person can only open these
types of files, when Microsoft Office and a PDF Viewer.
To do so, proceed as follows:
• Save the Microsoft Office document in the native format of the respective application. We
saved our presentation with the name MyPresentation in PowerPoint first as a Microsoft Office
PowerPoint Presentation. Then we also saved it as a PDF file.
• Drag the presentation, i.e., the PPTX file, from the Windows Explorer to the Frame. Click Yes in
the dialog to embed the presentation into the model.
For demonstration purposes, we changed the Label so that it does not show the path of the
file but Presentation.
When you then pass the model on to another person, and he double-clicks the icon of FileLink2,
it opens the presentation in PowerPoint.
• Drag the PDF file created from the presentation file from the Windows Explorer to the Frame.
Click Yes in the dialog to embed the PDF file of the presentation into the model.
For demonstration purposes, we changed the Label so that it does not show the path of the
file but Presentation PDF.
When you then pass the model on to another person, and he double-clicks the icon of FileLink2,
it opens the presentation in the PDF Viewer that is installed on the computer.
In this sample model we show how to combine the objects FileLink and ActiveX to play a video
in a simulation model with the Windows Media Player.
You can insert the FileLink into your simulation model from the folder InformationFlow in the Class
Library or from the toolbar Information Flow in the Toolbox.
To add the ActiveX interface to the Class Library, click Manage Class Library > Basic Objects
> InformationFlow on the Home ribbon tab.
You can insert the object ActiveX into your simulation model from the folder InformationFlow in the
Class Library or from the toolbar Information Flow in the Toolbox.
To embed a video into the simulation model and to then play it, proceed as follows:
• Record the video in a video recording tool and save it as an .avi file.
We recorded a worker who places parts into a work cell and then removes the processed parts
from it. We named our video file MyVideo.
• Drag the video, i.e., the AVI file, from the Windows Explorer to the Frame. Click Yes in the dialog
to embed the video into the model.
For demonstration purposes, we changed the Label so that it does not show the path of the file
but Video.
• Program the method to check if Windows Media Player is installed on the computer. If this is the
case it will play the video. If this is not the case, it will show a message saying so. Within the
method we use a number of functions for the object ActiveX. We named our method openVideo.
The source code in SimTalk 2.0 notation looks like this:
var ClassName: string, description: list[string], t: table
current.openDialog
-- instantiates a local variable of data type list
description.create
-- writes the description of all registered COM class names of your computer into
description.insertlist(1,MyActiveX.overview.copy({2,1}..{2,*}))
-- initializes the cursor
description.setCursor(1)
-- searches for the program Windows Media Player
if description.find("Windows Media Player")
-- reads the class name of the COM object
ClassName := MyActiveX.overview[1, description.cursor]
else
-- shows a language dependent message if the Media Player is not found
if userInterfaceLanguage = 1 -- English
promptMessage("The Windows Media Player is not installed on your computer.
else
promptMessage("Der Windows Media Player ist auf Ihrem Computer nicht inst
end
end
-- assigns the class name to the attribute of the object MyActiveX
MyActiveX.ClassName := ClassName
-- and activates it
MyActiveX.Active := true
t := MyActiveX.TypeInfo
if t.yDim = 0
if userInterfaceLanguage=1 -- English
promptMessage("This example is not available on your computer.");
else
promptMessage("Dieses Beispiel steht auf Ihrem Computer nicht zur Verfügun
end
return
end
-- different versions have different attributes, ’View > Type Info’ shows this
if ClassName = "WMPlayer.OCX.7"
MyActiveX.url := FileLink4.FileName
else
MyActiveX.FileName := FileLink4.FileName
end
is
do
local description:table := MyActiveX.overview; -- description of all registered
description.setcursor(2,1);
-- we search for "Windows Media Player"
if description.find({2,1}..{2,*},"Windows Media Player") then
-- we read the classname of the COM object
local classname:string := description[1, description.cursorY];
else
if userInterfaceLanguage = 0 then
promptmessage("Schade, auf Ihrem Rechner ist kein Windows Media Player in
else
promptmessage("Sorry, there is no Windows Media Player installed on your
end;
return;
end;
MyActiveX.className := classname;
MyActiveX.active := true;
MyActiveX.URL := FileLink4.filename;
end;
• Program the method to close the video when it is not needed any longer. We named our method
closeVideo.
The source code in SimTalk 2.0 notation looks like this:
if MyActiveX.Active
MyActiveX.Active := false
end
if MyActiveX.Active then
MyActiveX.Active := false;
end;
• The model looks like this once you have inserted all objects which are required for playing the
video.
To play the video, click the method openVideo with the right mouse button and select Run on the
context menu. You will notice that the video obviously plays but that you cannot see anything
because the icon is too small to show the video as we selected Display in Frame in the dialog
of the object ActiveX.
To close the video, click the method closeVideo with the right mouse button and select
Run on the context menu.
To fix this, hold down the Shift and Ctrl leys and drag a corner point of the icon to make it
larger. Now the video plays within the icon of the object ActiveX, but the background of the icon
shows through, which is distracting.
To fix this, we created a new icon and made it transparent, compare Activate Transparency.
Now it looks OK.
To use any of the video controls of the Windows Media Player, click the video with the right
mouse button and select the command of your choice.
• To make using the model easier, you can insert two objects of type Button into your model and
use the methods openVideo and closeVideo is the controls of the buttons instead of directly
executing the methods.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Back to Open Formatted Text from within the Model
Back to Open a Picture from within the Model
Back to Open Documents From Office Applications and PDF Files
Back to Showing Data Stored in an External Program
• The CardFile has one column. It accesses the cells randomly by their position. You can add
new cells at any position within the CardFile. When you remove a cell, all cells with a higher
number move up one position.
• The StackFile , compare QueueFile and StackFile, has one column. It accesses the cell you
added last. The contents of the last cell you added is the first to be processed. When you add a
cell to the top of the stack, all existing cells move one position down. When you remove a cell,
the remaining cells each move up one cell.
• The QueueFile ,compare QueueFile and StackFile, has one column. It accesses the cell you
added first: The contents of the first cell you added is the first one to be processed. It adds
new cells after the last existing cell.
• The TableFile has several columns. It accesses the cells by their column number and their row
number. New data you type in overwrites and replaces the existing contents of the cell.
• The TimeSequence two columns. It accesses all pairs of cells randomly by their column
number and their row number. It adds new entries in ascending order according to the time.
Entries with a higher position move up by one position when you remove a previous entry.
The procedures described below are the same for all types of Plant Simulation lists, which you
insert into your simulation model. Before you can select your own settings, you have to deactivate
inheritance: Click on the List ribbon tab so that it is not selected, i.e., not orange. You
can now change settings.
You can:
• Set the Data Type of a Column
For the CardFile , the StackFile , and the QueueFile , which only have one column, you set
the data type for the entire list. For the TableFile you can select the data type for each individual
column or for a range of columns.
To set the data type of a list or table:
• Deactivate inheritance of the format: Click on the List ribbon tab so that the button is not
selected.
• Click into the column for which you would like to set the data type with the right mouse button
and select Format.
• To show the tabs Dimension and the Data Type, click in the column header of a column.
Double-clicking a cell of data type string or boolean with the value true or false in a list
or table toggles the value from trueto false and vice versa.
• For the data types Integer, Real and String you can also enter a Format string.
• If you want to hide the data type of the cells in the column, click Data Type on the List ribbon tab
so that the button is not selected.
• Deactivate inheritance of the format: Click on the List ribbon tab so that the button on
the left is not selected.
• Click into the column for which you would like to set the data type with the right mouse button
and select Format.
• To set the standard width of a single column, click in the column header. This shows the tabs
Dimension and Data Type. Enter the column width in character widths of a non-proportional font
that fit in a cell into the text box Column width.
To simultaneously change the width of several columns, mark the range of columns before you
enter the width. To do so, click in the first column, hold down the mouse button and drag the
mouse to the last column. The box Range show which columns you have selected.
• To limit the size of a table, click Select All in the top left corner of the table area. Or
• Click the Select All button in the toolbar of the context menu.
For all lists you can enter the Number of rows.
For the TableFile you can, in addition, enter the Number of columns. If you do not enter a
Number of columns and/or a Number of rows, the size of the list is not limited, which might be
memory consuming.
• To insert a blank column to the left of the selected column, right-click it and select Insert Column.
Plant Simulation assigns the data type string to this new column. You can change it afterwards
as described above.
• To insert a blank row above the selected row, right-click it and select Insert Row.
To set the alignment, the font size, the font color of cells and the background color of a list or of a table:
• Deactivate inheritance: Click on the List ribbon tab so that the button on the left is not
selected.
• Click into the column for which you would like to set the data type with the right mouse button
and select Format.
• Click in the column header and select the columns to which you want to apply the settings. Or
Click in the row header and select the rows to which you want to apply the settings. The box
Range show which columns or rows you have selected.
• Select the Alignment, the Font size, the Font color and the Background color of the selected
columns and rows.
To clear the contents of the selected cell, double-click, right-click it and select Delete on the context
menu.
To delete the contents of an entire row or of an entire column of cells but to leave the empty row or
column in the list, right-click it and select Delete in the mini toolbar.
To delete an entire row or an entire column of cells with its contents from the table, right-click in
the row header/column header and select Cut in the mini toolbar.
• To apply the data you entered, press the Enter key or move the cursor into another cell
(Shift+arrow keys).
• To restore the previous contents of the cell while the cursor is still located in that cell, press Esc.
• To move the cursor within the edit field, press one of the arrow keys.
• To move the edit field, i.e., the active cell, in any direction within the table, hold down the Shift
key and press one of the arrow keys.
• To delete the contents of a cell, double-click it, right-click it and select Delete.
• To move or to copy the contents of a cell to another location, you can use drag-and-drop within
the list or table:
o Click the cell once and drag the mouse over a border of the cell until the cursor changes into
crosshairs .
o Press the mouse button, and drag the contents of the cell to move it to another location.
The move cursor looks like this
o Hold down the Ctrl key, press the mouse button, and drag the contents of the cell to copy it
• To paste data, which you copied to the clipboard with Home> Copy into other applications,
select Home> Paste.
• To scroll up or down in a column, roll the mouse wheel or use the scrollbars.
• To select an entire column or row, their visible and invisible areas, click the column header or
the row header.
• To select several contiguous columns of a TableFile, click in the column header of the first
column, hold down the mouse button and drag the mouse in the column header until you have
selected the range you want.
• To select all columns and rows of the list, click Select All , i.e., the button in the top left
corner of the list file, where column and row headers meet. Or click the Select All button in
the toolbar of the context menu. Or press Ctrl+A.
• To show blank cells in a different color in a list, click Highlight Empty Cells on the List ribbon tab.
• To create a sub-list in a cell of type Table, List, Stack or Queue, you can either type in its name
and path or employ drag-and-drop to enter it.
• To open the sub-list or an object, which is contained in a cell of type Table, List, Stack, Queue or
Object bold down Shift and double-click the cell. Instead, you can also right-click the cell and
select Open Object or press F2.
• To set the standard column width, select List > Format > Dimension > Column width and enter a
value. Or you can change it by dragging the cursor:
o Place the cursor into the topmost row of the column. The cursor changes into a
double-headed arrow .
o Drag the mouse to the left or to the right until the width of the column meets your needs.
You can work with a TableFile, which you inserted into a Frame, like this:
• Cutting or Copying a Range of Cells
To cut or to copy a range within a TableFile, select the range: Click into the cell that is to be the
first corner of the range, hold the mouse button down, and drag the mouse to the opposite corner
of the range. Plant Simulation highlights the selected range.
When you cut a range (Home > Cut), Plant Simulation must removes the contents of these cells,
but leaves the blank cells on the table. When you insert the range you cut at a new location, by
clicking in the cell that is to be the upper left corner of the range and then select Home > Paste,
Plant Simulation overwrites the contents of the cells in that range. You can also select entire
columns or rows: Click in the gray range outside the column or row where the system index is
located, i.e., the numbering of the columns and rows. When you select Home > Cut, Plant
Simulation removes the entire column or row. It then shifts the remaining columns to the left,
and the remaining rows up. When you select an entire column or row by clicking in the column
or row index, Plant Simulation pastes a column you cut, to the right of the current column and
pastes a row you cut below the current row.
o Click the left mouse button and drag to the left until the columns you want to hide are not
visible any more. In the example we hid columns 2 through 14 . You recognize
hidden columns by the symbol that appears at the end of column 1.
To show hidden columns again, drag the cursor over the symbol. The cursor changes into an
arrow pointing to the right . To expand the columns to their original width, click
the left mouse button once.
To access a cell in a list or table with a Method, you can either use the system index, i.e.,
the number, which Plant Simulation assigns to columns and rows or you can define your own
user-defined index, which can be any meaningful expression.
The advantage of a user-defined index over the standard system index is that assigning names to
columns and rows is more meaningful than the numbers, which Plant Simulation assigns by default.
The user-defined index Vehicles["Truck",#1] may tell you and your co-modelers more than the
system index Vehicles[3,1] then debugging your model. Both expressions access the same cell. As
a user-defined index you might, for example, enter:
Switch["Light","220 Volts"]
Vehicles["Truck",#1]
Plant["Chicago",.building1.drill]
In addition, the user-defined index is not as error-prone as the system index: When you add an
additional column or a row to the table, Plant Simulation increases the system index of the succeeding
columns or rows by one. This naturally make any assignment in a Method to the previous system
index invalid. The identifier of the user-defined index, on the other hand, remains the same and is still
valid. Be aware that accessing a user-defined index is slightly slower than accessing the system
index.
You can:
• Set the Column Index.
• Select the row of the column index located above the first row of cells and click Format.
• Select the data type of the column index from the drop-down list on the tab Data Type. For the
data types Integer, Real and String you can also enter a Format string to limit the number of
digits the user can manually enter into these cells.
• To allow for quickly accessing the user-defined column index, select the check box Fast index
access.
• To only allow unique entries in user-defined indexes, depending on the data type, select the
check box Unique index key.
• Select the column of the row index and select the command Format. Select the data type of the
row index from the drop-down list on the tab Data Type. For the data types Integer, Real and
String you can also enter a Format string.
• To allow for quickly accessing the user-defined row index, select the check box Fast index
access.
• To only allow unique entries in user-defined indexes, depending on the data type, select the
check box Unique index key.
• To allow for quickly accessing the user-defined column index, select the check box Fast index
access.
• To only allow unique entries in user-defined indexes, depending on the data type, select the
check box Unique index key.
• Deactivate inheritance: Click in the List ribbon tab so that the button on the left is not
selected.
• To activate and to show the column index, click Activate Column Index. Enter a meaningful
term into the first row of cells to the right of string.
In most cases, you will select the data type String for the user-defined column index. When
you select Integer, you have to enter a number sign # in front of the term you enter as your
user-defined index to distinguish it from the system index.
• To activate and to show the row index, click Index Active. Enter a meaningful expression into the
first column of cells below string 0.
In most cases, you will select the data type String for the user-defined row index. When you
select Integer, you have to enter a number sign # in front of the expression, which you enter as
your user-defined index, to distinguish it from the system index.
When both column and row index are active, the cell [0,0], i.e., the cell at which
column and row index intersect, counts as part of the column index, not as part of
the row index.
• Deactivate inheritance: Click on the List ribbon tab so that the button on the left is not
selected.
• To select the entire list or table, click Select All , i.e., the button in the top left corner
of the list file, where column and row headers meet. Or click the Select All button in the
toolbar of the context menu. Or press Ctrl+A.
• Click the Tab Dimension. Enter the Number of columns and the Number of rows. Plant
Simulation automatically sets the lower bound to 1. When you use a user-defined index the
lower bound is 0 .
For lists with one column, you can also set the upper bound with the attribute MaxDim. For lists with
two columns you can set it with the attributes MaxXDim and MaxYDim. For tables the methods xDim
and yDim return the dimension of the current occupancy.
The method indexXDim returns the last cell of the column index, which contains an entry. The method
indexYDim returns the last cell of the row index, which contains an entry.
The dialog Go To also shows the number of occupied columns and rows.
To move to a certain cell within a list or table, click Go To on the List ribbon tab and type in the
location of the cell.
• The last parameter sets—depending on the action you wish to perform—the column or row:
o You can use the system index, i.e., the absolute number of the column or row. Or
o You can use a user-defined column or row index. To set a common format for a contiguous
range of columns or rows, first define a range. For column functions it only applies to the
columns within the specified range. Enter an asterisk (*) to designate all rows within the
specified range. For row functions it only applies to the rows within the specified range.
Compare this example:
MyTableFile.setDataType({3,*}..{4,*},6,"column1","real")
{3,*}..{4,*} designates the range, all cells in columns 3 and 4 in this case
• The parameter ColumnOrRow of data type any designates the column or the row:
o You can use the system index, i.e., the absolute number of the column or row. Or
example with the method find, begins at the current cursor position. Before starting the search, make
sure that the list cursor is placed at the cell from which on you want to search.
After a successful search, Plant Simulation places the cursor in the cell where it found the value.
If the list contains the value you searched for more than once, a new call of the method find finds
the next value starting at that cell, and so on.
When you set a range for the find command, Plant Simulation determines the starting position of the
cursor by combining the cursor and the range. The search begins at the first entry of the list in the
range you entered, starting at the cursor position. The search ignores any range, which is located
before the current cursor position. If the cursor is located in the middle of the range you entered,
Plant Simulation does not search for entries before of the cursor position! The search goes on until
Plant Simulation finds the value or reaches the end of the list. When Plant Simulation finds the
value you searched for, it places the cursor into the cell, which contains the value. A new search
begins at the next cell. If the search does not find the value, the internal cursor remains in the
cell it had before the search.
The same principle applies to tables. As a table has rows and columns, it naturally has two cursors:
CursorX designates the column and CursorY designates the row, which identifies the cell.
Set the cursor anew after inserting or deleting rows, to determine its position.
To search and optionally replace a string with another string, right-click in the list and select Find
or press Ctrl+F.
• Enter the expression you would like to find into the text box Find what.
• Select Match entire cell contents to only find the characters in cells, which exactly and
completely match the expression you entered into the text box Find what.
• Select Match case to only find text that has the same pattern of upper and lower case as the
expression you entered into the text box Find what.
• Select if you want to Search in Rows, i.e., to the right across rows, or down through Columns.
• Click Find Next, so that Plant Simulation finds the next instance of the expression, which you
enter into the text box Find what.
• Click Replace, so that Plant Simulation show the text box Replace with. Enter the expression
into the text box Replace with that is to replace the expression you entered into the text box
Find what.
To create a sub-listor a sub-table in a cell of the CardFile, the StackFile, the QueueFile, or the
TableFile:
• Open the list object to which you want to add a sub-list/sub-table.
• Click on the List ribbon tab so that the button is not selected.
• Right-click the column header of the column to which you want to add a sub-list and select
Format.
• Select the data type of the sub-list you want to insert: Table, List, Stackor Queue. You will choose
the data type depending on how you want to access the entries of the sub-list.
If you want all sub-lists in that column to have the same formatting, select Common format.
• Enter a name of your choice, which identifies the sub-list, into the cells of the changed column.
This name identifies the subtable.
• Hold down the Shift key and double-click the subtable, MySubtable in our case, to open it.
Edit the subtable according to your needs.
To insert a list object from a Frame or the Class Library into a cell of the list objects CardFile,
StackFile, QueueFile, or TableFile:
• Open the list object to which you want to add a sub-list/sub-table.
• Click on the List ribbon tab so that the button on the left is not selected.
• Right-click the column header of the column to which you want to add a sub-list and select
Format.
• Drag the table to a cell of the list and drop it there. This inserts the absolute path of the
inserted list.
Type the name of the list you want to insert into the cell, when this list is located in the same
Frame. This way Plant Simulation uses the relative path.
To open the sub-list or a list object, which is contained in a cell of type Table, List, Stack, or Queue,
hold down the Shift key and double-click into the cell. Instead, you can also right-click the cell
and select Open Object or press F2.
Compare Creating Lists within Lists and Tables
• To sort the selected column in ascending (A to Z, or 0 to 9) order, click Home > Sort Ascending.
• To sort the selected column in descending order (Z to A, or 9 to 0), click Home > Sort Descending.
You can also only sort the CardFile, the TableFile and the TimeSequence with methods:
• The method inOrder sorts a value into an existing sequence of values at the position where
you want it to be.
A Formula is any expression, which accesses and links other cells within the list or which access
any of the attributes of the objects. With these values, the formula then performs the calculations
you defined.
For linking the operands within a formula, you can use the same arithmetic operators and
mathematical functions as you use in methods, compare Operators and Expressions.
1. To activate Formula mode, click Formula on the List ribbon tab so that it is selected .
2. To enter a formula into a cell, click in it and type the expression in. Instead, you can also type
it into the text box above the list. In our example we add the value of cell 2 in column 1 to the
value of cell 3 in column 2. To do so, we entered [1,2]+[2,3].
3. To show the result of the calculation of the formula, i.e., its value, in the cell, press Enter.
4. To show the formula itself in the text box, double-click in the cell that contains the formula. Then,
you can change the formula. You can also access the values in a column via the column index.
The list shows cells containing a formula in color. Turquoise designates a formula with a correct
syntax, red a formula with syntax errors.
Within a formula you can access the value of another cell of the same list with the anonymous
identifier @:
Formula Executes
The data type of the result of a formula has to have the same data type as the cell or the
column in which the cell containing the formula is located.
In sub-lists, you can access the list, into which you inserted the sub-list, with the anonymous identifier
?. Note that for user-defined attributes of lists, the anonymous identifier ? accesses the object for
which you defined the user-defined attribute.
xSelf and ySelf contain the number of the column or the number of the row respectively, which
contains the formula. This way you can easily access neighboring cells.
Back to Working with Lists and Tables
• To only save the contents of the list, without any of its formatting, click Export Text File on the List
ribbon tab. To change the settings with which Plant Simulation exports ASCII data, click Export >
Text File Format on the List ribbon tab. Then, you can select which sign you want to use for
separating columns, etc., depending on the program into which you want to import the data.
Select the encoding with which the text file will be exported in the dialog Save As.
The sample table shown below, which we exported with the default settings, looks like this when
we open it in a word processing program. We chose Microsoft Word to show the tabs, which
Plant Simulation exported.
• To save the contents of the Plant Simulation list as an Excel worksheet, click Export Excel
File on the List ribbon tab.
Enter the name of the worksheet, on which Excel opens the data, into the dialog Worksheets.
String String —
Boolean Boolean —
Integer Number —
Real Number —
Object String —
Table String —
List String —
Stack String —
Queue String —
Money Number —
Length Number —
Weight Number —
Speed Number —
Acceleration Number —
Plant Simulation only exports integers in the range between -536.870.912 and
536.870.911 in the required format. Plant Simulation saves values outside of this
range as 0.
When you open the .xls file in Excel, it looks like this. You might still have to adapt settings of
the imported file in Excel.
When Plant Simulation reads an Excel table, it attempts to adapt the data types of the individual
columns to the available Plant Simulation data types. This only works, when you created the columns
on the Excel worksheets, so that they only contain a single data type, meaning that, when you, for
example, assign the data type String to a cell of a column, the entire column may only be of data
type String.
Row 0 (zero) is an exception to this rule: When the table, which Plant Simulation reads, has a column
index, it interprets row 0 as the column index and it will not be part of the data type designation
of the columns.
Compare Export Excel File
Compare Import Data from a Microsoft Excel Worksheet
Compare Methods for Importing and Exporting Data in Text Format
Compare Attributes for the Text Format of Lists and Tables
Back to Working with Lists and Tables
By default the windows of the objects CardFile, QueueFile, StackFile, and TableFile always open
in the background behind any open dialog windows. This can make working with lists and tables
cumbersome at times as it involves a lot of moving around of dialog windows.
To prevent this, you can also open the CardFile, the QueueFile, the StackFile, and the TableFile in
the foreground is a dialog window with the method openDialogBox.
To open our table SteeringTypes is a dialog window in the foreground, we typed in the instructions
below into our method openTableAsDialog.
SteeringTypes.openDialogBox
Be aware that the dialog window of a list does not provide all of the functions which the normal list
windows offers on the List ribbon tab.
Another important difference is that the list window applies entries as you type them in, while the list
opened as a dialog window only applies them when you click Apply or OK.
To add the object Socket to the Class Library, click Manage Class Library > Basic Objects
> InformationFlow on the Home ribbon tab.
You can insert the object Socket into your simulation model from the folder InformationFlow in the
Class Library or from the toolbar Information Flow in the Toolbox.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
In our sample model a serverSocket, located in a Frame of its own in Plant Simulation, communicates
with a clientSocket, also located in a Frame of its own, and vice versa.
To exchange data with the Socket interface, proceed as follows:
• Model the Frame ServerSocket.
• Insert the objects required for the ServerSocket communicating with the ClientSocket: The
Socket object, a callback method for the ServerSocket, a Variable each for recording the sent
message and the received message, and a Method in which you program how to send messages.
• We named our serverSocket object MyServerSocket. We used the default settings and selected
our callback method, which we called MyCallbackMethod.
Make sure to only select the check boxes On and Server Socket in the object MyServerSocket!
When you select TCP is the protocol for transmitting the data, Plant Simulation establishes a
connection across which the data will be exchanged. The TCP protocol ensures that the data
packages arrive at the destination.
When you select UDP, Plant Simulation can exchange data without a connection having to be
established. This creates less overhead, but does not guarantee that the data actually does
arrive at the destination.
• Insert the Variables for recording the sent message and the received message.
We named our VariablesMessageReceived and MessageSent and selected the following settings:
• Program the method with the message which you would like to send.
We entered the following source code to create a random number between 0 and 100, write
this value to the Variable, which we named MessageSent, and send the value. We named
our methodsendMessages.
The source code in SimTalk 2.0 notation looks like this:
var str: string
-- generates a random number between 0 and 100
str := to_str(round(z_uniform(1,0,100),1))
-- writes the value of the random number to the variable ’MessageSent’
MessageSent := str
-- sends the message using channel 0
MyServerSocket.write(0,str)
• Program the callback method which the ServerSocket calls when it receives data. We named
our callback method MyCallbackMethod and entered the following source code.
The source code in SimTalk 2.0 notation looks like this:
param SocketChannelNo: integer, SocketMessage: string
-- writes the value to the global variable ’MessageReceived’
if strLen(SocketMessage) = 1
MessageReceived := to_str(ascii(SocketMessage)) -- byte received
else
MessageReceived := to_str(SocketMessage) -- string received
end
-- writes the message to the Plant Simulation Console
print "--------------------------------------------------------------------";
print self
print "Message: The number ", MessageReceived, " was received at ", sysdate
print "Message: The number ", MessageReceived, " was received at ", sysdate;
end;
o We named our client Socket object MyClientSocket. We used the default settings and
selected our callback method, which we called MyCallbackMethod.
Make sure to select the check box On and to clear Server Socket in the object
MyClientSocket!
o Insert the Variables for recording the sent message and the received message.
We named our Variables MessageReceived and MessageSent and selected the same
settings as above.
o Program the method with the message which you would like to send.
We entered the following source code to create a random number between 0 and 100, write
this value to the Variable, which we named MessageSent, and send the value. We named
our methodsendMessages.
The source code in SimTalk 2.0 notation looks like this:
var str: string
-- generates a random number between 0 and 100
str := to_str(round(z_uniform(1,0,100),1))
-- writes the value of the random number to the variable ’MessageSent’
MessageSent := str
-- sends the message using channel 0
MyClientSocket.write(0,str)
is
str : string;
do
-- generates a random number between 0 and 100
str := to_str(round(z_uniform(1,0,100),1));
-- writes the value of the random number to the variable ’MessageSent’
MessageSent := str;
-- sends the message using channel 0
MyClientSocket.write(0,str);
end;
o Program the callback method which the ClientSocket calls when it receives data. We
named our callback method MyCallbackMethod and entered the following source code.
The source code in SimTalk 2.0 notation looks like this:
param SocketChannelNo: integer, SocketMessage: string
-- writes the value to the global variable ’MessageReceived’
if strLen(SocketMessage) = 1
MessageReceived := to_str(ascii(SocketMessage)); -- byte received
else
MessageReceived := to_str(SocketMessage); -- string received
end
-- writes the message to the Plant Simulation Console
print "--------------------------------------------------------------------"
print self
print "Message: The number ", MessageReceived, " was received at ", sysdate; )
o To transmit data, click the method sendMessages in the Frame ServerSocket with the right
mouse button and select Run on the context menu. Watch what the variables show. The
variable MessageSent in the Frame ServerSocket show that the method calculated the
number 1.8 and sent it to the variable MessageReceived in the Frame ClientSocket, which
naturally also shows the number 1.8. Also check what the Console shows.
o Then, click the method sendMessages in the Frame ClientSocket with the right mouse button
and select Run on the context menu. Watch what the variables show. MessageSent in the
Frame ClientSocket show that the method calculated the number 72.878 and sent it to the
variable MessageReceived in the Frame ServerSocket, which naturally also shows the
number 72.878. Also check what the Console shows.
• Prevent the user from manipulating a Frame in which you modeled a complex machine, etc.
To accomplish this, enter a Method object as an open control for the Frame and insert a
user-defined dialog with simulation settings into the Frame. When the user double-clicks the
Frame, Plant Simulation will not open the Frame is such, but call the Method whose name you
entered. The Method in turn executes the open control, i.e., it opens a user-defined dialog,
where the user can then select the settings for the simulation run.
You can insert the Dialog into your simulation model from the folder UserInterface in the Class
Library or from the toolbar User Interface in the Toolbox.
Each Dialog object manages a single dialog window. If you need more than one user-defined dialog
window in your simulation model, insert as many Dialog objects as you need Dialogs.
You will:
• Plan the Layout and the Structure of Your Dialog
In which order you go about creating the user-defined dialog is up to you and depends on your
personal work habits. You can first design the layout and then do your programming. You have
to program the actions, which the individual dialog items execute, and the actions, which Plant
Simulation executes, when the user opens the user-defined dialog, when he clicks Apply, and
when he closes it. Or you can start programming and then design the layout. Or you can mix both
techniques to achieve the best result.
The display window of the object Dialog does not use the standard Siemens PLM theme,
but your Windows theme.
The dialog window of the object Dialog uses the standard Siemens PLM theme.
Text Box
Button
Group Box
Check Box
Radio Button
List Box
Image
List View
Tab Control
Tab Page
Menu/menu command
For both types you have to program the actions, which the dialog items execute, when the user
selects them.
Plant Simulationshows the dialog with the settings you select in Control Panel > Display
under Display Properties > Appearance > Font sizeas well as with the Font and the
Sizeyou can select, when you click Advanced. When you change these settings, the
dialog scales text, while the images always retain their size in pixels. For this reason it can
happen that text overlaps the image. We recommend to test your dialogs with different
display settings to make sure that everything works as you expect it.
When you only need the user to select or to enter a small number of items, you can present them
directly in the dialog in a flat structure. When you want the user to select or to enter several different
types of information, you will Design a Tabbed Dialog.
To start designing your own dialog:
• Insert the Dialog into the Frame in which your are creating your simulation model. You can
do this from the folder UserInterface in the Class Library or from the toolbar User Interface
in the Toolbox.
• Enter a name and a label into the respective text boxes. As opposed to the name, you can enter
any term of your choice as the Label. This includes special characters and blank spaces.
o If you enter a label, Plant Simulation show that label in the title bar of your dialog.
o If you do not enter text for the label, Plant Simulation show the Name of the Dialog object
in the title bar.
Label No label
o To insert a dialog item, right-click on the tab Elements and select the respective dialog
item on the context menu.
You can:
Add a Button
o To show the dialog you are creating with the dialog items you already created, click Show
Dialog.
o To modify an existing dialog item, right-click it and select Open on the context menu. This
opens the dialog of the Dialog Item where you can change it.
o To delete a dialog item, right-click it and select Delete on the context menu.
o To change the position of a dialog item in the dialog you are creating, first click Show Dialog
and then click Edit Dialog. Select the dialog item you want to move and drag the
mouse to a new location. This way you can, for example, roughly re-position an existing
dialog item and then enter the exact coordinates to place it exactly where you want it to be.
The Dialog applies the changed coordinates immediately. Once you have moved
an item, you cannot undo the move action. To restore the previous settings, you
have to re-enter them into the respective dialog.
o To open the dialog window you are creating modal, select Open modal. Then the user
cannot open any other Plant Simulation windows until he has completed interacting with the
user-defined dialog and closed it.
To allow the user to open other dialog windows, in addition to the user-defined dialog you
are creating, clear the check box.
o To set the position at which the Dialog opens on your computer’s screen, click the tab
Position and enter the X-position and the Y-position in pixels into the text boxes. The
default setting -1 for both X-position and for Y-position centers the Dialog in screen. The
zero point is located in the left top corner of the screen.
• Enter the Name of the menu. A Method object can call this dialog item using the Name you
entered.
• Enter the Caption, which the menu displays. A caption is especially handy if you develop
application object libraries in several languages and want the user to be able to switch languages.
In addition you can enter special characters and blanks. In our example we entered Show.
For the top menu itself, you do not have to enter a Callback argument.
• Right-click the name of the menu on the tab Elements and select New Menu/Menu Command.
• Enter the Caption, which the menu command displays. In our examples we entered Chart
and Report.
• So that the dialog opens the Chart or the Report, when the user selects Show > Chart or Show>
Report, you have to program it to do so. For this you have to enter the Callback argument,
which will be passed to the callback method. In our examples we entered CallbackChart and
CallbackReport.
• Then, enter the code for actually opening the Chart or the Report into the callback method. As
the callback method is a user-defined attribute of data type method, click the tab User-defined
Attributes.
Double-click callback and click Open in the dialog User-defined Attributes. To be able to enter
commands into the Method, click Inherit Source Code on the Edit ribbon tab of the method so
• To change the order of the menu commands on a menu, select a menu command on the tab
Elements, hold down the Shift key and press the Up arrow to move this menu command up or
press the Down arrow to move this menu command down.
• To add a submenu to the selected menu command, right click that menu command and select
New Menu/New Menu Command again. Repeat the steps described above. A submenu
looks like this.
A static text box shows text that the user can view, but not edit. To add it to your dialog:
• Right-click on the tab Elements and select New Static Text Box.
• Enter the Name of the static text box. A Method object can call this dialog item using the
Name you entered.
• Enter the Caption, which the static text box displays. A caption is especially handy if you develop
application object libraries in several languages and want the user to be able to switch languages.
In addition you can enter special characters and blanks.
• Enter the X-coordinate and the Y-coordinate of the static text box in the Dialog.
The position matches the average width of characters of your system font, not to pixels. Changing
the font size under Start > Settings> Control Panel > Display > Settings> Advanced>
General> Font Size, affects this setting.
If you cannot see a dialog item after you inserted it, check the settings for the position
first. If you entered identical values for different dialog items, the Dialog places them
on top of each other, so that you can only see the first item(s) you inserted.
• Enter the Name of the text box. A Method object can call this dialog item using the Name you
entered.
• Enter the Callback argument, which will be passed to the callback method.
• Select what kind of data the user can enter from the drop-down list Data type.
Binary Numbers 0 or 1
• Enter the X-coordinate and the Y-coordinate of the text box in the Dialog.
The position and the width correspond to the average width of characters of your system font, not
to pixels. Changing the font size under Start > Settings > Control Panel > Display > Settings>
Advanced> General> Font Size, affects this setting.
• Enter the width of the text box in the average width of characters of your system font. The default
value of 0 sets the width to the values defined by us.
• Select if you want to Enable the text box or not. The user can only enter text, when the text
box is enabled.
• To show text that the user enters into the text box with superscripted lower case x-es ,
instead of as clear text , select Password.
• Enter the Name of the drop-down list. A Method object can call this dialog item using the
Name you entered.
• Enter the Callback argument, which will be passed to the callback method.
• Enter the X-coordinate and the Y-coordinate of the drop-down list box in the Dialog.
The position matches the average width of characters of your system font, not to pixels. Changing
the font size under Start > Settings > Control Panel > Display > Settings > Advanced >
General > Font Size, affects this setting.
• Enter the Width of the drop-down list in the average width of characters of your system font. The
default value of 0 sets the width to the values defined by us.
• Click Items and enter the items, which the list box shows, into the dialog Items.
o To add an item to the list field, enter its name into the text box and click Insert or press
the Enter key.
o To delete an item from the list, select it in the list field and click Delete.
o To move an item up one position in the list, select it in the list field and click Move Up.
o To change the name of an item in the list, select it in the list field, type another name into
the text box, and click Rename.
o To apply the items you entered and to close the dialog, click OK.
• Enter the Name of the group box. A Method object can call this dialog item using the Name
you entered.
• Enter the Caption, which the group box displays. A caption is especially handy if you develop
application object libraries in several languages and want the user to be able to switch languages.
In addition you can enter special characters and blanks.
• Enter the X-coordinate and the Y-coordinate of the group box in the Dialog.
The position matches the average width of characters of your system font, not to pixels. Changing
the font size under Start > Settings > Control Panel > Display > Settings > Advanced >
General > Font Size, affects this setting.
• Enter the Width and the Height of the group box in the average width of characters of your
system font. The default value of 0 sets the width to the values defined by us.
• To change the order of the items within a group, select an item within the group on the tab
Elements, hold down the Shift key and press the Up arrow to move this item up or press the
Down arrow to move this item down.
A set of radio buttons allows the user to select a single setting from a fixed set of choices that exclude
each other. To add it to your dialog:
• Enter the Name of the radio button. A Method object can call this dialog item using the Name
you entered.
• Enter the Caption that describes what the radio button does and that the Dialog shows. A caption
is especially handy if you develop application object libraries in several languages and want the
user to be able to switch languages. In addition you can enter special characters and blanks.
• Enter the Callback argument, which will be passed to the callback method.
• Enter the X-coordinate and the Y-coordinate of the radio button in the Dialog.
The position matches the average width of characters of your system font, not to pixels. Changing
the font size under Start > Settings> Control Panel> Display > Settings> Advanced>
General> Font Size, affects this setting.
If you cannot see a dialog item after you inserted it, check the settings for the position
first. If you entered identical values for different dialog items, the Dialog places them
on top of each other, so that you can only see the first item(s) you inserted.
• Enter a group id, i.e., a number, for grouping any number of radio buttons to denote which radio
buttons belong together. Group ID1 might stand for one set of radio buttons, while Group ID2
might stand for another set. The user can only select one radio button of a group at a time.
You have to create all items of a group of radio buttons sequentially because Plant
Simulation creates the items according to their line and column position. You cannot
arrange two sets of radio buttons as shown below, where the radio buttons Red and
Blue in the left hand side and the radio buttons Round and Square in the right hand
side form a group each. Windows ignores the Group ID you enter and groups the
radio buttons line by line according to the Y-coordinate, i.e., it treats Red and Round
are one group and Blue and Square is the other group.
If you want to model like this, do not place the radio buttons loosely onto the dialog, but group
them within group boxes.
• Enter the Name of the check box. A Method object can call this dialog item using the Name
you entered.
• Enter the Caption that describes what the check box does. A caption is especially handy if you
develop application object libraries in several languages and want the user to be able to switch
languages. In addition you can enter special characters and blanks.
• Enter the Callback argument, which will be passed to the callback method.
• Enter the X-coordinate and the Y-coordinate of the check box in the Dialog.
The position matches the average width of characters of your system font, not to pixels. Changing
the font size under Start > Settings > Control Panel > Display > Settings > Advanced >
General > Font Size, affects this setting.
If you cannot see a dialog item after you inserted it, check the settings for the position
first. If you entered identical values for different dialog items, the Dialog places them
on top of each other, so that you can only see the first item(s) you inserted.
When you want the user to select or to enter several different types of information, you will create
a tabbed dialog.
When you only need the user to select or to enter a small number of items, you can present them
directly in the dialog in a flat structure, compare Design a Simple Dialog.
To start designing your own dialog:
• Insert the Dialog into the Frame in which your are creating your simulation model. You can
do this from the folder UserInterface in the Class Library or from the toolbar User Interface
in the Toolbox.
• Enter a name and a label into the respective text boxes. As opposed to the name, you can enter
any term of your choice as the label. This includes special characters and blank spaces.
o If you enter a label, Plant Simulation show that label in the title bar of your dialog.
o If you do not enter text for the label, Plant Simulation show the Name of the Dialog object
in the title bar.
• To insert a dialog item, right-click on the tab Elements and select a dialog item on the context
menu.
You can:
• To modify an existing dialog item, right-click it and select Open on the context menu. This opens
the dialog of the Dialog Item where you can change it.
• To delete a dialog item, right-click it and select Delete on the context menu.
• To change the position of a dialog item in the dialog you are creating, first click Show Dialog and
then click Edit Dialog. Select the dialog item you want to move and drag the mouse to a
new location. This way you can, for example, roughly re-position an existing dialog item and then
enter the exact coordinates to place it exactly where you want it to be.
The Dialog applies the changed coordinates immediately. Once you have moved an
item, you cannot undo the move action. To restore the previous settings, you have to
re-enter them into the respective dialog.
• To open the dialog window you are creating modal, select Open modal. Then the user cannot
open any other Plant Simulation windows until he has completed interacting with the user-defined
dialog and closed it.
To allow the user to open other dialog windows, in addition to the user-defined dialog you are
creating, clear the check box.
• To set the position at which the Dialog opens on your computer’s screen, click the tab Position
and enter the X-position and the Y-position in pixels into the text boxes. The default setting -1
for both X-position and for Y-position centers the Dialog in screen. The zero point is located
in the left top corner of the screen.
When you are going to create a tabbed dialog, you will first have to create the tab control. The tab
control resembles a notebook that contains any number of pages (tabs). The user can navigate
between different tabs and/or sections of information within the dialog window.
Do not confuse the tab control with the tabs themselves. The tab control is the container
that holds the individual tabs (pages).
When the user selects another tab, the Dialog calls the Callback method, which in turn executes the
actions you programmed with the first parameter you entered as Callback argument.
To add it to your dialog:
• Right-click on the tab Elements and select New Tab Control.
• Enter the Name of the tab control. A Method object can call this dialog item using the Name
you entered.
• Enter the Callback argument, which will be passed to the callback method.
• Enter the X-coordinate and the Y-coordinate of the tab control in the Dialog.
The position you enter matches the average width of characters of your system font, not to
pixels. Changing the font size under Start > Settings > Control Panel > Display > Settings >
Advanced > General > Font Size, affects this setting.
• Enter the width and the height of the tab control in the Dialog. The default value of 0 sets the
height and the width to the values defined by us.
• To add one tab at the time to the tab control, click it with the right mouse button on the tab
Elements and select New Tab Page on the context menu.
• To change the order of the tabs in the dialog, select a tab on the tab Elements, hold down the
Shift key and press the Up arrow to move this tab to the left or press the Down arrow to move
this tab to the right. The dialog shows the first tab in the structure as the leftmost tab.
• Enter the Name of the tab into the dialog Dialog Item Tab Page. A Method object can call
this dialog item using the Name you entered.
• Enter the Caption of the tab. A caption is especially handy if you develop application object
libraries in several languages and want the user to be able to switch languages. In addition you
can enter special characters and blanks. The tab on the tab control shows this caption as the
title on the tab itself.
• To change the order of the tabs in the dialog, select a tab on the tab Elements, hold down the
Shift key and press the Up arrow or the Down arrow to move this tab to the left or to the right.
The dialog shows the first tab in the structure as the leftmost tab.
A list box displays a list of choices. The user can double-click one of the items in the list to select it.
As opposed to the drop-down list box, the list box has a fixed size and does not collapse.
To add it to your dialog:
• Enter the Name of the list box. A Method object can call this dialog item using the Name you
entered.
• Enter the Callback argument, which will be passed to the callback method.
• Enter the X-coordinate and the Y-coordinate of the list box in the Dialog.
The position matches the average width of characters of your system font, not to pixels. Changing
the font size under Start > Settings > Control Panel > Display > Settings > Advanced >
General > Font Size, affects this setting.
If you cannot see a dialog item after you inserted it, check the settings for the position
first. If you entered identical values for different dialog items, the Dialog places them
on top of each other, so that you can only see the first item(s) you inserted.
• Enter the width and the height of the list box in the Dialog. If you do not enter values, the Dialog
sets the width and height to the values defined by us. When you enter a value for the height, it
adds a vertical scrollbar to the list, when the list contains more items than the height.
• Click Items and enter the items the list box displays in the dialog Items.
• To add an item to the list field, enter its name into the text box and click Insert or press the
Enter key.
• To delete an item from the list, select it in the list field and click Delete.
• To move an item up one position in the list, select it in the list field and click Move Up.
• To change the name of an item in the list, select it in the list field, type another name into the
text box, and click Rename.
• To apply the items you entered and to close the dialog, click OK.
• Enter the Name of the list view. A Method object can call this dialog item using the Name you
entered.
• Enter the Callback argument, which will be passed to the callback method.
• Enter the contents of the header row and the contents of the rows in the list view into a Table.
When the user double-clicks a row to select it, the Dialog calls the Callback method, which in turn
executes the actions you programmed in the first parameter you specified as Callback argument.
• Enter the name of a table or click the button and select a table in the dialog Select Object.
• Activate the column index in the TableFile and enter the column headings the list view shows
into the header cells.
• Enter the items the list view shows into the cells of the columns.
• Enter the X-coordinate and the Y-coordinate of the list view in the Dialog.
The position and the width and the height correspond to the average width of characters of your
system font, not to pixels. Changing the font size under Start > Settings > Control Panel >
Display > Settings > Advanced > General > Font Size, affects this setting.
• Enter the width and the height of the list view in the Dialog.
Add a Button
When the user clicks a button, it calls the Callback method with the parameter you entered into the
text box Callback argument. It in turn executes the actions you programmed. To add it to your dialog:
• Right-click on the tab Elements and select New Edit Text Box.
• Enter the Name of the button. A Method object can call this dialog item using the Name you
entered.
• Enter the Caption, which the button displays. A caption is especially handy if you develop
application object libraries in several languages and want the user to be able to switch languages.
In addition you can enter special characters and blanks.
• Enter the X-coordinate and the Y-coordinate of the button in the Dialog.
The position and the width correspond to the average width of characters of your system font, not
to pixels. Changing the font size under Start > Settings > Control Panel > Display > Settings >
Advanced > General > Font Size, affects this setting.
• Enter the width of the button in the Dialog. The default value of 0 automatically sets the width
of the button to the width of the OK button.
Add an Image
An image is a picture, i.e., an icon you defined for the object Dialog. You can enter a number, or a
name, such as Icon1. To add it to your dialog:
• Right-click on the tab Elements and select New Image.
• Enter the Name of the image. A Method object can call this dialog item using the Name you
entered.
• Enter the X-coordinate and the Y-coordinate of the image in the Dialog.
The position and the width and the height correspond to the average width of characters of your
system font, not to pixels. Changing the font size under Start > Settings > Control Panel >
Display > Settings > Advanced > General > Font Size, affects this setting.
If you cannot see a dialog item after you inserted it, check the settings for the position
first. If you entered identical values for different dialog items, the Dialog places them
on top of each other, so that you can only see the first item(s) you inserted.
• Enter the width and the height of the image in the Dialog.
• Enter an Image ID, i.e., the number of the icon, or an image name. This image is an icon of
the Dialog.
Plant Simulation show the dialog with the settings you select under Display Properties
> Appearance > Font size is well as with the Font and the Size you can select, when
you click Advanced. When you change these settings, the dialog scales text, while
the images always retain their size in pixels. For this reason it can happen that text
overlaps the image. We recommend to test your dialogs with different display settings
to make sure that everything works as you expect it.
• On the tab Method, click into the text box Callback method and press F2or by hold down Shift
and double-click callback.
• On the tab User-defined Attributes, double-click callback and then click Open in the dialog
User-defined Attributes.
• If your modeling needs warrant it, you can also use a Method, which you inserted into a Frame
or into a folder in the Class Library. This will be the case, when several of your dialogs, which
do not inherit items, can use the same callback method and, for this reason, have to store the
method at a single location.
Enter the Callback argument for each of the dialog items into this method and type in the statements
(source code) you want it execute. This parameter is the same parameter that you entered into the
dialogs of the individual dialog items. Be aware that the parameters are case-sensitive! The methods
and the attributes of the Dialog enable you to program callback actions with as much complexity as
you need.
The callback method executes the callback parameter when the user:
• Closes a drop-down list box.
• Changes the contents of a text box and selects another dialog item afterwards, clicks in another
text box, or clicks OK, Apply or Cancel.
• Clicks a button.
After you created your dialog, you will have to program what happens, when the user opens the
dialog, when he applies settings, and when he closes it. Enter these actions as callback parameters
into the Callback method.
• The Dialog executes the Open section of the callback method then the user opens the dialog. It
initializes the contents of the dialog window or sets the dialog items to values of your choice.
• The Dialog executes the Apply section of the callback method, when the user clicks OK or Apply
in the Dialog. The statements you enter may evaluate new or changed values.
When the user clicks OK, the Dialog [executes the callback method twice. The first
time it calls the Apply section. The second time it calls the Close section. When the
user clicks Apply, the Dialog only executes the Apply section of the callback method.
• The Dialog executes the Close section of the callback method, when the user clicks Cancel in
the Dialog or when he closes it with Close in the title bar.
For our sample dialog we started defining the settings shown below. When the user opens the dialog,
Plant Simulation sets the variant of the car to the number of the user-defined attribute VariantNo. It
selects the check box for the sun roof and it prompts the user to enter vanity text he wants added to
his paint job. Naturally, you can preallocate as many values as you want.
The source code in SimTalk 2.0 notation looks like this:
param action: string
switch action
case "Open"
@.setIndex("VariantType", @.VariantNo)
@.setCheckbox("SunRoof", true)
case "CallbackChart"
MyChart.active := true
case "CallbackReport"
MyReport.show
end
Instead of opening the dialog of each and every material flow object in your model and entering values
for a single attribute or for a number of attributes into the text boxes, you can define which attributes of
which objects the AttributeExplorer gets and shows in a list window, when you click Show Explorer.
This way you can manage the attributes defining the settings of the individual stations in your
simulation model at a single location. You can then enter different values for the capacities, the
times, etc. Plant Simulation writes these values back to the dialogs of the objects and uses them
in your simulation model. You can also export this settings table as a tab-delimited text file and
import this file into the AttributeExplorer of another simulation model, thus using identical settings in
several of your simulation models.
You can also use the AttributeExplorer to find objects of the type you define, to find attributes, for
example the position of a number of objects, to align them in the Frame, etc.
You can insert the AttributeExplorer into your simulation model from the folder InformationFlow in
the Class Library or from the toolbar Information Flow in the Toolbox.
Before you can enter data, click the toggle button Inheritance so that it looks like this .
• To view or to edit the attributes of an object, drag that object from the Frame window over tab
Objects in the open dialog of the AttributeExplorer and drop it there. Plant Simulation enters the
absolute path to and the name of the object into the selected cell of the list.
• To just enter the name of the object, drag that object from the Frame window over the icon of the
AttributeExplorer and drop it there.
• To view or to edit the attributes of all objects of one class, click the tab Query and enter
internalclassname is the Attribute and the actual internal class name of the object as the
Value of the object there.
For the built-in objects, the method internalClassName returns the unique name that
describes the type of the object.
Before you can enter data, click the toggle button Inheritance so that it looks like this .
To enter the names of the attributes whose values you want to edit or view into the cells in the
column Name, click Attribute Viewer.
• Select from the drop-down list if you want to view the Built-in Attributes of this object, or its
User-defined Attributes, which you, or a co-worker defined. The AttributeExplorer then displays
these attributes in the left hand list box.
• Select a single, or several contiguous attributes (Shift+click), and click this to add these
attributes to the attributes to be shown in the right hand pane.
• Click OK to add these attributes to the list, which the AttributeExplorer displays, on the tab
Attributes.
If the predefined name of an attribute is not meaningful enough for your purposes, you can enter
a descriptive term for that attribute that suits your modeling situation into the corresponding cell
in the column Alias.
If you want an attribute to be read only, click into the cell Read. Then, you can just view, but not edit
that value in the list that the button Show Explorer opens.
Plant Simulation displays the background of the cells in different colors to show if the attribute
is observable or not.
To manipulate the contents of the list, use the commands on the Context Menu of Embedded Lists.
Go to Enter the Objects You Want to Parameterize
Go to Select How to Show the Objects and the Names
Go to Find Objects and Attributes
Back to Set Parameters with the AttributeExplorer
You can only change the settings, when the toggle button Inheritance is deselected .
Select what you want to do with the attributes you added to the AttributeExplorer:
• To allow you to edit the values of the attributes of any one of the stations you entered, select
Edit . Then, click Show Explorer, click in any of the cells that are not grayed out, and
enter another value. Plant Simulation writes the values you changed back to the dialogs of the
objects, when you click Apply/OK.
• To display the values of the observable attributes of any of the stations you entered, select Watch
. Then,click Show Explorer. You will notice that you can only view the values, but not
edit them. Plant Simulation displays the background of the cells in different colors to show if
the attribute is observable or not.
• To just show the values of the attributes of the stations you entered, select Read only
.Then, click Show Explorer. You will notice that you can only view the values, but not
edit them.
• Select how you want to show the objects in the Explorer window in the leftmost column:
o With their entire Path:
We dragged the Source from the Frame window over tab Data in the open dialog
of the AttributeExplorer and dropped it there. This entered its absolute path. We
dragged the Drain from the Frame window over the icon of the AttributeExplorer
and dropped it there. This entered its name only.
o Select how you want to show the attributes in the Explorer window:
■ With their Name.
■ With their Alias. Note that you enter the alias on the tab Attributes.
o If you want to, you can enter an explanation for the objects and values you defined into the
text box. To create a line break, press Shift+Enter.
To display the text you entered above the list field in the Explorer window, select Show
comment and click Apply.
You can also use the AttributeExplorer to find objects in your simulation model. First, enter the criteria
into the cells of the list on the tab Query. Then, click Show Explorer. The Explorer window shows
only the objects, which meet the search criteria you entered.
If you also want to change the attributes, enter their names on the tab Attributes. Then, click Show
Explorer. Next to the objects the Explorer window now also shows the attribute, which you can also
change, when you selected Edit on the tab Data.
You can:
• Select the number of opening Parentheses of the query.
• Enter the name of any of the attributes of the object, which the dialog Show Attributes and
Methods displays.
• Click in the cell once with the left mouse button and select a Condition from the drop-down list.
The value of the attribute can be:
• = (equal to), compares attributes of data type real, length, height, speed, and time for the exact
value
• ~= (equal to, case-insensitive) compares if strings are equal not considering lower and upper
casing, or compares if the values of attributes are about equal
• Expression, which is a regular expression, compare Show Structure. You might, for example,
enter ^Inf, which finds any word beginning with Inf.
Then enter the value into the corresponding cell in the column Value.
• Enter the Value of the attribute which the AttributeExplorer is to find.
• Click in the cell once with the left mouse button and select a boolean Operator from the drop-down
list. This operator connects the boolean values of the active row with the next row. The boolean
values result from evaluating the logical expression you defined in a row of the query table.
• end
• or
• Enter a Comment.
• Select the Frame in the dialog Select Object there you want to start finding the attributes
of the objects.
To also include any Frames that are located within the Frame you selected, select the check
box Include subframes.
Select to show the objects with their path on the tab Data for this setting.
switching between alternative graphic groups. Each simulation object or animatable object contains at
least one external graphic group named default and optionally any number of alternative or additional
graphic groups, which you can show or hide independent of each other. The visibility of the graphic
groups is a 3D object property which can be inherited as well as the entire graphic structure. You can
create, delete, or replace graphic groups on the Tab Graphics in the dialog Edit 3D Properties.
State groups are generated groups of state graphics that visualize all the states that are predefined
for a simulation object. You can create, delete, or replace the state group and the underlying state
graphics on the Tab Graphics in the dialog Edit 3D Properties.
State graphics correspond to the LEDs in Plant Simulation 2D. Every state graphic is a child of
the state group that visualizes the object state it names and has the same color as the corresponding
LED in 2D. Plant Simulation show them whenever it displays the corresponding LED in 2D. Note
that several state graphics can be displayed at the same time.
Graphics are all visual/geometric elements and groups of geometric elements in a
graphic group, a state group or state graphic, which describe the entire shape of this group.
Go to Create a Model in 3D
Go to Working with the Scene
Go to Working with Objects
Go to Working with Graphics
Go to Creating an Animatable Object
Go to Modeling a Complex Receiving Department
Go to Working with Paths
Go to Creating a Realistic Looking Model
Go to Optimizing a Graphic
Compare Working with the 3D Viewer
Compare Functions for Accessing 3D Objects in SimTalk
Compare Modeling in Tecnomatix Plant Simulation 2D
Compare Animating the Simulation Model and Viewing the Results
Compare Getting to Know Tecnomatix Plant Simulation
Create a Model in 3D
Tecnomatix Plant Simulation 2D and the 3D Viewer are fully integrated. Both store data pertinent to
their part of the model in the spp model file saved on disk, employing Microsoft’s structured storage
technology.
To create a model in the 3D Viewer, you will basically proceed as follows:
• To open a new Plant Simulation model, click Create New Model on the Start Page and select to
create a model containing a 2D part and a 3D part or to create the model only in 3D.
• To show the built-in 3D material flow objects and their graphics, you can, for example, click the
folder MaterialFlow in the Class Library with the right mouse button and select Open in 3D.
Using this technique, you can also show the contents of the other folders.
To rotate the scene, hold down the left and the right mouse buttons and drag the mouse or
hold down Ctrl and the right mouse button and drag the mouse. The rotate mouse pointer
looks like this .
To pan the scene, hold down the right mouse button and drag the mouse. The pan mouse
pointer looks like this .
To move the camera forwards and backwards, roll the mouse wheel.
To zoom the scene in or out, roll the mouse wheel or hold down Shift and the right mouse
button and drag the mouse.
If you have a three-button mouse, click the middle mouse button where the description
calls for clicking the mouse wheel.
If manipulating the scene with the mouse does not work, check the Mouse Properties for the
Wheel in the Mouse Control Panel under Start > Control Panel.
• To open a new 3D scene window, change to the Class Library. Then, click the corresponding
folder with the right mouse button and select Open in 3D.
o Make sure that Show Grid in theView ribbon tab is active, compare Show and Hide
the Grid.
We recommend to show the grid before you insert an object into the scene window. This way
you can place the object at the exact location, where you want it to be.
When you insert an object without displaying the grid, you have little control over where
the 3D Viewer places the object. By default it uses the same coordinates that the source
object had, an effect you might not want.
o Select the object you want to insert in the Toolbox or in its folder in the Class Library. Drag
the mouse pointer to the location of your choice and click the left mouse button once to
insert it there.
When you move an object towards the borders of the grid, it automatically extends in that
direction.
o Click the source object, where the connection will start, once with the left mouse button. Plant
Simulation attaches a line symbolizing the Connector to the mouse pointer.
o Drag the mouse to the destination object at which the connection will end, and click once with
the left mouse button to establish the connection.
The 3D Viewer shows the Connector it inserted as a line between the connected Interfaces of
the source and destination objects.
o To terminate connect mode before you click the destination object, click the right mouse
button or press Esc.
To connect several objects one after the other, without interrupting the connecting process,
hold down Ctrl.
o Click the left mouse button to attach the incoming Connector to the successor.
o You can also connect the objects in the 2D part of your model, which will simultaneously
insert the connections into the 3D part, when you opened the 3D Viewer.
o To show or hide connections in the scene window, click on the View ribbon tab. By
default the 3D Viewer does not show Connectors, when you create a model in 2D, and then
update it in 3D. To display them, click in the View ribbon tab.
Connect the Source, the Line, the SingleProc and the Drain you inserted above.
o Next, insert an EventController, either from the Toolbox or from the Class Library.
■ Control the simulation by clicking the buttons on the Home ribbon tab or
Modeling Hierarchically
Using hierarchical modeling techniques you can add any level of detail to the areas and machines
you insert into your simulation model. Hierarchical modeling means that you create a machine, a
production area, etc. in a Frame using the built-in object classes or classes you yourself designed.
You can then insert this Frame, Machine for example, into another Frame in which you modeled a
production area, and then insert the production area Frame into the Frame that contains your entire
factory.
The 3D Viewer provides a number of ways for working with the active scene, as opposed to working
with the objects you insert into that scene.
You can:
• Manipulate the Scene with the Mouse
• Show information about the open scene by pressing the F key on the keyboard. To hide the
information, press the F key again. The scene window shows:
You can manipulate the scene itself and the objects within that scene with the mouse. You can move
within the scene and change your view of the scene.
Instead of using a normal mouse, you can also navigate in the scene with a Space Navigator mouse.
If you have a three-button mouse, click the middle mouse button where the description
calls for clicking the mouse wheel.
If manipulating the scene with the mouse does not work, check the Mouse Properties for
the Wheel in the Mouse Control Panel under Start > Control Panel.
To rotate the scene, hold down the left and the right mouse buttons and drag the mouse or hold down
Ctrl and the right mouse button and drag the mouse. The rotate mouse pointer looks like this .
To pan the scene, hold down the right mouse button and drag the mouse. The pan mouse pointer
looks like this . If you have a three-button mouse, you can also hold down the middle mouse key
and drag the mouse
To move the camera forwards and backwards, roll the mouse wheel.
To zoom the scene in or out, roll the mouse wheel or hold down Shift and the right mouse button
and drag the mouse.
In Planning View you can navigate like this:
To move the scene on the plane, hold down the right mouse button and drag the mouse.
To zoom the scene, roll the mouse wheel or hold down the Shift key and the right mouse button
and drag the mouse.
Compare Mouse wheel behavior
Compare Manipulate an Object with the Mouse
Back to Working with the Scene
You can select from which predefined direction you look at the scene using the commands on the
View ribbon tab: the Right, from the Left, from the Back, from the Front, from the Top, or from
the Bottom.
• To view the entire scene from top looking down, click on the View ribbon tab.
• To fit the entire scene into the scene window and to show all objects in the scene if you moved
part of the scene out of view, click View All .
To save the current position and orientation of the camera with the model file, click Camera Marks
• The 3D Viewer show the path of the scene in the field Scene path.
• Click OK to set the name. This saves this setting together with the active root object of the
scene in the model file. Then, you can easily return to this saved view after you changed the
scene or reopened the model.
To return to a view you saved later on, or to navigate to the different predefined folders:
• Click the down arrow on the Camera Marks button.
Select the camera mark, i.e., the view for which you defined it, on the list.
Or
• Select the command Camera Marks.
• To switch to one of the saved scenes, select it in the list, and click Activate.
To rename or delete a camera mark, select it in the list, and click Rename or Delete.
To set the Background Color of the selected Frame or the selected folder in the Class Library:
• Click Edit 3D Properties on the Home ribbon tab or click into the Frame window with the right
mouse button and select Edit 3D Properties. Then, click the Tab Background.
• Select Assign a background color of its own. Once you select the check box, the 3D Viewer
activates the other settings on the tab.
• Select settings for the Corner brightness of the four corners of the Frame window. The top
left slider sets the settings of the top left corner of the Frame window, etc. Drag the sliders to
make the respective corner darker or brighter. This way you can define a color gradient, i.e., the
brightness of the background color.
If you do not define a background color, the 3D Viewer uses the background color of
the parent object of the selected object.
• Click on the View ribbon tab to open the dialog Fly on Path.
• Select one of the camera paths to move your view point along that path.
You can also define camera paths of your own or edit any existing path in the dialog 3D Properties
> Tab Camera Animation to meet your needs.
Go to Working with Paths
Back to Working with the Scene
When you insert objects into your 3D scene, you will notice that Plant Simulation 2D places them at
roughly equal positions in the corresponding Plant Simulation 2D Frame, and vice versa.
To accomplish this, Plant Simulation2D converts the pixel-based coordinates of the 2D Frame into
3D coordinates, where, depending on the scaling factor, the unit 1 might correspond to 1 meter. In
addition, it flips the y-axis, so that it points up.
2D coordinates 3D coordinates
The Horizontal grid spacing show the distance between two grid points on the x-axis using the
Scaling Factor you entered.
The Vertical grid spacing show the distance between two grid points on the y-axis.
The default settings Frame grid spacing 20 x 20 pixels, Length units m (meters) and a Scaling
factor of 0.05 result in a horizontal and vertical grid spacing of 1 meter each.
When you change the scaling factor, the program shows the new horizontal and vertical grid spacing
in the dialog.
The settings Frame grid spacing 20 x 20 pixels, Length unit m (meters) and a Scaling factor of 0.5
result in a horizontal and vertical grid spacing of 10 meters each.
Back to Map Coordinates in Plant Simulation 2D and in the 3D Viewer
Back to Working with the Scene
• Allows you to manually transform the camera you attached: By changing the view while in object
view, or by manipulating the object, while in normal view.
• Visualizes the animated camera, i.e., inserts an animatable object that represents the camera.
• Allows you to change between animation view and normal view during the animation.
• Allows you to manually transform the animated camera: By changing the view while in animation
view, or by manipulating the object, while in normal view.
• Allows you to define the speed of the animation and the direction of the animation.
• Allows you to pause, continue and stop the camera animation, independent of other animations
and simulations.
The 3D Viewer employs the grid as the surface onto which it inserts objects.
Be aware that showing or hiding the grid affects how objects behave:
• When you show the grid, manipulating objects always refers to the grid plane.
• When you hide the grid, manipulating objects refers to your view plane, i.e., the plane
perpendicular to the direction in which you look at the scene.
To change and define grid settings for the current simulation model and to open the dialog Edit Grid
Settings, click Settings on the View ribbon tab.
To change the grid settings for new models, select File > Preferences > 3D.
When you open the 3D Viewer, the grid in the scene window looks like this:
The 3D Viewer adjusts the dimensions and the borders of the grid to the position of the objects shown
in the scene. Note that the following constraints apply:
• The origin of the grid, i. e. the lines, which by default are red, are always part of the grid. In the
figure above the origin of the grid is designated by the red lines at the bottom and the right border.
• The grid size always is a multiple of the smallest visible grid distance.
The 3D Viewer re-creates the grid after each change you make in the model when it redraws the
scene.
So, when you insert and move an object towards the borders of the grid, it automatically extends in
that direction. The grid always expands or shrinks to show all objects in the scene.
You can:
• Show and Hide the Grid
To display the grid lines you defined and a base plate underneath the grid lines, clear the check
box Base plate.
• To change the color of the base plate, click the down arrow of the drop-down list Color
and select a different color in the color selector.
You can edit existing grid lines or add new grid lines in the group box Grid lines.
• To add another grid line, click Add.
Enter the distance between two grid lines, which you want to add; we entered 2 meters.
Select a color for the grid line, we selected a bright blue.
• To show this grid line in the grid in the scene, select Visible.
• Then, select if objects you insert snap to this grid line. Making objects snap to grid points allows
you to precisely place objects with the mouse.
• To edit an existing grid line, select it in the list and edit the interval between the grid lines, their
color, what objects, which you insert, snap to, and if this grid line is visible or not.
You can display the grid on the different planes in three-dimensional space. As you remember the 3D
Viewer uses a left-handed coordinate system:
The x-axis runs from left-to-right, the z-axis runs from bottom-to-top, and the y-axis runs from
front-to-back.
• To position the grid on the planes defined by the axes, click Transform on the View
ribbon tab and select the respective check box in the dialog Grid Position and Orientation.
The 3D Viewer does not save the settings you select in this dialog. They only apply
as long as the dialog is open.
To move the origin of the grid, click Transform on the View ribbon tab and click the spin
buttons and the buttons below Position in the dialog Grid Position and Orientation.
The 3D Viewer does not save the settings you select in this dialog. They only apply as
long as the dialog is open.
• To move the position of the Origin of the grid on the x-axis to the right, click the up arrow of
the spin button.
To move the Origin of the grid on the x-axis to the left, click the down arrow.
• To move the position of the Origin of the grid on the y-axis to the back, click the up arrow.
To move the Origin of the grid on the y-axis to the front, click the down arrow.
• To move the position of the Origin of the grid on the z-axis up, click the up arrow.
To move the Origin of the grid on the z-axis down, click the down arrow.
• To reset the values for the x-axis, the y-axis and the z-axis to their predefined default values of 0,
0, 0, click Scene Origin.
• To set the values for the x-axis, the y-axis and the z-axis to the values of the position of a single
object you selected, click Object Origin.
The 3D Viewer provides a number of ways for working with the objects you insert into the scene.
You can:
• Insert an Object
• Select Objects
• Connect Objects
• Rotate an Object
Insert an Object
You can insert a material flow object and a mobile object into the 3D scene from the:
• Class Library
The Class Library is the repository for all objects you can insert into your Plant Simulation 2D
model. It also contains a number of objects which the 3D model does not use.
• Toolbox
This is handy, when you hid the Class Library from view, by clicking on the Window ribbon
tab to preserve space.
The Toolbox also contains a number of objects the 3D model does not use.
If you want place the object freely, do not click . Plant Simulation snaps the object according
to the settings for aligning to the grid or for aligning the object to the grid and/or to objects.
• Click the object you want to insert with the left mouse button to select it. Then, drag the mouse to
the location where you want to place it and release and click the mouse button.
• If need be, you can fine-tune the location of the object in the dialog 3D Properties that clicking
• To open the dialog of the Plant Simulation 2D object, click 2D in the dialog 3D Properties or
double-click the object in the 3D scene. Modify settings here.
• To select a single object in the scene window, click it with the left mouse button.
• To select two or more objects in the scene window, hold down the Shift or Ctrl key and click the
objects with the left mouse button.
• To select a large number of objects in the scene window, drag a marquee around them:
o Without holding down the Shift or Ctrl key, the selection with the marquee cancels any
existing selection.
o When you hold down the Shift or Ctrl key, the new selection will be added to the existing
selection.
Inserting an object into the 3D scene also inserts the corresponding object into the
corresponding Plant Simulation 2D Frame!
Related Topics
Manipulate an Object with the Mouse
Manipulate an Object Precisely
Working with the Grid
Map Coordinates in Plant Simulation 2D and in the 3D Viewer
Back to Working with Objects
Select Objects
When you click the left mouse button in selection mode:
• You can select child graphic nodes of the object displayed in the view.
• You can select simulation objects which are directly located in the object displayed in the view.
• You can select animatable objects which are directly located in the object displayed in the view
and animatable objects which are located within those objects.
• When you hold down the Alt/AltGr or Shift key, you can also select simulation objects, which
are located within other simulation objects.
• You can select MUs, which are loaded onto the selected object.
• Enter the number of SingleProcs you would like to paste into the combo box Count. We entered 4.
• Enter the offset from the object you originally placed on the axes. Note that our SingleProc
is 2.0 meters wide:
An offset of 2.0 meters on the x-axis pastes 4 copies of the SingleProc with the offset you
enter to the original towards the right. Note the initial predefined offset towards the right and
downwards. We implemented this to prevent Plant Simulation from pasting the copies one
on top of the other in 2D and in 3D.
Click Paste. Move the pasted copies to where you need them.
A number of copies of 4 and an offset of 2.0 meters on the z-axis pastes 4 copies of all selected
SingleProcs in top of the original SingleProc that you pasted.
Click Paste. Move the pasted copies to where you need them.
You can also use the dialog Multiple Paste to insert more than one objects of the same class:
• Enter the number of objects you would like to insert into the combo box Count.
• Select the object class you want to insert in the Toolbox, drag it into the 3D scene, and drop it
there. This inserts the number of instances you entered next to each other, provided the dialog is
open.
Connect Objects
To connect material flow objects, which you inserted into your model, with the object Connector :
• Click on the View ribbon tab to display the grid. Click on the View ribbon tab to show
connectors in the window of the 3D scene.
• Click the source object, where the connection will start, once with the left mouse button. Plant
Simulation attaches a black line symbolizing the Connector to the mouse pointer.
• Drag the mouse to the destination object at which the connection will end, and click once with the
left mouse button to establish the connection.
• To terminate connect mode before you click the destination object, click the right mouse button or
press Esc.
To connect several objects one after the other, without interrupting the connecting process, hold
down Ctrl.
• Attach the outgoing connection to the first object.
• Click the left mouse button to attach the incoming Connector to the successor.
• You can also connect the objects in the 2D part of your model, which will simultaneously insert
the connections into the 3D part, when you opened the 3D Viewer.
To show or hide connections in the scene window, click on the View ribbon tab.
By default the 3D Viewer does not show Connectors, when you create a model in 2D
and then update it in 3D.
• Press the right arrow to move the object by 0.1 meters to the right.
Press the right arrow and hold down Shift to move the object by 1 meter to the right.
• Press the up arrow to move the object 0.1 meters upwards on the grid plane.
Press the up arrow and hold down Shift to move the object 1 meter upwards on the grid plane.
• Press the down arrow to move the object 0.1 meters downwards on the grid plane.
Press the down arrow and hold down Shift to move the object 1 meter downwards on the
grid plane.
To move the selected object vertically up or down, hold down Alt or Ctrl and press one of the
arrow keys:
• Hold down Alt or Ctrl and press the up arrow to move the object upwards in the z direction
by 0.1 meters.
Hold down Shift and Ctrl or Alt and press the up arrow to move the object upwards in the z
direction by 1 meter.
• Hold down Alt or Ctrl and press the down arrow to move the object downwards in the z direction
by 0.1 meters.
Hold down Shift and Ctrl or Alt and press the down arrow to move the object downwards in
the z direction by 1 meter.
To rotate the selected object, hold down Ctrl, and press one of the arrow keys:
• Press the left arrow to rotate the object to the left.
To rotate the selected object in steps of 15 degrees hold down Ctrl and left Shift, and press one of
the arrow keys:
• Hold down Ctrl and press the left arrow to rotate the object to the left by 1°.
Hold down Shift and Ctrl and press the left arrow to rotate the object to the left by 15°.
• Hold down Ctrl and press the right arrow to rotate the object to the right by 1°.
Hold down Shift and Ctrl and press the right arrow to rotate the object to the right by 15°.
To manipulate an object, click it with the left mouse button and drag the mouse.
When you show the grid, manipulating the object relates to the grid plane. When you hide the grid,
manipulating relates to the view plane.
• To move the object freely on the grid plane, click the left mouse button, and drag the mouse.
• To movethe object vertically up or down, hold down the Alt/AltGr key and the left mouse
button, and drag the mouse.
If you are working with a Frame with visible content, the order of pressing the
Alt/AltGr key and clicking the mouse button determines what the 3D Viewer does:
When you hold down the Alt/AltGr key before you click the mouse, you select
simulation objects located within the Frame. In any case, holding the Alt/AltGr key
down moves the selected object vertically up or down.
You can modify the objects in the scene of your simulation model manually with the mouse.
When the object is selected, you can press Esc to undo any modifications. Press Esc
repeatedly until you return to the object in its unselected state.
For some purposes this will not be precise enough. Then, you can enter exact values into the text
boxes in the dialog 3D Properties > Tab Transformation to fine tune the position, the rotation and the
scale of the selected object:
To precisely manipulate an object:
• Click on the Home ribbon tab and click the tab Transformation.
• Click Apply to apply your changes once you’re satisfied with the results.
At times manually moving an object with the mouse will not be accurate enough for your purposes.
Then, you can enter exact values into the text boxes in the dialog 3D Properties > Tab Transformation
to fine tune the position, the rotation and the scale of the selected object:
To precisely move an object:
• Select the object you would like to move.
• Click on the Home ribbon tab and click the tab Transformation.
• To move the object to the right in the x-axis, click the up arrow of the spin button.
To move the object to the left in the x-axis, click the down arrow.
• To move the object to the back in the y-axis, click the up arrow.
To move the object to the front in the y-axis, click the down arrow.
• Click Apply to apply your changes once you’re satisfied with the results.
• Click Group Graphics on the Edit ribbon tab of the 3D Viewer or press Ctrl+G. The 3D
Viewer creates a single new group.
• Then, move, rotate, scale, or zoom the group as you do a single graphic.
• Naturally you can also move, rotate, scale, or zoom the group on the Tab Transformation in the
dialog Edit 3D Properties.
When you change any graphic or the graphic structure of a class object, this also
changes all inherited objects. When you change the graphics of a derived object, this
only changes the object in which you make the changes because the 3D Viewer turns
off graphic inheritance if it has not been turned off already. As deactivating graphic
inheritance causes graphics to be duplicated, we strongly advise you to make changes
in the class object as far as possible.
• Click Ungroup Group of Graphics on the Edit ribbon tab of the 3D Viewer or press Ctrl+U to
replace this group with the contained graphics again.
Rotate an Object
Rotate an Object
The 3D Viewer provides several ways of rotating an object in the scene window.
You can:
• Rotate an Object Manually
• Hold down the Shift+Ctrl keys and press the left or the right arrow key on the keyboard to
rotate the object in 15 degree steps.
• Define the settings how the 3D Viewer rotates the object in the text boxes below Axis.
• To rotate the object around an arbitrary axis, defined by the x-component, y-component and
z-component of this axis:
Enter a value for the x-component of the rotation axis.
Enter a value for the y-component of the rotation axis.
Enter a value for the z-component of the rotation axis.
• Then, click Apply to apply these settings, so that they are active when you rotate the object.
• To rotate the object around an arbitrary axis, defined by its x-component, y-component and
z-component:
Enter a value for the x-component of the rotation axis.
Enter a value for the y-component of the rotation axis.
Enter a value for the z-component of the rotation axis.
• To apply your changes if your satisfied with the results of your changes, click Apply.
Scale an Object
At times manually scaling an object with the mouse will not be accurate enough. Then, you can enter
exact values into the text boxes in the dialog 3D Properties > Tab Transformation to fine tune the
position, the rotation and the scale of the selected object:
To precisely scale an object:
• Click it with the right mouse button to select it.
• Select Uniform, so that the 3D Viewer scales the object with the same factor for all three
dimensions and does not distort it while scaling it. This automatically enters the value you enter
into one text box into the remaining two text boxes. This way you do not have to manually enter
the same value into each text box again and again.
• Enter a value into the text boxes for the x-axis, the y-axis and the z-axis to scale the object on the
respective axis with that factor. Entering 0.5, for example, halves the size of the object on the
axis for which you entered it, entering 2 doubles its size on that axis.
• When you clear Uniform, the 3D Viewer scales the object with the factors you enter for the
different dimensions. When you enter different values, it does distort the object, for example
lengthens or compresses it.
• Enter a value into the text boxes for the x-axis, the y-axis and the z-axis to scale the object with
that factor on the respective axis.
When you change any graphic or the graphic structure of a class object, this also changes
all inherited objects. When you change the graphics of a derived object, this only changes
the object in which you make the changes because the 3D Viewer turns off graphic
inheritance if it has not been turned off already. As deactivating graphic inheritance
causes graphics to be duplicated, we strongly advise you to make changes in the class
object as far as possible.
• Select the graphic and click 3D Properties on the Home ribbon tab.
• Click the Tab Material and edit the material of the graphic.
• To apply a Diffuse color, click the down arrow and select a color in the color selector.
The diffuse color is the reflection of light from an uneven surface so that an incident ray is
seemingly reflected at a number of angles. It is the complement to specular reflection. If a
surface is completely nonspecular, the reflected light will be evenly spread over the hemisphere
surrounding the surface.
• To apply an Ambient color, click the down arrow and select a color in the color selector.
The ambient color is the color of the light reflected from the object when it is lit by another
ambient object in the scene. You can enter a value between 0, for a weak reflection, and 255,
for a strong reflection.
• To apply a Specular color, click the down arrow and select a color in the color selector.
The specular color is the reflected color of the object’s highlights.
• To apply an Emissive color, click the down arrow and select a color in the color selector.
The emissive color is the color emitted by the object. A lamp shade might have a base color of
yellow. When you turn the lamp on, though, the emissive color might be white.
• To apply a Transparency, drag the slider or enter a value between 0.0, for opaque, and 1.0,
for completely transparent, into the text box.
The transparency sets how opaque or clear the graphic is. Water, for example, might be more
clear than opaque.
• To apply a Shininess, drag the slider or enter a value between 0.0, for a very dull surface, and
1.0,for a highly polished surface, into the text box.
The shininess sets how sharp light is reflected by the object. A billiard ball, for example, has a
large shininess, making for small and sharp highlights.
When you define materials for a graphic in the graphic structure at different levels in
the structure, the 3D Viewer always uses the material that is located furthest down
in the structure for the actual rendering.
In some cases it will suffice to model the machines of your plant with the default graphics we provide
for the material flow objects and for the mobile objects. In other cases you will want to replace these
default graphics with pictures that resemble the actual machines used in your plant. In some cases
you might even have the actual graphic files of these machines, which you can then use.
We saved the graphics that are part of your program package in s3d format, we already defined
animation paths for most of them, and we scaled the objects correctly, so that they match the size
of the other objects.
Instead, you can also select a graphic which you created in the 3D Viewer with the command Export
Scene > Export Object.
To assign a different graphic to an object, you can do one of the following:
• Select the graphic, and click Exchange Graphics on the Edit ribbon tab of
the 3D Viewer or select the command on the context menu.
This command replaces all graphic and animation data of the selected object with data from
the selected .s3d-file. This means that all graphic groups, the state group, and the animation
attributes will be removed from the selected object and graphics and animation attributes of the
saved object will be added instead.
The 3D Viewer opens the dialog Exchange Graphics. By default it opens to the folder where you
installed Plant Simulation, namely C:\Program Files\Siemens\Tecnomatix Plant Simulation
XX\3D\s3D-graphics.
Select the .s3D graphic that you want to use.
Make sure that Preview is selected, so that you can see what the graphic looks like.
To exchange graphics, you can also drag an .s3d-file from a File Explorer window and drop it
onto a 3D Viewer window.
• Select the graphic, and click Import Graphics on the Edit ribbon tab of the 3D Viewer.
The 3D Viewer opens the dialog Open. By default it opens to the folder where you installed
Plant Simulation, namely C:\Program Files\Siemens\Tecnomatix Plant Simulation
XX\3D\jt-graphics.
Select the .jt graphic that you want to use.
Instead, you can also import a graphic which you created in the 3D Viewer with the command
Export Scene > Export Graphics. Or you can import a graphic file that you exported from another
3D modeling program in a format that Plant Simulation can import.
After the 3D Viewer inserted the imported graphics, it will add them to the selected graphic group
while keeping any already existing graphics. Delete any graphics that you do not need any longer.
To import graphics you can also drag a file of a supported graphic format from a File Explorer
window and drop it onto a 3D Viewer window.
After modifying graphics by importing, creating, or transforming them, you might have
to adjust the animation paths or the animation points of the 3D object to the new overall
graphic. You do not have to do this when you used the command Exchange Graphics.
When you change any graphic or the graphic structure of a class object, this also
changes all inherited objects. When you change the graphics of a derived object, this
only changes the object in which you make the changes because the 3D Viewer turns
off graphic inheritance if it has not been turned off already. As deactivating graphic
inheritance causes graphics to be duplicated, we strongly advise you to make changes
in the class object as far as possible.
A layout graphic adds a realistic touch to your simulation model. Before we add the graphic, we have
to change the axes origin of our Frame in Plant Simulation 2D as 2D can only expand the size of the
Frame to the right along the x-axis and downwards along the y-axis.
If you are working with a 3D model only, Plant Simulation does this automatically.
Click into the Frame in 2D, click the ribbon tab General, and then on the button Representation.
Enter 0 for the Axes origin X and Axes origin Y.
• Drag the mouse to the upper left corner of the Frame to the coordinates 0, 0 and click the left
mouse button to place and insert the graphic. The model should look like this now:
You can now continue working with your model, by inserting objects and components and by
manipulating them in a number of ways.
Instead of using a JT-layout file you can also use a point cloud is the background of your simulation
model.
Compare Working with a Point Cloud
Compare Add a Graphic and a Color to the Background or the Icon of the Frame
Back to Working with Objects
We already defined animation areas for the objects with a matrix loading space ParallelProc, Sorter,
Store, Transporter and Container. These should meet your most basic modeling needs. If you
change the predefined capacities or graphics though, you may want to change these settings to
correctly display the MUs in the objects.
If you want to define an individual storage place, create an MU-Animation path with the name
#x#y. x designates the number of the storage place in the x direction minus 1 and y designates the
number of the storage place minus 1.
If a path is not defined, the 3D Viewer does not show the MU on that path.
You can enter the capacity—the number of parts the objects ParallelProc, Sorter, Store, Transporter
and Container can hold—into the text boxes X-dimension and Y-dimension on the tab Attributes.
Plant Simulation 2D places the MUs into the animation points you defined in the icon of the class of
the object.
To view and to set animation points in the icon of a built-in object, click the Animation ribbon tab of
the Icon Editor, compare Set and Link Animation Points and Animation Lines.
Go to Define the Animation Area of an Object in the 3D Viewer
Back to Animate Parts on Animation Areas of Material Flow Objects
Whereas you define the capacity of the objects in Plant Simulation 2D in two dimensions, the 3D
Viewer show the animation of the 3D Viewer object in three dimensions.
To set the animation area of an object with matrix loading space (ParallelProc, Sorter, Store,
Transporter, Container) in 3D, proceed as follows:
• Click the object with the right mouse button to select it.
In most cases you want the corresponding objects in the 3D Viewer and in Plant Simulation 2D to
have the same lengths to represent your plant as true-to-life as possible. In addition, a smooth
animation of an Plant Simulation simulation model in the 3D Viewer requires animation paths that
match the length of the corresponding objects in Plant Simulation.
By default Plant Simulation uses the same values for the length of all objects, or a single object you
selected, in 2D and in 3D. To check this, click Edit 3D Properties on the Home ribbon tab. Then,
click the tab Transformation and make sure that Connect 2D and 3D positions and/or Connect 2D
and 3D rotations are active.
Depending on which level of the object hierarchy you open a 3D window, a 3D object can look
different. For this reason we differentiate between the outside representation of the object and the
inside representation of the object:
• Theoutside representation designates the entirety of all graphics, which are visible, when the
location of this object is opened in a 3D window. This includes:
o Its states group which you set according to the States orientation.
When you activated Show content for the object, this also includes in addition:
o Theoutside representation of those of its contained 3D objects, which are not explicitly
excluded from the superordinate outside representation, i.e., for which you activated Hide
this object in the representation of the location.
• Theinside representation designates the entirety of all graphics, which are visible, when the
object itself is opened in a 3D window. This includes:
Independent of the representation, a graphic group is generally only visible when you select the
check box Visible. This makes sense for graphic groups, which you only want to use temporarily
for the represent the object.
When editing the object it might helpful to show the outside representation and the inside
representation at the same time. To do so, activate Show External Graphics in a 3D window, which
contains the object you are editing.
In addition you can show or hide all Connectors and Interfaces in the active 3D window with the
button Show Connections.
Part
of
Part of the Outside
Graphic Group/States Group the
Representation
Inside
Representation
Graphic
no no
group
: yes
yes
: no
Show
External
Graphics
on:
yes
yes
Show
External
Graphics
off:
no
Show
External
Graphics
on:
yes
only in the location
Show
External
Graphics
off:
no
Show Connections on:
not yes
from Connector or Interface possible
Show Connections off:
no
Show Connections on:
yes
States group yes
Show Connections off:
no
The following sample model demonstrates the different ways of representing objects in 3D:
In addition to a number of material flow objects, our model MyPlant contains the Frame named
WashingMachine and two instances of the Frame named WorkerCell.
The 3D window of the FrameMyPlant show the WashingMachine is a green box. The green box is the
outside representation of the WashingMachine.
When you open the WashingMachine in a 3D window of its own, it shows its contents, namely
a SingleProc displaying its states, an Entity, and Interfaces and Connectors. This is the inside
representation of the WashingMachine. You can right-click into the background of the 3D window
and select Show Structure to show its structure.
When you click Show External Graphics, the 3D Viewer also shows external graphic groups in
the internal representation, allowing you to edit them. In our WashingMachine the graphic group
named Default is the only graphic group that is not internal but external. You can right-click into the
background of the 3D window and select Show Graphic Structure to show its graphic structure.
In the outside representation external graphics are always visible, provided you selected the check
box Visible .
The contents of an object is, on the other hand, only visible, when you activated Show content
for this object, which is not the case for the WashingMachine.
As we selected Show content for the WorkerCell, its contents is visible in its outside representation.
Comparing the outside representation of the WorkerCell in the window MyPlant with the inside
representation in its own 3D window, namely with the window WorkerCell, you’ll notice that the
outside representation shows the safety fence and the floor plate, while the inside representation
does not show them. This is because these graphics belong to the external graphic group named
Default and that Show External Graphics is deactivated by default in the window of the WorkerCell
The work tables and the cabinets of the internal graphic group named Deco are, on the other hand,
also visible in the outside representation because by definition Deco belongs to the contents of
the WorkerCell.
The objects Broker and WorkerPool in the WorkerCell however are visible in the inside
representation, but not in the outside representation. This is because the check box
is activated by default for these objects.
The following figure provides an overview over the outside and the inside representation:
When you are modeling in 2D while 3D is active as well and when your model contains a Frame
containing objects, you might be surprised how the model looks with the standard settings.
In our sample model the Frame contains two Interfaces and a Turntable.
As Show content is active by default for the Frame in 3D, the content of the Frame, i.e., the Interfaces
and the Turntable, are shown on the same level as the other material flow objects. This might look
strange at first sight, compare the first screenshot.
• Now the content as well as the graphic of the Frame are hidden. We would like to show the
graphic of the Frame though.
• To do so, we activate the check box Visible for the graphic group named default. This shows the
default graphic of the Frame. Now both models look the same again.
• You can import a three-dimensional graphic from the 3D Viewer graphics library, from your
own graphics library or from a graphics program that can save files in VRML (WRL) format,
into your simulation model.
You can then transform this graphic into an object, compare Import a 3D Graphic.
o Click the graphic with the right mouse button and select Make Animatable Object on the
context menu.
• You can create simple three-dimensional graphics in the 3D Viewer. Then, click the object with
the right mouse button and select Make Animatable Object on the context menu.
You can also use it as a graphic, for example as the background of your three-dimensional model
to model your installation as close to its actual look as possible.
Go to Import a 3D Graphic
Go to Employing Graphic Inheritance
Go to Create, Edit, and Delete a 3D Shape
Go to Create a Textured Plate
Go to Attach a 3D Shape to an Object
Go to Import JT Graphics Representing an Object
Go to Use a Different Graphic for an Object
Back to Working with Objects
Import a 3D Graphic
To create your own 3D objects, you can import graphics into your 3D simulation model.
The 3D Viewer can import these file formats:
• All 3D Graphic Files
• JT Files (*.jt)
o To import a graphic that contains animation structures which you, or a colleague, defined:
Click Import Graphics on the Edit ribbon tab. Select the respective file type, navigate to
the folder that contains the graphic, select it and click Open.
These graphic files can either be files that are part of your program package or files you
yourself created with the command Export Graphics.
o To replace the graphic of an object with another graphic that contains animation structures:
Click the object with the right mouse button and select Exchange Graphic. Select 3D Files,
navigate to the folder that contains the graphic, select it and click Open.
Click Import Graphics on the Edit ribbon tab. Select , navigate to the folder
that contains the graphic, select it, and click Open.
Employing graphic inheritance allows you to re-use graphics, so that your model file does not get
too large and unwieldy. In general all graphic information is inherited, except when you duplicate an
object in Plant Simulation2D.
When you change any graphic or the graphic structure of a class object, this also changes
all inherited objects. When you change the graphics of a derived object, this only changes
the object in which you make the changes because the 3D Viewer turns off graphic
inheritance if it has not been turned off already. As deactivating graphic inheritance
causes graphics to be duplicated, we strongly advise you to make changes in the class
object as far as possible.
or
Activating Graphic Inheritance restores the graphic to the graphic of the origin of the object, while
deactivating Inheritance retains the graphic you modified in the instance.
Related Topic
_3D.InheritGraphics
Back to Create Your Own 3D Objects
To create a three-dimensional shape, click Insert Cuboid, Insert Cylinder, Insert Sphere, Insert Cone,
Insert Plate, Insert Textured Plate, Insert Text, Insert Box, Insert Rack, Insert Barred Area, Insert
Stairs, Insert Factory Walls, or Insert Fence on the Edit ribbon tab of the 3D Viewer.
The 3D shapes are graphics. You can, for example, replace the standard graphic of a station with one
of the shapes you created.
• Click the shape you want to create. In our example we create a cuboid . In the dialog Create
Cuboid:
• Select the Graphic group to which you want to add the cuboid.
• Enter the Width, the Depth, and the Height of the cuboid.
• To create the cuboid, click Create. The 3D Viewer attaches the cuboid to the mouse pointer.
Drag the mouse to the position at which you would like to insert it and click the left mouse button.
To cancel inserting, you can click the right mouse button or press the Esc key.
• To change the position, the rotation, or the scale of the shape after you inserted it, select it and
click 3D Properties > Tab Transformation on the Home ribbon tab. Then change the settings
according to you needs.
• To set if the cube is an Obstacle for the Worker, select it and then click Edit 3D Properties on
the Home ribbon tab. Then, click the Tab Graphic Settings.
• To assign a color and a material, select the cuboid and click 3D Properties on the Home ribbon
tab. Then, click the Tab Material.
• To change the position, the rotation, or the scale of the shape after you inserted it, select it and
click 3D Properties > Tab Transformation on the Home ribbon tab. Then change the settings
according to you needs.
• To set if the cube is an obstacle for the worker, select it and click Edit 3D Properties on the
Home ribbon tab. Then click the tab Graphic Settings.
• To delete the shape from the scene window, click it with the right mouse button and click in
the mini toolbar or select Show Graphic Structure.
If the graphic group to which you added the shape, Deco in our case, is not expanded already,
expand it. Click the node of the shape you want to delete with the right mouse button. Select Delete.
When you start to insert a newly created shape into an external graphic group, the 3D
Viewer automatically activates Show External Graphics until you click the destination
position so that you can align the new graphic which is attached to the mouse pointer with
all other graphics of the destination graphic group.
• Click Insert Textured Plate on the Edit ribbon bar of the 3D Viewer.
For our example we use the rectangular image with the logo. We
selected these settings:
• Click Create. The 3D Viewer attaches the textured plate to the mouse pointer. Drag the mouse
to the position at which you would like to insert it and click the left mouse button. To cancel
inserting, you can click the right mouse button or press the Esckey.
The inserted plate looks like this with the settings orientation > floor and fit texture to plate.
Floor
Front wall
Side wall
• When you select Show on both sides, the 3D Viewer shows the image on the top/front and on
the bottom/back of the inserted plate.
• When you select fit image size, and enter 2 tiles for the x-dimension and the y-dimension, the
3D Viewer inserts two tiles of the image in each dimension.
• To move the textured plate to another location of your choice, click it with the left mouse button
and drag the mouse.
• To change the size of the textured plate after you inserted it, select it and click 3D Properties
textured plate > Tab Transformation on the Home ribbon tab. Then change the scale according
to you needs.
• To set if the textured plate is a Obstacle for the Worker, select it and click Edit 3D Properties
on the Home ribbon tab. Then click the Tab Graphic Settings.
• To assign a material to the textured plate, select it and then click Edit 3D Properties > Tab
Material on the Home ribbon tab.
When you start to insert a newly created shape into an external graphic group, the 3D
Viewer automatically activates Show External Graphics until you click the destination
position so that you can align the new graphic at the mouse pointer with all other graphics
of the destination graphic group.
• Click on the Edit ribbon tab of the 3D Viewer to display graphics and select the graphic of
the object.
• Activate or deactivate Graphic Inheritance by selecting or clearing the check box under 3D
Properties > Graphics > Object graphics.
In addition to static shapes, you can also use length-oriented objects. Length-oriented objects contain
graphics that are defined by extrusion segments and an extrusion configuration. This way any change
of the length of a simulation object is directly mapped to a change of the graphic.
Back to Create Your Own 3D Objects
in the dialog Edit 3D Properties by selecting the orientation of the states for the state group:
Horizontal, Vertical, or None. When you change this setting, the 3D Viewer always deletes all state
graphics and creates new state graphics afterwards, which are arranged according to your selection.
You can delete and edit each graphic of a graphic group, a state group, or a state graphic individually.
To modify a graphic you can either change it with the mouse in a 3D window or you can specify
the new position, the rotation, the scaling, or the material in the dialog Edit 3D Properties of
the selected graphic.
When you change any graphic or the graphic structure of a class object, this also changes
all inherited objects. When you change the graphics of a derived object, this only changes
the object in which you make the changes because the 3D Viewer turns off graphic
inheritance if it has not been turned off already. As deactivating graphic inheritance
causes graphics to be duplicated, we strongly advise you to make changes in the class
object as far as possible.
In this sample model we demonstrate how to model a greatly simplified airplane and how to display
the assembly process by successively showing selected graphic groups representing a finished
component.
We will demonstrate how to:
• Create a New MU Class Representing the Airplane
First, we will create a new MU class that represents the airplane we are going to build:
• Open the folder MUs in the Class Library.
• Click the object Container with the right mouse button and select Duplicate.
While you’re at it, you can also rename the Frame named Frame in the folder Models to
MyAirplaneAssembly.
After creating the MU class Airplane for our model, we will create the graphics of the different
components of the airplane. For demonstration purposes we will content ourselves with the shapes
that the 3D Viewer provides. In a real situation, we would naturally use the CAD drawings we
received from the engineering department.
• Start the 3D Viewer by clicking on the Home ribbon tab. This opens the Frame containing
our simulation model in the 3D Viewer, MyAirplaneAssembly in our case.
• Now we can edit the MU class Airplane in the 3D Viewer. Click it in the Class Library with the right
mouse button and select Open in 3D. Click into the background of the Frame .MUs.Airplane
with the right mouse button and select Edit 3D Properties.
As we do not need the default graphic of our airplane, the pallet with the name default,
we delete this graphic by selecting it in the 3D window .MU.Airplane and pressing the
Del key.
• Click Add to add a new graphic group. We first want to add the graphic group for the fuselage
of the airplane. Type Fuselage into the text box Name.
Once you clicked OK in the dialog above and Apply in the dialog Edit 3D Properties, the dialog
Show Graphic Structure show our new graphic group as well.
• Now we can create the actual graphic that represents the fuselage. Change to the Edit ribbon
tab and select Insert Cylinder.
• Select the graphic group to which you want to add the newly created graphic, Fuselage in our
case. Enter the dimension of the cylinder and click Create.
Plant Simulation attaches the cylinder to the cursor in the 3D window .MUs.Airplane. Drag it to
the position of your choice and click the left mouse button to insert it into the scene window.
• The 3D Viewer inserts the cylinder in the upright position. This is not what we want though. We
need our fuselage to be in the horizontal position. To rotate it by 90 degrees, click it with the right
mouse button and select Edit 3D Properties.
• Enter the settings from the screenshot below and click Apply to rotate the fuselage by an angle
of 90 degrees.
• In the next step, we are going to add the graphic group for the cockpit of our airplane. Click
with the right mouse button in the Frame.MUs.Airplane and select Edit 3D Properties. Change
to the tab Graphics and click Add. Type Cockpit into the text box Name and click OK in the
dialog. Then click Apply in the dialog Edit 3D Properties.
• Then, create the actual graphic that represents the cockpit. Change to the Edit ribbon tab and
select Insert Cone .
• Select the graphic group to which you want to add the newly created graphic, Cockpit in our
case. Enter the dimension of the cone and click Create. Plant Simulation attaches the cone to
the cursor in the 3D window .MUs.Airplane. Drag it to the position of your choice and click the
left mouse button to insert it into the scene window.
• Rotate the cockpit by 90 degrees and place it at the right-hand side of the fuselage. We used the
settings shown the screenshot below.
While you’re at it, you might also assign the cockpit a color on the tab Material.
• As our airplane also needs a right wing and a left wing, we create these next. Repeat the
steps described above.
o Add the graphic group for the right wing.
o Select the graphic group RightWing to which the graphic will be added. Create the actual
graphic for the right wing.
o Place the right wing at the appropriate position on the fuselage. We used the settings below.
o Repeat these steps for the left wing. We used the settings below to place the left wing
at the appropriate position on the fuselage.
o In our last step we are going to create the tail assembly (empennage) consisting of the
vertical stabilizer and the horizontal stabilizer (tail plane). Repeat the steps described
above.
■ Add the graphic group for the tail assembly.
■ Select the graphic group TailAssembly to which the graphic will be added. Create the
actual graphics representing the tail assembly. We used a Cone for the vertical
stabilizer and a Sphere for the horizontal stabilizer.
■ Place the horizontal stabilizer at the appropriate position on the fuselage. We used
the settings below. Note that we also scaled the sphere in all three dimensions to
stretch and to flatten it.
■ Select the graphic group TailAssembly to which the graphic will be added. Create the
graphic representing the vertical stabilizer.
■ Place the vertical stabilizer at the appropriate position on the fuselage. We used the
settings below. Note that we also scaled the cone in the y-dimension.
The dialog Graphic Structure also shows that our tail assembly consists of two graphics.
Instead of using shapes which we create in the 3D Viewer itself, we can also Import JT
Graphics Representing an Object.
• Program The Methods Controlling The Visibility Of The Airplane On The Stations
• Change the Orientation and the Position of the Airplane on the Stations
• Insert and configure the Source so that it matches the screenshots below. Make sure that it
produces an MU of type Airplane. Select the method hidePlane is the exit control on the tab
Controls.
• Insert and configure the SingleProc. Enter a processing time of 10 seconds (0:10). Select the
method showFuselage is the entrance control on the tab Controls.
• Insert and configure next station, called SingleProc1. Enter a processing time of 10 seconds.
Select the method showTailAssembly is the entrance control on the tab Controls.
• Insert and configure final station, called SingleProc2. Enter a processing time of 10 seconds.
Select the method showWings is the entrance control on the tab Controls.
Go to Program The Methods Controlling The Visibility Of The Airplane On The Stations
Go to Change the Orientation and the Position of the Airplane on the Stations
Back to Show the Progress of the Airplane Assembly
Program The Methods Controlling The Visibility Of The Airplane On The Stations
Next, we are going to program the methods we use as exit and as entrance controls of the stations
for hiding and showing graphic groups as the airplane moves from station to station. To do so, we will
use the methods _3D.hideGraphicGroup and _3D.showGraphicGroup.
• Program the method hidePlane, which we use as the exit control of the Source, so that it hides
all components of the airplane. Once all components are hidden, it moves the airplane on to the
next station. We entered the following source code:
@._3D.hideGraphicGroup("Fuselage");
@._3D.hideGraphicGroup("Cockpit");
@._3D.hideGraphicGroup("LeftWing");
@._3D.hideGraphicGroup("RightWing");
@._3D.hideGraphicGroup("TailAssembly");
• Program the method showFuselage, which we use as the entrance control of the station
SingleProc, so that it shows the fuselage and the cockpit of the airplane. We entered the
following source code:
@._3D.showGraphicGroup("Fuselage");
@._3D.showGraphicGroup("Cockpit");
• Program the method showTailAssembly, which we use as the entrance control of the station
SingleProc1, so that it shows the tail assembly of the airplane. We entered the following source
code:
@._3D.showGraphicGroup("TailAssembly");
• Program the method showWings, which we use as the entrance control of the station
SingleProc2, so that it shows the wings of the airplane. We entered the following source code:
@._3D.showGraphicGroup("LeftWing");
@._3D.showGraphicGroup("RightWing");
• As we are running the simulation in the 3D Viewer and we want to see a smooth animation, we
activate real time mode in the dialog of the EventController in our simulation model by selecting
the check box Real-time.
• Let’s run the simulation to check if everything works as intended, which indeed it does.
Back to Insert and Configure the Source and the Processing Stations
Go to Change the Orientation and the Position of the Airplane on the Stations
Back to Show the Progress of the Airplane Assembly
Change the Orientation and the Position of the Airplane on the Stations
If you want to, you can also adjust the orientation and the position the airplane on the stations. The
default orientation of the airplane looks realistic on a conveyor, modeled for example with a Line, it
does not look good on the SingleProcs that we used.
• First, let’s rotate the airplane by 90 degrees to the right. To do so, click the class of the airplane
with the right mouse button, and select Open in 3D. Click the right mouse button into the
background of the window and select Edit 3D Properties. Enter 90 into the textbox Angle
on the tab Transformation.
• Now let’s change the position of the airplane on the stations. This is necessary, because by
default the 3D Viewer places the MUs at the origin of its scene, i.e., the point where the two red
lines intersect. This is why the tail of our airplane is placed on the reference point of the stations.
To change the position of the airplane on the stations, open the class of the airplane in a new 3D
window. Press Ctrl+A to select all graphic groups of the airplane. Move them to the left with the
left arrow key until the center of the wings is located on the y axis.
Run the simulation again to show the result of centering the airplane on the processing stations.
Back to Insert and Configure the Source and the Processing Stations
Back to Change the Orientation and the Position of the Airplane on the Stations
Instead of using shapes, which you create in the 3D Viewer itself, you can also import graphics to
represent an object. In our example we used a number of JT graphics, which we received from a
colleague, to build a dune buggy. Proceed as follows:
• Duplicate the part .MUs.Entity in the Class Library and rename it to DuneBuggy. Add the graphic
groups containing the graphics of the components on the Tab Graphics. We added the following
graphic groups and named them as shown in the screenshot below.
• Import the JT graphics into the graphic groups with the respective name. Import the files Body.jt
and Seats.jt into all graphic groups whose name starts with Body or Seats.
• Change to the 3D ribbon tab Edit and click Import Graphics, navigate to the folder containing
the JT graphics, and click Open in the dialog Open.
• Drag the JT graphic, the Frame of the dune buggy in the example below, roughly to the position
in the Frame named .MUs.DuneBuggy, where you want it to be, and click the left mouse button.
Select the graphic group to which you want to add the graphic, Frame in our case.
• Arrange the position of the components of the dune buggy. We used a combination of the arrow
keys and the settings in the dialog Edit 3D Properties.
Place the three body panels at exactly the same position. Do the same for the three seat
assemblies. This way you can later show or hide selected body panels and seats to test different
color combinations.
• To change the color of a graphic, click into the background of the Frame .MUs.DuneBuggy with
the right mouse button, and select Show Graphic Structure.
o Expand the graphic group by clicking the button, BodyRed in our case.
o Click the JT button and look for the node with a -M at the end of the name. This
designates that this node defines a material.
o Click that node with the right mouse button, (1-JtGroup-M) in our case, and select Edit 3D
Properties. Experiment with the different material colors to create the look that you want.
Using the color combinations, you can fine-tune glossy effects etc.
State graphics correspond to the LEDs in Plant Simulation 2D, compare States and Icons of
the Material Flow Objects. Every state graphic visualizes the object state it names and has the
same color as the corresponding LED in 2D. Plant Simulation show them whenever it displays the
corresponding LED in 2D. Note that several state graphics can be displayed at the same time.
You can select the settings for state graphics on the Tab Graphics > States orientation.
By default Plant Simulation show the states as horizontally arranged LEDs at the back of the
graphic of the machine. Depending on the look of the graphic of the machine this may not be practical
as the graphic of the machine might hide the state graphics as such. To fix this, we’ll demonstrate
how to show the state graphics at the front of the machine.
Our sample graphic without state graphics looks like this:
• To show the state graphics, click the machine with the right mouse button and select Show
Graphic Structure. Click the node States with the right mouse button and select Show All.
Rotate the machine to show the state graphics. You’ll notice that the default setting is not helpful
as all state graphics are hidden by the machine when we look at it from the front and as some of
them disappear inside of the machine.
• To remedy that, let’s move the horizontal states to the front of the machine. You can either
o Move the state graphics with the arrow keys. Select the state graphics bar. Press the Up
or Down arrow key to move it in the Y direction. Press the Left or Right arrow key to move
it in the X direction. Hold down the Ctrl key and press the Up or Down arrow key to move
it in the Z direction. Or you can
o Move the state graphics with the mouse. Select the state graphics bar. Drag the mouse
left and right to move it in the Y direction. Drag the mouse back and forth to move it in the
X direction. Hold down the Ctrl key and drag the mouse up and down to move it in the Z
direction.
You’ll notice that moving objects with the arrow keys and/or the mouse might not be accurate
enough. Instead, you can also enter precise values into the dialog Edit 3D Properties. If
you want to, you can also combine the three methods by first moving the object with the
arrow keys, or the mouse, to roughly the position where you want the object to be and by
then entering precise values into the dialog.
o Click the machine with the right mouse button ans select Show Graphic Structure. Then
select Edit 3D Properties in the window Show Graphic Structure.
o Change the position on the tab Transformation so that X [reads -1.07, so that Y reads
-0.2,
and that Z reads 0.25.
o Click Apply to check if the result looks like we expected it to be. The state graphics bar
moved to the front of the machine, but it is too high. To fix that, we scale it in the Z direction.
Clear the check box Uniform and enter 0.9 into the text box Z. Now it looks good.
When you select to show vertically arranged LEDs for a machine for which you imported or drew a
graphic, you will have to adjust the position settings of the state graphics so that Plant Simulation
show them correctly without overlapping a part of the machine. By default, vertical states are shown
on a gray pole, so you don’t have to visualize the states in order to be able to move them around
without the dialog Edit 3D Properties.
To activate vertically arranged LEDs, open the object in 3D, click the right mouse button into the
background of the 3D window, and select Edit 3D Properties. Our sample graphic with vertically
arranged state graphics on a pole looks like this:
You’ll notice that the pole as such is too long and that the bulb showing the individual states is too
long as well. Besides, the pole is positioned too far away from the graphic. To fix this, we adjust the
position and the scaling of the state graphics by clicking Transformation.
Back to Illustrating State Graphics
While you are creating your simulation model, you will also face the task of converting a graphic, which
you drew in the 3D Viewer, into an object, which animates a certain work process in the 3D Viewer.
In our example we model our own station in a Frame. We will demonstrate how to:
• Create the Required Simulation Object
To create the simulation object that is required for our animatable object:
• Create a new Frame and open it in 3D. Open the dialog Edit 3D Properties. Change to the tab
Graphics. Select the check box Show content to show the objects contained within it.
• Click Show External Graphics on the View ribbon tab to show the default graphic of
the Frame. Delete the graphic named default.
• Click Import Graphics on the Edit ribbon tab to import an appropriate JT file into the graphic of
the Frame. Our file is called Screwdriver.jt. We received it from a colleague.
• Extract the first simulation object: Click the floor plate of the station by pressing the + key on
your keyboard until only the floor plate, and nothing else, is marked as selected. The 3D Viewer
then shows the floor plate in a yellowish green.
• Click the graphic with the right mouse button and select Make Simulation Object.
• Select .MaterialFlow.SingleProc is the class. Name the object PartCarrierStation and select
the following coordinates as the object position: X is to be 0.01, Y is to be 0, and Z is to be
0 is well. Watch how the white cross lines change their position in the scene window as you
change the position of the object in the dialog.
• Select the trestle that holds the actual screwdriver of our screwdriver station. Notice that when
you select PartCarrierStation, the 3D Viewer show it in a darker green while it shows the other
graphics in a light yellowish green. Dark green denotes that an object is selected. Yellowish
green [denotes that a graphic is selected, meaning that you can use the + key to contract the
selection along the graphic structure.
Create a second simulation object. Select .MaterialFlow.SingleProc is the class. Name the
object Trestle and select the following coordinates as the object position: X is to be 0,Y is
to be 0, and Z is to be 0.1.
• Insert three Interface objects that enable our station to connect to other objects when we insert it
into a simulation model. Name them InPalette, InScrew and Out. Connect InScrew with Trestle,
InPalette with PartCarrierStation, and PartCarrierStation with Out. Move the Interfaces is far as
possible to the inside of the SingleProcs and hide their default graphic on the tab Graphics, as
we probably won’t need their graphics anymore. If you have trouble discerning the individual
parts of the station, move them around a bit and then move them back to their original position
after you moved the Interfaces. Also hide the Connectors by clicking Show Connections
in the View ribbon tab.
After creating the basic simulation part of our Screwdriver station, we are going to add the animation
part and the interaction part to it.
• Click the trestle of the screwdriver with the right mouse button and select Open in New 3D
Window. This opens the Frame .Models.MyScrewdriver.Trestle. Press the + key until only the
graphic of the screw arm proper is selected, denoted by the lighter green.
• Click the graphic with the right mouse button and select the command Make Animatable Object.
Name the object Arm and select the following coordinates as the object position: X is to be
0, Y is to be 0, and Z is to be 0.8.
• Click the newly created animatable object with the right mouse button and select Use as
Animation Object. This means that our trestle forwards the animation of the MUs to the
animatable object named Arm.
• Open the Trestle in a new 3D window. Click the Arm with the right mouse button and change
to the Tab Self Animation.
o Add your animation paths of type Lines. We named our paths Setup, DownAdvance, Reset,
and DownFinal.
o Select the respective path and click Edit to define two anchor points for each path. Click Add
in the dialog Path Anchor Points, then select the new anchor point, and click Edit Values.
Enter these values into the dialog that opens:
( 0, 0, 0) to ( 0, 0, 0.9) for Setup, ( 0, 0, 0.9) to ( 0, 0, - 0.1) for DownAdvance, ( 0, 0, -0.1) to (
0, 0, -0.22) for DownFinal, ( 0, 0, -0.22) to ( 0, 0, 0) for Reset.
With these settings, the animation paths of the arm resemble components of a continuous
smooth up and down movement.
o Change to the Tab MU Animation, add a new path, name it Default, and add a single
animation point with the settings ( 0, 0, -0.38).
• Finally, we are going to configure the simulation side of the stations, i.e. the 2D stations we
created as simulation objects above. To do so:
o Double-click the PartCarrierStation and configure it. We entered a processing time of
10 seconds (0:10).
We also created the exit control called self.OnExit and entered this source code.
The source code in SimTalk 2.0 notation looks like this:
if ?.ExitCtrlFront
self.~.~.Trestle.EntranceLocked := false
@.move
end
In addition we added a user-defined attribute of dat type method, named it init, and entered
this source code:
self.~.EntranceLocked := true;
• Double-click the Trestle and configure it. We entered a set-up time of 6 seconds (0:06) and
selected these settings on the tab Set-Up.
We also created the entrance control called self.OnEntrance, the exit control named self.OnExit,
and the setup control called self.OnSetup.
We entered this source code into the entrance control:
The source code in SimTalk 2.0 notation looks like this:
var animations : any := self.~._3D.getObject("Arm").SelfAnimations
animations.resetAnimation
animations.DownAdvance.schedule
animations.startNextAnimationBlock
animations.DownFinal.schedule
animations.scheduleRotation(0, 360, 90)
@.outIn(animations.EstimatedTotalAnimationTime)
animations.playAnimation
animations.Reset.schedule
animations.playAnimation
self.~.EntranceLocked := true
end
In addition we added a user-defined attribute of data type method, named it init, and entered this
source code:
self.~.EntranceLocked := false;
Now we are ready to test our screwdriver station in the simulation model.
• Insert a Source, which produces the pallets which we want to screw together. We named it
SourcePallets.
Insert a second Source, which feeds the screws required for screwing together the pallets. We
named it SourceScrews. We received the screw, including the JT file, from a colleague.
• Insert a Drain, which removes the finished pallets from the plant.
• Insert three Lines between the Sources, the Drain, and the Screwdriver station.
• Connect all objects with Connectors. Connect the SourcePallets, that produces the MU
> PartsCarrier, with the LinePallets, and with the InterfaceInPalette of the Screwdriver.
Connect the SourceScrews that produces the MU > Screw, with the LineScrews, and with the
InterfaceInScrew. Connect the LineOut with the InterfaceOut and then with the Drain. The
simulation model should now look like this:
You might be wondering how we inserted the Lines with an inclination to smoothly connect to the
Screwdriver station. We proceeded as follows:
o For the LinePallets we entered an anchor point height of 1 meter for the first anchor point
and an anchor point height of 0.15 meters for the second anchor point. This is the height of
the object SourcePallets to which we connect it on the left-hand side.
o For the LineOut we edited values in the dialog Edit 3D Properties > Appearance. We
entered a base height of 0.15 meters, which means that the left-hand side of the LineOut is
placed 15 centimeters above the floor. We then clicked Segments and entered 1 meter as
the Z timension so that the right-hand side connects smoothly to the Drain.
o When you run the simulation, you might want to run it with a low real-time factor to be able to
watch how the screwdriver actually screws the screws in.
While running the simulation, you’ll notice that the pallet is not located at the bottom of the Screwdriver
station, but at the top. Proceed as follows to fix this:
• Open the class of the Screwdriver in a new 3D window.
• Then, open the dialog Edit 3D Properties of the PartCarrierStation, change to the tab MU
Animation, and show the Default path.
• Select the path marker, i, e., the red wedge pointing downwards, hold down the Ctrl key, and
move it down with the down arrow key until it is located flush on the PartCarrierStation.
You’ll also notice that the screw is not attached to the tip of the arm. Proceed as follows to fix this:
• Open the class of the Screwdriver in a new 3D window.
• Open the dialog Edit 3D Properties of the Arm, change to the tab MU Animation, and visualize
the Default path.
• Select the path marker, hold down the Ctrl key, and move it down with the down arrow key
until it was located flush at the tip of the Arm.
You’ll finally notice that the wrong side of the screw is attached to the tip of the Screwdriver arm.
Proceed as follows to fix this:
• Open the class of the Screwdriver in a new 3D window.
• Open the dialog Edit 3D Properties of the Trestle, change to the tab MU Animation, and
visualize the Default path.
Run the simulation again. Now our Screwdriver station does exactly what we designed it to do.
This sample model demonstrates how to model a complex receiving department in which three
Sources produce three different parts. The different parts are then loaded onto pallets and moved to
a ParallelStation that stores them before a TransferStation loads them onto a truck that is produced
by a fourth Source.
We will demonstrate how to:
• Insert the Objects Required for Modeling the Source
First, we will insert the objects, which we need to model our receiving department, into a Frame. In
the second step, we are going to configure the individual objects.
• Create a new Frame in the Class Library of your simulation model. We named our Frame
MySourceTruckLoadedWithBricks.
• Insert three Sources at the left-hand side of the Frame. We use our own class, named MySource,
with a modified 3D graphic. We named our SourcesSourceGlassBricks, SourceBricksCarrier, and
SourceBricks. They will produce glass bricks, brick carriers, and normal bricks.
• Insert two AssemblyStations to the right of the Sources. We named them AssemblyGlassBricks
and AssemblyBricks. Each of them places 50 glass bricks or 50 normal bricks onto a pallet each.
• Insert a TransferStation, a short Track, and another Source. This Source, which we named
SourceTrucks, produces the trucks into which the commissioned pallets are loaded.
• Insert an Interface that connects our Receiving station to other objects in the simulation model.
As the Assembly station is connected to two stations, the order in which you connect
it with the predecessors is important. If the assembly process does not work as
expected, check the numbering of the predecessors by activating More View Options
> Show Predecessors on the General ribbon tab of the
Frame. Then, enter the correct the number of the predecessor into the text box Main
MU from predecessor of the Assembly station.
Now that we have inserted the objects we need to model our receiving department, we are going
to configure the individual stations.
First, we are going to configure the MUs:
• To create the MU representing the truck, duplicate the class .MUs.Transporter and renamed
it to Truck. We deleted its graphic and imported the JT file Truck.jt, which we received from a
colleague. Position the graphic in its 3D window as shown below. We changed its size to 6.3
by 2.2 by 1.6 meters.
• To create the MU representing the brick carrier, duplicate the class .MUs.Container and rename
it to BricksCarrier. We deleted its graphic and imported the JT file BricksCarrier.jt. We changed
its size to 1.1 by 1.1 by 0.15 meters and gave it a capacity of 50 parts (X-dimension of 5 times
Y-dimension of 10).
• To create the MU representing the normal brick and the glass brick, duplicate the class
.MUs.Entity twice. We renamed them to Brick and GlassBrick respectively. Both have a size of
0.2 by 0.1 by 0.05 meters.
For the bricks we are going to use automatically generated graphics instead of importing JT files.
o Open their class in a new 3D window and open the dialog Edit 3D Properties.
o Change to the Tab Transformation and activate the check box Scale automatically.
o For the GlassBrick, also activate Material active, select a blueish gray as the Diffuse color,
and select a transparency factor of 0.6 to make the glass brick semi-transparent.
Then, we are going to configure the other objects in our Receiving department.
o Start with the Sources producing the Brick, the GlassBrick, and the BricksCarrier. Select the
respective MU according to the name of the Source. We did not change any other settings.
Compare the example below.
Make sure that you use the absolute path for the MUs, denoted by an asterisk * at
the beginning of the path. The relative path starts with a tilde ~.
• Configure the Assembly stations to attach the MUs and to make the Main MU exit the station.
We also want them to load 50 parts, namely the bricks or glass bricks, onto the brick carrier. Click
Open next to Assembly table and enter 50 into the column Number.
As the Assembly station is connected to two stations, the order in which you connect
it with the predecessors is important. If the assembly process does not work as
expected, check the numbering of the predecessors by activating More View Options
> Show Predecessors on the General ribbon tab of the Frame. Then, enter the correct
the number of the predecessor into the text box Main MU from predecessor of the
Assembly station.
• Drag the ParallelProc onto the TransferStation to load parts and to use it as the part source. We
use the default settings of the ParallelProc.
Drag the Track onto the TransferStation to use it as the target station. Accept 0 is the sensor
position.
To make the Truck stop and wait for parts until it is fully loaded, select the check box Always
stop container on the tab Advanced Attributes.
Now we are ready to test our receiving station MySourceTruckLoadedWithBricks. Insert it into our
simulation model, connect it with a Track and a Drain, and run the simulation. You’ll notice that it
creates trucks that transport two types of carriers, one loaded with normal bricks and one loaded
with glass bricks each.
When the 3D Viewer places objects onto other objects, in our example bricks and glass bricks on the
brick carrier, it automatically distributes them evenly across the animation area of the brick carrier
according to their size and to the size and dimension of the brick carrier.
In our example the brick carrier can accommodate 50 bricks each of which is 20 centimeters long
and 10 centimeters wide. The brick carrier is 110 centimeters long and wide. According to its
x-dimension 5 bricks fit in a row side by side in the x-direction. According to its y-dimension 10
bricks fit in a row in the y-direction.
We used the default settings of the brick carrier/container, compare the figure below.
Truck Transporter
Proceed as follows:
• Change to the Class Library and click MUs > Truck with the right mouse button.
• Click the right mouse button in the window .MUs.Truck and select Edit 3D Properties > MU
Animation.
• You can now adjust the area settings under animation area so that the brick carriers are evenly
distributed across the loading space of the truck. The 3D Viewer calculates the animation area
of the object as soon as you click Apply in the dialog Edit 3D Properties. The window of our
partial model then also shows these changes.
Optimizing a Graphic
Optimizing the graphic, i.e., flattening the hierarchy of an object, deletes unnecessary information
from the object, allowing for faster rendering, and a quicker display of the object.
Whenever you import graphics, it is useful to optimize them. This is not because the graphics you
import are badly designed, but because they are typically designed for another kind of use in the
originating program. The engineer who designs a component, such as an engine, will naturally
include every detail of that engine in the graphic that he creates, because it is imperative to provide
these details for producing the engine.
For us as Plant Simulation 3D Viewer users these details of the engine are of no interest at all. Our
main concern is that the simulation runs fast and that the animation looks good and runs smoothly.
We therefore advise to optimize every graphic you import. Do this as soon as possible, but not
before you extracted all the structural information from the graphic that you need, compare Creating
an Animatable Object.
Before you can do this, you have to make an animatable object from the graphic, compare Make
Animatable Object.
As you cannot restore discarded data, only flatten the structure after you are done with
modeling the object! You will not detect any difference in the appearance of the object, as
the 3D Viewer only adjusts its structure for better performance.
Use this feature with caution, as too much optimizing might ruin your graphic/animatable
object.
To optimize a 3D graphic, click the animatable object, whose graphic you would like to optimize, in
the scene window, and click Optimize Selected Graphic in the Edit ribbon tab of the 3D Viewer.
Experiment with the settings described under Step 1: Prune tiny graphics, Step 2: Visibility filter,
and Step 3: Flatten structure.
The 3D Viewer show two characteristics of the graphic under graphic complexity, namely the
number of nodes and the number of polygons. The optimization strategies mainly affect the number
of nodes and the number of polygons.
Watch the effects of optimizing the hierarchy of the animatable object in the dialog Show 3D Graphic
Structure.
The 3D Viewer uses a set of points in space as paths for animating objects and extruding shapes.
• Animation paths describe the route an animated mobile object takes when it moves on objects
or through the scene. The cameras, through which you view the scene in a fly-through, also
use animation paths.
• Length-oriented Objects are objects with a shape built from extrusion segments and an
extrusion configuration. The length-oriented objects Track, TwoLaneTrack, Line and FootPath
in the standard library are length-oriented.
You can create and edit a path in the dialog 3D Properties on the Tab MU Animation, the Tab
Self Animation, or on the Tab Self Animation.
Go to Animation Paths
Go to Editing a Path
Animation Paths
Animation paths are a set of points in space that describe the route an animated mobile object takes
when it moves across the objects or through the scene.
The objects provide these animation paths:
• MU animation paths.
You can create and edit animation paths and the animation area, on which the parts are animated
under 3D Properties > Tab MU Animation on the Home ribbon tab.
The polycurve animation anchor points are the vertices of a curved object, i.e., a sequence
of curved and straight lines, on which MUs are animated, when they are transferred onto a
material flow object.
As opposed to 2D, you can define polycurve paths for all 3D objects.
The spline animation anchor points are the vertices of a spline curve.
You can create and edit paths on which the camera moves through the 3D scene in the Frame by
clicking 3D Properties > Tab Camera Animation in the Home ribbon tab.
The anchor points are the vertices of the line, polycurve, or spline in which the camera moves
through the scene.
The polycurve animation anchor points are the vertices of a curved path, i.e., a sequence of
curved and straight lines, on which the camera moves.
The spline animation anchor points are the vertices of a spline curve.
Go to Editing a Path
Back to Working with Paths
Editing a Path
Editing a Path
• Select the object and click 3D Properties on the Home ribbon tab.
• This opens the dialog 3D Properties. Click the Tab MU Animation and create a new animation
path or edit an existing animation path.
To work with animation paths on which the object itself is animated in the scene, do one of the
following:
• Select the object and click Edit 3D Properties on the Home ribbon tab.
• This opens the dialog 3D Properties. Click the Tab Self Animation and create a new animation
path or edit an existing animation path.
• Select the Frame, and click Edit 3D Properties on the Home ribbon tab.
• This opens the dialog 3D Properties. Click the Tab Camera Animation and create a new camera
animation path or edit an existing camera animation path.
You can:
• Create a Path.
Create a Path
When you create a new, initial path, you will follow these basic procedures.
• Open the dialog 3D Properties. Click the Tab MU Animation, on the Tab Self Animation, or on
the Tab Camera Animation depending on the path you want to create.
• Click Add.
• Select the type of path (Path type) you would like to create.
• Enter a unique name for the path, if you are creating an animation path.
When objects, such as the Store, have several defined locations for placing incoming mobile
objects, you can distribute them on the animation area on the tab MU Animation.
• Then, click OK to create the path you just defined. Initially this path consists of a single anchor
point located at the origin of the selected object.
• Extend and/or edit the new initial path by clicking 3D Properties > MU Animation/Self
Animation/Camera Animation > Edit > Path Anchor Points on the Homeribbon tab.
Compare Draw Straight and Curved Segments with a 90° Angle (Fixed Values)
When you edit a path in the scene window with the mouse, you will follow these basic procedures.
• Open the dialog 3D Properties. Click the Tab MU Animation, the Tab Self Animation, or the Tab
Camera Animation depending on the path you want to create.
• Select the name of the path you would like to edit and click Edit.
• To show the selected path in the scene window, click the cell Show under animation paths.
Then, the 3D Viewer show one or several graphics for the anchor points (node graphics),
connected by a line that symbolizes the path positions, in the scene. Note that you can display
several paths at once, but that only one path is active at any one time. Select any one of the
anchor points of the path to activate it.
The 3D Viewer also shows the grid whenever you display a path in the scene window. When you
hide the grid , it also hides all paths displayed at the moment.
• To add new anchor points to the path, click Extend and click the left mouse button at the location
where you would like to insert a new anchor point. Repeat this as often as you need, until the
path has the shape you want.
• To change the shape of the path, select an anchor point and manipulate it with the mouse and/or
use the settings by clicking 3D Properties > Tab Transformation on the Home ribbon tab.
• To rotate an anchor point, click it, hold down the left mouse button, and drag the mouse, and/or
click 3D Properties > Transformation.
When you rotate a anchor point describing an animation path, this also rotates any MU
moving along that path.
• To delete a part of the path, select an anchor point and press Delete. This removes the selected
anchor point from the path, thus modifying its shape.
• To hide all paths, click in the View ribbon tab in the 3D Viewer. This deletes all anchor
points and lines representing paths in the scene.
o To add a curved segment, hold down Ctrl, and click the left mouse button at the location
where you would like to insert a new anchor point.
o Repeat this as often as you need, until the path has the shape you want.
• Change the shape of a straight segment by selecting an anchor point and by dragging the mouse.
When you drag an anchor point in the X/Y-direction, the 3D Viewer also drags attached curved
segments (until the next straight segment follows) in both directions.
When you insert a Track, a TwoLaneTrack, a Line, or a FootPath with active Curve
mode in Plant Simulation2D, you have to select the corresponding 3D object in the 3D
Viewer and create an Curves path for it. Then, edit the path as described above.
To can insert vertical curve segments into polycurves with the mouse:
• Select the length-oriented object which you want to insert into the Frame. In our example we
insert a Line.
• Press and hold down the Up arrow in the keyboard to insert a curve pointing upwards in the Z
dimension. Click the Down arrow to insert a curve pointing downwards in the Z dimension.
• Enter the radius and the angle of the segment into the dialog Edit Parameter of Curve.
• Click the mouse into the scene to insert the segment. The result looks like this:
At times it may not be precise enough to Edit a Path with the Mouse. Then, you can enter exact
values into the dialog Path Anchor Points:
• Open the dialog 3D Properties. Select the animation path you would like to edit on the Tab MU
Animation, on the Tab Self Animation, or on the Tab Camera Animation.
• Select the animation path you would like to edit and click Edit.
• Select the anchor point you would like to edit and in the dialog Path Anchor Points and then
click the button Edit Values.
• Enter or select the new settings for the position and for the potation of this anchor point into the
dialog Edit Anchor Values.
• To add new anchor points to the end of the selected path, click Add. The list adds the settings of
the new anchor point you added to its bottom. Once you have added an anchor point, you can
manipulate its settings on the tabs to the right.
• To insert new anchor points the selected anchor point, click Insert Before.
• To delete contiguous anchor points, hold down Shift and click the first anchor point in the range
and then the last anchor point.
To delete non-contiguous anchor points, hold down Ctrl and click the anchor points you want to
delete one after the other.
• To move the selected anchor point up one position in the list, click Move Up.
• To move the selected anchor point down one position in the list, click Move Down.
• To duplicate the settings of the selected anchor point and to insert the duplicated anchor point
below the original, click Duplicate.
To create an animation path, which causes a circular rotation of an object, for example the movement
of the arm of a crane, by setting parameters for the rotation instead of by editing anchor points:
• Select the material flow object or the scene object and click Properties on the Home ribbon tab.
• To rotate the MUs that the selected object processes, click the Tab MU Animation.
To rotate the object itself, click the Tab Self Animation.
• Click Add. Enter a name for the rotation path into the dialog Create Rotation Path that opens.
Select the path type Rotation path (Lines).
o An End angle greater than the Start angle results in a clockwise rotation.
o An End angle smaller than the Start angle results in a counter-clockwise rotation.
• Enter the values for the Axis around which you want to rotate the MUs.
o Normally, you will use the Z-Axis (0,0,1) to rotate the object on the XY plane.
o You also can define the Y-Axis (0,1,0) to rotate the object on the XZ plane or the
• Enter the Center point of the rotation in the coordinate system of the selected object. If the center
is not the same as the start position, the rotated object moves on a circular arc and stops at a
different position than its starting point, except after a 360 degree rotation.
• Click Apply to compute the animation path. This path is the trace on which the animated object
moves. The movement on this path is the rotation.
• To test the rotation path you defined, select an object and start the test animation.
• If the rotation movement does not meet your expectations, open the dialog Create Rotation Path
again, and edit the parameters there. Then, click Apply and test the settings again until the
rotation meets your needs.
o Select the anchor point in the dialog in the dialog Path Anchor Points, and click Edit Values
to open the dialog Edit Anchor Points.
On the tab Time you can edit the Cycle time of every anchor point, which matches the rotation
steps.
After defining the animation path, you can test the settings you chose on the Animation tabs in the
group box Test path, and modify them, if the results do not meet your expectations. This way, you do
not have to run a simulation to test your settings.
• Select the test object, i.e., an MU whose graphic the 3D Viewer copies and uses as the test
object.
• Enter the Velocity with which the test object moves on the path.
• Select if the test object moves in the forward direction or if it moves Backwards.
The 3D Viewer automatically enters a negative Velocity, when you select Backwards.
The following topics describe how to create a visually pleasing and realistic looking model. You can:
• Insert Factory Walls and Cut Passageways Through Them
The model Factory 51, which you can open from the Start Page under Example Models, shows
these and other techniques exemplary.
• Set the settings for the walls. We selected the settings below:
Now we would like to cut a passageway through the wall between the SingleProc and the conveyor
so that we can prolongate the conveyor through the passageway.
To do so, proceed as follows:
• Click the mouse at the position in the factory wall into which you want to cut the passageway. We
clicked the position directly above the Tooltip.
• Press the + key on the keyboard until only the segment is selected which you want to cut.
• Delete the segment (the graphic) by pressing the Del key on the keyboard. Plant Simulation
then shows this message. Click Yes.
As we do not want the passageway to be open at the top, we add a lintel. To do so, proceed as follows:
• For the lintel we use a Cube. You could also use a textured plate or a plate though.
As we cannot change the thickness of the cube any more after we inserted it, we open the
Factory Wall Settings and note down the value of the thickness of the factory walls.
• Click the Cube and enter the settings below. The thickness of 0.3 meters of the factory walls
corresponds to the width of 0.3 meters of the cube. Click Create, drag the mouse pointer to the
position of the passageway at which you would like to insert the lintel and click the mouse button.
• Change to Planning View and place the lintel roughly with the arrow keys on the keyboard.
• As this is not accurate enough, click the lintel with the right mouse button and show its 3D
properties. Click in the text box X Position with the left mouse button and roll the mouse wheel
until the position of the lintel looks correct in this direction.
• Deactivate Planning View and adjust the Z Position of the lintel until it looks correct. Proceed as
you did for the Y Position.
• In the next step we just have to adapt the material/the color of the lintel so that it matches the
factory walls. Open the Factory Wall Settings. Click wall material and copy the material in
the dialog that is opened.
• Open the 3D properties of the lintel. Change to the tab Material and paste the copied material.
• Now we can prolongate the conveyor so that it goes through the passageway.
Sometimes you might want to show text and display boards in your model to make it visually pleasing
and to present information to the user.
• If you want to show static text that you do not need to change after creating it, you can insert
3D Text. You can also import a JT file, which you, for example, created in NX. We created the
lettering Tecnomatix Plant Simulation in the sample model Factory 51 like that.
• If you want to create a display board which you can edit after creating it, use the object Comment
.
To insert static text into your simulation model, click Text under Edit > Insert Shape.
• Type in the text that you want to show and select the settings in the dialog. Click Create.
• Drag the mouse to a position of your choice and click the left mouse button. This inserts the text
flat on the grid. As compared to the factory building it is much too small though.
• In the next step we adjust the size and the position of the lettering so that it matches the factory
building. Click the text with the right mouse button and select Edit 3D Properties.
o We selected a uniform scaling with a factor of 3.
o We moved it up on the Z axis until the lower border is located flat on the floor.
To show a display board, click the object Comment of the toolbar User Interface and insert it into
your model.
• Double-click the object and type in the text that you would like to show.
We typed in My factory in Crailsheim, Hohenlohe, Germany and selected the Font size > Extra
large.
• We want to show the display board perpendicular to the factory floor and above the upper
border of the hall though.
Click the display board with the right mouse button and select Edit 3D Properties.
A point cloud is a set of data points in three-dimensional space. These points are defined by their X-,
Y-, and Z-coordinates. You might use a point cloud to visualize your actual factory layout and you can
arrange your machines on the graphic to give it a realistic touch.
To import a point cloud into your simulation model:
• Click into the background of your simulation model and select Edit 3D Properties. Change to
the Tab Point Cloud.
• Click the button and select the point database file (*.pod) that you want to import. If the path
is relative, it refers to the folder in which your simulation model is located.
To remove the point cloud from the simulation model, delete its name from the text box.
Initially, your 3D window might only show small parts of the point cloud. When you start
rotating the view, the 3D Viewer show additional parts of the graphic.
• To show or hide the point cloud, click Show Point Clouds on the View ribbon tab.
• To adjust the position and the orientation of your point cloud, click into the background of the
Frame containing the point cloud and select Edit 3D Properties. Change to the tab Point Cloud
and modify its Position and its Rotation angle.
Be aware that for performance reasons Show Point Clouds is deactivated by default. For this
reason you will not see the point cloud when you reopen the model at a later point in time. Click
To view the scene “through the lens” of an object you can attach a camera to it. This camera then
moves along with the object through the scene during a simulation run. By turning or tilting the
camera, you can control the direction and the angle at which you look at the scene.
The 3D Viewer visualizes the camera with a viewer tool object as the icon of the camera. At present
the 3D Viewer provides three different cameras:
• The main camera through which you view the scene in normal view.
• The object camera, which you attach to a specific object and which moves with this object
through the model.
• The animation camera, which moves along an animation path you defined.
Once you have attached a camera or started a camera operation, you can toggle the object camera
or the animation camera and the main camera by clicking on the View ribbon tab of the 3D Viewer.
You can:
• Attach a Camera to an Object
To attach a camera, through the lens of which you look at the scene, to an object:
• Select a single object.
As soon as the object, with a camera attached to it, moves through the scene, the camera moves
along with it automatically.
Once the camera is attached, you see the scene through the lens of this camera.
To detach the camera, which you attached to an object, from it, click in the View ribbon tab of the
3D Viewer. The 3D Viewer thenreturns to normal view.
The 3D Viewer also detaches an object camera:
• When you delete the object the camera is attached to.
You have to define a camera animation path in the Tab Camera Animation of the
respective Frame.
• In the dialog Fly on Path of select the name of the path for the selected object or the root object
of the scene from the list Path name.
• Select Backwards of you want the camera to move backwards towards the starting point of the
animation path. Note that the 3D Viewer automatically enters a negative velocity into the text
box when you select the check box.
• To start the animation, click Play .The 3D Viewer now shows the scene through the lens of the
animation camera, which moves on the path you designated with a lens offset of (0, 0, 0.1).
• To pause the animation of the camera, independent of the simulation, click Pause .
• To stop the animation of the camera, independent of the simulation, click Stop .
At the end of the animation the viewer sets the main camera to the last point where the animation
camera was located and deletes the animation camera.
To test the camera animation path you defined, you can click the tab Test in the dialog Edit Path,
select an Animated graphic and start the test animation.
Compare Working with Paths
Back to Modeling a Fly Through
Recording a Video
Recording a Video
You can record a video of the crucial parts of your simulation model. This way, you can pass the
video on to anybody or publish it on the Intranet or the Internet, without the person viewing the
video having to install Plant Simulation in his computer. The recorder creates an AVI file that any
multimedia player can play.
The Video ribbon tab provides all tools for recording and playing the video.
Go to Set Up the Scene for Recording
Go to Selecting Video Settings
Go to Record the Video
Go to Play the Video
There are a number of items to keep in mind before you start recording the scene:
• Drag the scene window to a size that shows all you want to show to the viewer, but not more,
unnecessary information.
The size of the scene determines the size of the video, a large scene uses more processor time
and might take a long time to animate and creates a larger video files.
• Select the check box Record client area only in the dialog Video Settings to only record the
contents of the actual scene window. This not only reduces the physical size of the play back
window but also the size of the recorded file.
• Decide from which position and which angle you want to view and record the scene. Then,
rotate and zoom the scene accordingly before starting the simulation. Be aware that when you
manipulate the scene, the 3D Viewer might react sluggishly while recording.
After you prepared the scene, select settings for recording it. Click on the Video ribbon tab.
• Depending on what you want to show, you can enter a different number of frames per second as
the Playback rate.
When the Playback rate is twice the Recording rate the playback will be half as long.
• Select the check box Record client area only to only record the contents of the actual scene
window. This not only reduces the physical size of the play back window but also the size
of the recorded file.
• Enter the location and the name of the recorded AVI file into the text box. Instead, you can also
click Browse, select a location and enter a file name into the dialog Save As.
To prevent the 3D Viewer from overwriting the last AVI it recorded, rename it before
recording another video.
Selecting the correct codec for your purpose can be a difficult task. As with any kind of compression
you have to find the right trade-off level between file size and quality of the AVI. As a rule, you
will select MPEG-4 or DivX.
The dialog only shows the codecs installed on your computer. Plant Simulation adds
additional codecs, which you install on your computer to the dropdown list.
When selecting a video codec you have to take into consideration: the time it takes to encode the
video, how widely known and available the video codec is, and which compression ratios can be
achieved for an acceptable quality level.
Cinepak is a widely used AVI codec. It still provides really fast playback. Cinepak is the best codec to
use to insure ease of playback. Cinepak is based on Vector Quantization and Frame Differencing to
compress the video.
Other technologies, such as the Block Discrete Cosine Transform and Motion Compensation, achieve
superior compression, with smaller files for the same subjective visual quality.
Some codecs provide more or less refined configuration settings. Click the Help button in
their dialogs and consult the Help file for details about the settings you can choose.
To save your AVI file with 8 bit color or 16 bit color, select this.
Cinepak
Cinepak provides the fastest playback of compressed video files. While Intel IYUV provides similar
or slightly superior image quality for same compression, Indeo decompression is much more CPU
intensive than Cinepak.
Cinepak is asymmetric, i.e., it takes much longer to compress the video than it does to decompress
and display it.
Unlike other codecs, Cinepak handles video containing a lot of motion quite well. In more static video,
such as taking head shots, there is noticeable temporal aliasing, or pixel crawl.
Intel IYUV
Just like Cinepak Intel IYUV is an asymmetric codec, but it compresses the AVI faster.
Intel IYUV produces a sharper, more color correct, image with low motion video, while Cinepak
produces better results for video with a lot of motion.
Back to Selecting Video Settings
Be aware that the recorder records the contents of the currently active window. If
you click into another window during the recording session, or roll the mouse over a
button to display a tooltip, these will show up in your recorded video. This might ruin
your recorded video.
If you want to view the video after you recorded it, we recommend to stop the
simulation, as it uses a considerable amount of your computer’s resources.
After you have recorded the video, you can play it the way you recorded it. Or you can edit it with a
digital video application, such as Adobe Premiere, etc.
• To play the video, click on the Video ribbon tab.
• At present the 3D Viewer plays the video back in the Windows Media Player, not in the player you
select as the default player under MS Windows.
Reference Help
The Tecnomatix Plant Simulation reference help describes the built-in objects and the settings they
provide in detail.
• The Plant Simulation Program Window
• Fluid Objects
• Resource Objects
• Mobile Objects
• Tools
• SimTalk
Also consult
What’s New
Using HTML Help
The Step-by-Step Help
The 3D Viewer Reference Help
The Add-Ins Reference Help
Copyright © 2017 Siemens Product Lifecycle Management Software Inc. All rights reserved.
This documentation is proprietary to Siemens Product Lifecycle Management Software Inc.
This document contains proprietary information and is protected by copyright. No part of this
document may be reproduced, stored in a retrieval system, translated, transcribed, or transmitted, in
any form or by any means, without the prior explicit written consent of Siemens Product Lifecycle
Management Software Inc.
Information in this document is subject to change without notice.
Tecnomatix Plant Simulation shows the Ribbon Bar along the top of the program window. The ribbon
provides general commands on general tabs as well as functions pertaining to the object windows on
object-specific ribbon tabs.
• Method
• Method Debugger
• CardFile
• TableFile
• Icon Editor
You can also open the CardFile, the QueueFile, the StackFile, and the TableFile in the
foreground as a dialog window with the method openDialogBox.
To bring an open object window to the foreground, click the icon of the window in the window tab
bar. When you opened more windows than the program window can show at any one time, click
To bring an open object window to the foreground or to arrange the windows, you can also click the
Window Ribbon Taband select the name of the window.
You can minimize and maximize them and move them around within the Plant Simulation window.
When you maximize these windows, Plant Simulation adds the button combination Minimize,
Maximize, Close that is otherwise located in the title bar of the window, to the
Ribbon Bar.
You can close all object windowswith the function closeAllWindows.
You can also add links to the following opened object windows to the Favorites:
• Frame windows
• Method windows
• CardFile windows
• TableFile windows
• Windows of user-defined attributes of data type method, table, list, stack, and queue.
You can then quickly open the respective window by double-clicking its name in the favorites list.
Tecnomatix Plant Simulation provides the docking windows Class Library, Favorites, Toolbox,
and Console.
Docking windows always open in the foreground, on top of any other windows. You can undock a
docking window, drag it out of the Plant Simulation window, move it as a floating window within the
Plant Simulationwindow, and dock it to any of the sides of the Plant Simulationwindow.
Docking and Undocking Windows
To undock a docking window, right-click in the title bar of the window and select Floating on the
context menu.
To redock a floating window again, right-click the title bar of the window and select Docking.
Showing and Hiding Docking Windows
Instead of closing and reopening the Class Library, the Favorites, the Toolbox, and the Console, you
can hide them:
• Click to auto hide the window. When you then click in another window, Plant Simulation
hides the window until you move the mouse over the name of the window again. To deactivate
auto hide, click . Or
• Click the right mouse button in the title bar of the window and select Auto Hide.
Tecnomatix Plant Simulation provides dialog windows of the material flow objects, the mobile
objects, the resource objects, the information flow objects, and the user interface objects.
Dialog windows always open in the foreground as they expect input from the user. You cannot
minimize or maximize it. You can drag a dialog window outside of the Plant Simulation window and
move it around on the entire screen. To close all open dialog windows at once, click on the
Window ribbon tab.
Related Topics
Moving Docking Windows
Model language
Ribbon Bar
Ribbon Bar
The ribbon bar provides the:
• System Menu
• File Menu
The following objects provide their own ribbon tabs on the ribbon bar. Plant Simulation adds these
ribbon tabs when you open the window of the respective object. Note that the ribbon tabs for these
objects are bordered in different colors to better differentiate between them.
• The Frame provides the General Ribbon Tab, the Icons Ribbon Tab, and the Vector Graphics
Ribbon Tab.
When you Configure User-defined Ribbon Tabs, Plant Simulation adds a ribbon tab for this
user-defined ribbon tab to the ribbon.
• The Method provides the Edit Ribbon Tab and the Tools Ribbon Tab.
• The Icon Editor provides the Edit Ribbon Tab, the Animation Ribbon Tab, and the General
Ribbon Tab.
• The 3D Viewer provides the Edit Ribbon Tab, the View Ribbon Tab, and the Video Ribbon Tab.
You can also use keyboard keys to work with the ribbon.
• To show the available keys or key combinations, press the Alt key and release it. Plant Simulation
then shows the in little boxes over each of the available commands in the current view.
• Press the letter or the number, which is shown in the KeyTip for the command that you want to
execute. The letter is not case-sensitive, you can enter the lower-case letter, you do not have to
enter the upper-case letter.
• Depending on the letter that you pressed, the program might show additional KeyTips. In the
example below we first pressed the F key to open the File menu.
• Press letters or numbers until you have reached the letter or the number for the command that
you would like to use.
• Press the Alt key and release it to cancel the actions you are executing at the moment and
to hide the KeyTips.
System Menu
The system menu shows commands with which you can manipulate or close the program window.
The program displays the system menu in the language of Windows that is installed on
your computer.
Restore
The menu command Restore restores the Plant Simulation window to normal size.
Move
The menu command Move changes the window position of the Plant Simulation window on your
computer screen.
Size
The menu command Size changes the size of the Plant Simulation window on your computer screen.
Minimize
The menu command Minimize reduces the size of the Plant Simulation window to an icon in the
task bar.
Maximize
The menu command Maximize enlarges the size of the Plant Simulation window to fill the entire
computer screen.
Close
The menu command Close closes the Plant Simulation window and exits the program.
Contents —
Index —
You can add commands to the Quick Access Toolbar to suit your modeling needs by clicking
Customize Quick Access Toolbar > More Commands.
Plant Simulation enters the customized settings of the to the registry key
HKEY_CURRENT_USER > Software> Tecnomatix> Tecnomatix Plant Simulation 13.1
> WorkspaceENU. When you delete this key, your customized settings will be deleted as
well.
Close Model
The command Close Model closes the current model and prompts you to save it.
Click Cancel to continue working on your model. Click Yes to save it, click No to close the model
without saving it.
When you defined a Method with the name onCloseModel in the folder basis of your
model, then this method will be executed when you close the model instead of actually
closing the model. This Method has to declare a boolean parameter. When you exit Plant
Simulation, the parameter has the value true, when you close the model, the parameter
has the value false. When you actually want to close the model, you have to explicitly
program that in the onCloseModel method by calling the function closeModel. Note that
the onCloseModel method located in the Basis folder will not be called when you close the
model via information flow, i.e., with the method closeModel.
When the model is actually closed (either because the onCloseModel method in the Basis folder
called the method closeModel, or because no onCloseModel method exists in the Basis folder), then
all other existing onCloseModel method classes in the Class Library are called. Within these methods
you can executed clean-up tasks, for example delete temporary files.
Related Topics
closeModel
exitApplication
Save Model
The command Save Model saves the simulation model to disk. You can save models in any state,
i.e., even with suspended methods or while you are debugging a Method.
Related Topics
saveModel
selectFileForSave
Save preview
Save Model As
Save Model As
The command Save Model As saves the active simulation model with a new name. It opens the
dialog Save As. Then, select the drive, and the file type, and enter a new name for the model file.
Plant Simulation saves the data of the 2D and the 3D part of the model to a file with the extension
.spp. Thus you cannot detect if the model file contains 2D data only or if it also contains 3D data.
If you save a model with a corresponding 3D part, we recommend to save a preview of the active
3D window. This way you can easily detect in the dialog Open, if the model has a 3D part and
which model this is, when you open a model.
Related Topics
Save preview
selectFileForSave
Save preview
• To save a snapshot of the active 3D viewer window, when you are working with a 3D Viewer
model.
Once you start the 3D Viewer, saving the Plant Simulation2D model also saves the 3D part of
the model to the same *.spp file. As you then cannot tell which Plant Simulation 2D model also
contains a 3D part, we recommend to select the check box Save Preview in the dialog Save As,
to save a snapshot of the active 3D viewer window. Plant Simulation also shows this graphic,
when you open the model again, enabling you to see, which model has a corresponding 3D part.
Plant Simulation shows the graphic in the dialog Open, when you select the command Open Model
and click in the dialog that opens to show the preview window.
By default the function Customize Quick Access Toolbar provides these commands:
Command Method
Contents —
Index —
More Commands —
If you do not want to show one of the default buttons on the Quick Access Toolbar, click it. This
grays this command out again until you click it again in the list. An active command shows the
check mark to the left.
Plant Simulation enters the customized settings of the Quick Access Toolbar to the
registry key HKEY_CURRENT_USER > Software > Tecnomatix > Tecnomatix Plant
Simulation 14.0 > WorkspaceENU. When you delete this key, your customized settings
will be deleted.
More Commands
The command More Commands opens a dialog allowing you to customize the Quick Access
Toolbar and the Ribbon by adding or removing commands from them.
To customize the Quick Access Toolbar, click it in the left window pane.
• Select the category from which you want to add commands to the Quick Access Toolbar from
the drop-down list Choose commands from.
• Select the command you want to add from the list Commands and click Add.
• Click the Move Up or Move Down button to move the command up or down in the
list on the right hand side.
• To reset the to the Quick Access Toolbar default settings, click Reset.
• To show the Quick Access Toolbar below the ribbon, select Show Quick Access Toolbar
below the Ribbon Bar.
• To customize keyboard shortcuts, click Customize and customize the settings according to
your modeling needs.
You can customize the Ribbon by adding your own tabs or groups to the ribbon bar. To do so, click
Customize Ribbon in the left window pane.
The command Show Below the Ribbon places the Quick Access Toolbarbelow the Ribbon in
the Plant Simulation program window.
When you activate Show Below the Ribbon, the label of the command changes to Show Above
the Ribbon.
To show the ribbon bar again, click the button or select the command again.
File Menu
File Menu
The File Menu provides these commands:
New Model —
modelFile
Open Model
selectFileForOpen
closeModel
Close Model Lists:
closeDialog
Teamcenter
Open from Teamcenter
Add to Teamcenter
—
Check In
Check Out
Cancel Checkout
Compare Models —
Share
Send Model in E-mail —
Pack and Go
Options
Properties
Model History
Encrypt Model File
—
Encrypt Methods
Restrict Permission
Random Number Seed Values
Borrow Licenses
Model Settings —
Preferences —
Help
Tecnomatix Community
—
About Tecnomatix Plant
Simulation
Exit —
Recent Files — —
Search —
The commands New and Open are only active in the Plant Simulation window, when no simulation
model is open at the moment.
New Model
The command New Model opens the items required for creating your simulation model:
• The Class Library that shows the built-in objects in a hierarchical structure.
• The Toolbox that shows the icons of the built-in objects grouped by function.
• The Frame in the folder Models in which you create the actual simulation model.
• When you select New for the first time, Plant Simulation opens the dialog Manage Class Library.
Select the objects and libraries, which you need for creating the current and future simulation models.
If you want Plant Simulation to always show this dialog, when you open a new model, select the
check box. Then you can configure each simulation model to your liking. If you want to use the same
settings for all new simulation models, clear the check box.
If you want Plant Simulation to apply the settings you selected in the dialog to all new models, which
you create hereafter, click .
Instead, you can also click Create New Model on the Start Page.
Open Model
Open Model
The command Open Model opens the dialog Open. Select drive and folder from the drop-down lists
and enter or select the name of the model file you would like to open. Plant Simulation closes the
open model file
Instead, you can also click Open Model on the Start Page.
In very rare cases your model might crash while opening it. If the model has a 3D
part, you can try to open it without the 3D part by holding down the key combination
Shift-right+Ctrl-right when you select the object. If the model still crashes, you can
hold down Ctrl-right+Alt Gr when you select the model to suppress opening call chains
and suspended methods.
Related Topics
modelFile
selectFileForOpen
Save preview
Teamcenter
Teamcenter
• Add to Teamcenter
• Check In
• Check Out
• Cancel Checkout
Related Topic
Teamcenter Interface
The command Open from Teamcenter opens a model from Teamcenter which you saved to the
Teamcenter database.
Enter your user name, your password, and the server URL for logging on to Teamcenter.
The connection string that you enter depends on your Teamcenter provider, for example
the IT department of the customer. Consult your Teamcenter provider for more information.
Activate Active Workspace if you want to use the Active Workspace-Browser. Type in the Server
URL of the Active Workspace-Browser.
The connection string that you enter depends on your Teamcenter provider, for example
the IT department of the customer. Consult your Teamcenter provider for more information.
Add to Teamcenter
The command Add to Teamcenter adds the model to the Teamcenter database.
Enter your user name, your password, and the server URL for logging on to Teamcenter
The connection string that you enter depends on your Teamcenter provider, for example
the IT department of the customer. Consult your Teamcenter provider for more information.
Activate Active Workspace if you want to use the Active Workspace-Browser. Type in the Server
URL of the Active Workspace-Browser.
The connection string that you enter depends on your Teamcenter provider, for example
the IT department of the customer. Consult your Teamcenter provider for more information.
Related Topic
Teamcenter Interface
Check In
The command Check In saves the checked-out model to the Teamcenter database and checks it in.
Enter your user name, your password, and the server URL for logging on to Teamcenter
Related Topic
Teamcenter Interface
Check Out
The command Check Out checks the model out of the Teamcenter database.
Enter your user name, your password, and the server URL for logging on to Teamcenter.
Related Topic
Teamcenter Interface
Cancel Checkout
The command Teamcenter undoes checking out the model from the Teamcenter database. Your
changes to the model will be discarded and not be saved.
Enter your user name, your password, and the server URL for logging on to Teamcenter.
Related Topic
Teamcenter Interface
Compare Models
The command Compare Model compares the currently loaded simulation model with another
simulation model on your computer’s hard drive and shows the differences between the two models.
• To compare the current model with another model, select Compare with.
• After comparing the models Plant Simulation shows the paths and the file names, and the version
of the compared model files in the window Model Comparison Results.
It also shows the folders, the Frames, and the objects which exist in both models in a structured
view just like the Class Librarydoes.
With the commands on the context menu of the structure you can navigate and work with the objects.
Open the dialog of the selected is only active when the object
Open
object exists in the current model
To show differing attributes of an object in the current model and in the compared model in the list
pane to the right, select that object.
To compare differing source code of methods with the same name in the current model with the
source code in the compared model, click the name of the method in the structure. Then, double-click
the attribute Program. The compare program then creates two temporary files and compares the
source code.
If you installed one of the compare tools Beyond Compare or WinMerge on your computer, Plant
Simulation uses the installed program. If you use another compare tool, you have to set this
by creating a String Value (REG_SZ) with the name CompareToolPath within the registry key
HKEY_CURRENT_USER\SOFTWARE\Tecnomatix\Tecnomatix Plant Simulation and enter the
file path to the compare tool into this string value.
If need be, you can merge the source code of the compared method into the current method in the
compare application and apply and save it to the source code of your method.
To compare differing comment text, which you entered into objects of type Comment, double-click
the attribute Cont. Note that you cannot merge changes though!
You can also start Plant Simulation, load the model designated by file 1 and compare it with the
model designated by file 2 with the start option -compare file 2 file 1. As a rule this only makes
sense for automated use in source code version control tools.
Share
Share
• Pack and Go
The command Send Model in E-mail sends the current model as an e-mail attachment.
The command opens an e-mail in the default mail application on your computer and attaches the
current model to it. Plant Simulation always attaches the saved model file. For this reason it first asks
if you want to save the current modeling state.
Pack and Go
The command Pack and Go starts the application Pack and Go. You can use it to pack and send a
Plant Simulation model to somebody, who does not have Plant Simulation installed on his computer.
Pack and Go takes all files needed for starting the selected simulation model with a Plant Simulation
Viewer License, packs the files, and saves them as a self-extracting executable. You can then send
this packed model to somebody else, who can open the model by simply double-clicking it, compare
Packing a Model and Sending it to Another User.
Options
Options
• Properties
• Model History
• Encrypt Methods
• Decrypt Methods
• Restrict Permission
• Borrow Licenses
Properties
The command Properties opens the dialog Properties. Enter text into the text boxes, which MS
Windows shows, when you right-click the file in the Windows Explorer and select Properties >
Summary on the context menu that opens.
You can use the expressions you enter when searching for the file using Start > Search programs
and files.
Title
Enter a title for your simulation model file. Note that the title does not have to be the same as the
file name.
Subject
Enter the subject of the simulation model. Use the subject to group files that belong together. This
allows you to search for all files covering a certain subject.
Author
Enter the name of the person who created the simulation model.
Keywords
Enter a keyword or keywords describing the simulation model. You can use the keyword when
searching for the file.
Comments
Enter any kind of comment you deem helpful for yourself or any other user of the simulation model.
You can use the comment when searching for the file.
Model History
The command Model History shows the comment you entered, when you saved your simulation
model.
Select settings under File > Model Settings/Preferences > General > Model saving history.
The command Encrypt Model File encrypts the simulation model so that it can only be opened
when you enter the correct password.
It opens the dialog Encrypt Model File. Enter a password into the text boxes next to Password and
Confirm password. The password enables you to decrypt the model file later on. After clicking OK,
Plant Simulation encrypts the model file the next time you save your model. You, or a colleague, can
only open the model file again if you enter the correct password.
The password for encrypting and for decrypting the model is valid and active during the
entire Plant Simulation session. Thus you do not have to reenter the password after you
close a password-protected model and then open another model that is encrypted with
the same password. If you exit Plant Simulation though and restart it, you have to enter
the password again.
If you forget the password, you will lose your simulation model for good because there is
now way to restore a forgotten password.
Keep in mind that passwords are case-sensitive.
Encrypt Methods
The command Encrypt Methods encrypts the contents of all methods, except of those contained
in the Class Library. It encrypts all Methods except for the prototype Method in the folder
InformationFlow. It also encrypts all user-defined attributes of data type method, which are located
within the built-in objects in a new model, such as the Callback method of the built-in prototype
of the object Dialog.
The command opens the dialog Encrypt Methods. Enter a password into the text boxes next to
Password and Confirm password. The password enables you to decrypt the contents of methods
later on. After clicking OK, you cannot access the source code of any methods not located in the
Class Library any more.
To encrypt the source code of a single method, click the Tools ribbon tab and selectEncrypt
Methodin the method editorof that method.
Related Topic
Decrypt Methods
Decrypt Methods
The command Decrypt Methods decrypts the contents of the methods in your simulation model.
Enter the password, which you used to encrypt the methods, into the dialog Decrypt Methods.
To decrypt the source code of a method which you encrypted by clicking Encrypt Method
on the Tools ribbon tab, click Decrypt Method in the method editor of that method.
Related Topic
Encrypt Methods
Restrict Permission
The command Restrict Permission restricts the license type with which another user can open
the simulation model. This way you can restrict or prevent the other person from changing the
simulation model.
• Select the license type with which the model can be opened by another user. The default setting
is unrestricted.
• Enter the password to restrict access to the model into the text box Password. The other user
has to enter this password when opening the model.
• Enter the password again into the text box Confirm password.
If you want to undo the permission restriction at a later point in time, open the model with a
Professional license. This opens a message box telling you that the license will be restricted.
Hold down the Shift key and close the message box by clicking OK. This opens a dialog into which
you can enter the password for removing the restriction.
The command Random Number Seed Values opens the seed values table. It contains the
seed values of the random number streams, which only apply to the Distribution Functions, such
as z_uniform, z_normal, etc.
The call z_uniform(3,1,10), for example, generates uniformly distributed numbers between 1 and
10, using the random number stream 3. You can add more random number streams or you can
edit the streams on the table.
The table lists the random number streams in consecutive order. If you do not enter different
numbers, each random number stream uses its number as the seed value.
Example: You already used five random number streams, and then decide to use stream 1000.
Then, Plant Simulation creates the missing 995 random number streams.
Each of the material flow objects automatically uses a random number stream of its own.
You can set that random number stream with the attribute RandomSeed.
Plant Simulation ensures that the random number streams of objects are initialized differently than
random number streams for distribution functions. Even if you use the same number for the attribute
RandomSeedand in the random number seed values table, Plant Simulation creates other random
numbers for this object.
If you would like to execute your simulation model several times and if you would like to
use different random numbers, you only have to change the Random Numbers Variant of
the EventController.
Related Topics
getSeedTable RandomSeed
Borrow Licenses
The command Borrow Licenses borrows licenses which are available from a license server. It
opens the dialog Borrow Licenses.
Borrowing a license means that you can check out floating or named-user licenses from a license
server to a local computer, for example a notebook, for a certain period of time. The checked-out
licenses will then still be available on the local computer after disconnecting it from your computer
network.
A borrowed license is borrowed from a license server computer via a special checkout process
and is later used to run Plant Simulation on a client computer that is no longer connected to the
license server.
• Select the expiration date at which the borrowed license will automatically be returned to the
license server. Then this license will be available for all users again and will no longer be
available on the local computer.
• Select the base license you would like to borrow. Note that you can only borrow one license
at a time.
• Select one or more of the listed other licenses you would like to borrow. The expression in
parenthesis starting with TN designates the product number of the respective feature.
After you activated license borrowing, all licenses are borrowed, which will be used in your further
work with Plant Simulation. Then these licenses are available on the local computer without requiring
a connection with the license server.
When you select the menu command Borrow Licenses while licenses are borrowed, Plant
Simulation asks if you would like to return the borrowed licenses to the license server early, that is,
before the borrowing period expires.
This command is only active if you did not obtain a license yet, i.e., before opening the first
model. If you opened a model, you have to exit Plant Simulation and restart it before you
can borrow licenses. It does not suffice to just close the model.
Related Topics
Tab License
Licensing Plant Simulation
Model Settings
Model Settings
The command Model Settings opens the dialog Model Settings in which you can select the settings
for the currently open simulation model. Plant Simulation saves theses settings in the mode file.
Click the tabs to access the respective set of features.
The Preferences set general settings, which apply to new simulation models!
Related Topics
General Units
2D 3D
General
General
On the tab General you can select settings pertaining to the model.
Related Topics
Visualization
Model language
Select the language of the currently open simulation model. Plant Simulation saves this setting
to the model file.
When you create a new simulation model, the model language determines:
• The names of folders and objects, such as MaterialFlow and SingleProc for English or
Materialfluss and Einzelstation for German.
• The return value of the attributes that correspond to the entries of the drop-down lists, for example
SingleProc.RecoveryTimeMode. When you query such an attribute in SimTalk, Plant Simulation
returns the value in English, except when the model language is German; in the latter case
Plant Simulation returns the value in German. For the example SingleProc.RecoveryTimeMode
Plant Simulation returns "Wenn Teil eintritt" when the model language is German, "When
part enters" for all other model languages.
• The contents of the window Show Attributes and Methods. When the model language is
German, the window lists the German names of the attributes and methods. For all other model
languages the window lists the names in English
• The names, which the feature Auto Complete in the method editor suggests. When the model
language is German, the method editor suggests the German names of attributes and methods.
For all other model languages it suggests the English names.
When you change the model language, the user interface language of Plant Simulation
will not be changed. The user interface language of Plant Simulation is determined by the
operating system of your computer. You can change the user interface language of Plant
Simulation with the command line argument -UILanguage, compare Entering Start Options.
SimTalk
language
userInterfaceLanguage
yyyy/mm/dd 12 hour
yyyy/mm/dd 24 hour
dd.mm.yyyy 24 hour
• With comment opens a comment window, each time when you save the model. Enter your
comment here.
When you select Without comment or With comment Plant Simulation adds a row to the dialog
Model Saving History each time you save the model.
When the model crashes, Plant Simulation adds a description of the problem to the dialog instead
of a comment. This helps our software engineers detect what caused the crash.
• None does not save the history of how you saved your model.
To view the comment you entered, select File > Options > Model History.
• When you connect Frames, the positions of exit and entrance Interface objects have to be
close to each other.
• When you connect objects, the positions of the exits and the entrances of the objects have
to be close to each other.
SimTalk:
connectAutomatically
Connector positioning
Select on which side of the object the program places the starting point or the end point of Connectors:
• Fixed side places the starting point of the Connector at the exit of the object and the end point
at its entrance.
• Angle-dependent takes the angle between the objects into account when determining the starting
point or the end point of the Connector.
Visualization
• In 2D and in 3D. This creates the model consisting of a 2D part and a 3D part.
• Only in 3D. This creates the model consisting only of the 3D part.
When you created the model in 2D only and need to create its 3D part at a later point in time, you
The check box Access to the computer is prohibited denies the current model to access your
computer. This is the standard setting.
Clear the check box to allow the model access to your computer.
For models, which you created in previous versions of the program, access to the computer
is prohibited. If these models need access to the computer and you trust them, you then
have to permit these models access to your computer in the model settings.
Plant Simulation generates a trust ID for each and every user. Models, which you save, are signed
with this ID. If you now load a model, which permits access to the computer and when this model is
not signed with your ID, Plant Simulation shows this warning message which allows you to trust this
model and permit it to access your computer.
If you do not activate the check box Permit access to the computer in the message dialog above,
the model is denied access to the computer. You can permit access to the computer anytime under
File > Model Settings > General > Security.
Reading files in principle is not dangerous, for as long as a model cannot transmit data, it cannot be
abused for spying on your computer. In addition it is always permitted that a model creates a new file
in the model folder and stores it there. Overwriting or deleting existing files is only permitted when
Access to the computer is permitted is deactivated.
What you need to know about prohibiting access to the computer
Note the following when permitting or prohibiting a model or a library to access your computer:
• When you open a model, which was saved by another user or which was saved in a previous
version of Plant Simulation, this model is not considered to be trustworthy and is only permitted
assess to the computer when you explicitly permit it.
• When you save a model, the resulting model is considered trustworthy when you open it again
without having changed it.
• When Plant Simulation loads a library, which requires access to the computer, into a model
without permitted access, it shows a message allowing you to permit access.
• When the model, into which the library is loaded, has access to the computer, the permission
will be revoked when interactively confirming loading of the model and each and every access
to the computer will from then on prohibited.
• When you load a non trustworthy object, which you yourself did not save, in a model, Plant
Simulation shows a message warning you that this object might be a safety risk, and you can
refuse to add it to the Class Library.
• If you entered the command line argument -TrustModels or the COM method SetTrustModels,
Plant Simulation does not show any messages when you load a non-trustworthy model or object.
Only accept URLs with the protocols http, https, file, UNC paths, and normal paths to the file
system.
Generally do not accept links to executable files for paths to the file system. Plant Simulation
considers files whose file extension is listed in the environment variable PATH_EXT as executable
files.
Only accept for paths, that lead to files, only those paths that point to the model folder or a
sub-folder of the model folder.
• The functions initDDE, loadLibrary, sendSMTPMail, setEnv, startExtProc, and system are not
executed and Plant Simulation shows an error message.
• All objects which allow to save files to the computer via SimTalk can only save files to the model
folder or its sub-folders.
• All objects which can access external systems, data bases or the ODBC interface via a login
cannot do this via SimTalk.
• The SQLite interface can still work with the data base in memory. It cannot save the data base or
create it in the file system.
• The FileInterface can only change files in the model folder as these are automatically opened for
reading. Write functions of the FileInterface always return false. In addition the FileInterface can
only delete files in the model folder and its sub-folders.
• The FileLink cannot open the embedded files in the associated application with a double-click.
The same applies for the method openFile.
• The ActiveX interface and die Socket interface prevent access via SimTalk.
SimTalk
isComputerAccessPermitted
Related Topics
Entering Start Options, -TrustModel
Make Library
Edit Library Information
Access to the computer is prohibited
getLibraryInfo
Modeling
2D
On the tab Modeling you can select the default settings that determine how a Frame in the current
model shows the objects which you insert into it.
You can override these settings for each individual Frame on the General Ribbon Tab >
More View Options. The Modeling settings you select here are saved to your model file.
Related Topics
To show the Names of the objects below their icons in a Frame, select this.
On Off
To show or hide them, you can also click the button Names on the General ribbon tab.
SimTalk
ShowObjectNames
Show MU names
To show the names of the parts (MUs) in your simulation model, select this. This only works, when
you also select Show object names.
This prevents your simulation model from looking cluttered.
On Off
To show or hide them, you can also click the button Options > Show MU Names on the General
ribbon tab.
To show the Labels of the objects below their icons in a Frame, select this. When you also select
Show object names, it shows them below the name of the object.
On Off
To show or hide them, you can also click the button Options > Show Object Labels on the
Generalribbon tab.
SimTalk
ShowObjectLabels
Show predecessors
To show the number of an incoming connection for each material flow connection in the Frame
window, select this. Plant Simulation only shows the predecessors in the Framewindow when you
also select Show connections.
The predecessor is the object that is connected to the selected object with a Connector and that
precedes it in the sequence of stations in the simulation model.
For the first connection from another object to the current object, the Connector shows >1, denoting
that this is the first predecessor. If the object has more than one predecessor, the program numbers
the predecessors in the order you connected them, >2 for the second, >3 for the third, etc.
On Off
To show or hide them, you can also click the button Options > Show Predecessors on the General
ribbon tab.
SimTalk
succInterface
Show successors
To show the number of an outgoing connection for each material flow connection, select this. The
program only shows the successors in the Frame window when you also select Show connections.
The successor is the object that is connected to the selected object with a Connector and that
succeeds it in the sequence of stations in the model.
For the first connection from the current object to another object, the Connector shows 1>, denoting
that this is the first successor. If the object has more than one successor, the program numbers the
successors in the order you connected them, 2> for the second, 3> for the third, etc.
On Off
To show or hide them, you can also click the button Options > Show Successors on the General
ribbon tab.
SimTalk
succInterface
To show the display panels, which you defined for the objects, in the Frame, select this.
On Off
To show or hide them, you can also click the button Options > Show Display Panels on the
General ribbon tab.
SimTalk
ShowDisplayPanels
Show connections
To show connections, i.e., the Connectors between objects in the Frame, select this. The program
shows the direction of the connection with an arrow head in the middle of the Connector.
The commands Show predecessors and Show successors only work, when you also select Show
connections.
On Off
To show or hide them, you can also click the button Connections on the General ribbon tab.
Show grid
To show the grid in the Frames of an open model, select this. This feature is useful for automatically
aligning objects while you insert them. Enter the spacing of the grid intervals on the x-axis and the y-
axis into the text boxes below Frame grid spacing.
You might want to select Show object borders as well.
When the Grid is active, the program places the objects which you insert onto grid points. You can
then move the object by grid units only. The reference point of the icon of the object determines
where Plant Simulation places the object on the grid point. By default, the reference point of a
material flow object is located in the center of the icon. When you place an object, Plant Simulation
places the reference point onto the grid point nearest to the mouse pointer. You can move the
reference point to any position of your choice in the Icon Editor.
Selecting Show grid after you placed objects has no effect on the alignment of the objects which you
already placed. They remain at the position at which you inserted them.
To align the objects which you already inserted, click Align to Grid on the Icons ribbon tab of the
Frame.
On Off
To show or hide them, you can also click the button Grid on the General ribbon tab.
To show the borders around the icons of the objects, which you inserted into the Frame, select this.
This way you can see the full Set Icon Size of the icon.
On Off
To show or hide them, you can also click the button Options > Show Object Borders on the
General ribbon tab.
Show comments
To show objects of type Comment, which you inserted into your simulation model, select this.
To show or hide them, you can also click the button Comments on the General ribbon tab.
On Off
To be able to select an object that moves under the transparent area of the icon of an object in
front of it, select this.
Off On
Here you cannot select the ParallelProc Here you can select the ParallelProc because
because the transparent area of the SingleProc, Plant Simulation ignores the transparent area
shown in gray, is located in front of it. of the SingleProc.
Enter the distance between the individual grid points from each other on the x-axis, i.e., the horizontal
axis of the Frame.
Enter the distance between the individual grid points from each other on the y-axis, i.e., the vertical
axis of the Frame.
The grid points are the points at which the imaginary grid lines intersect.
Simulation
Simulation
On the tab Simulation you can select settings that determine how Plant Simulation executes the
simulation runs. Complex simulation models will contain a large number of Method objects, which
themselves may call other methods. Incorrect modeling may cause a method to be called repeatedly
by itself during the simulation run, either directly or indirectly through other methods. This is called an
endless recursion. With each call, Plant Simulation takes up more RAM, until it used up all available
memory and terminates the simulation run.
Plant Simulation provides several ways for detecting and preventing this and related problems.
Related Topics
When Plant Simulation exceeds the maximum depth of calls, the simulation stops and the Debugger
opens. Increase the number of the maximum depth of calls and continue or correct programming
errors contained in the code, if any. To continue, hold down the Ctrl key and double-click the selected
line containing the error in the Debugger.
SimTalk
setMaxDepthOfCalls
With the method callEvery, you can create a list of methods yourself. A modeling flaw may cause
the same callEvery method to be called repeatedly during the simulation, thus taking up more and
more memory and finally terminating the simulation. By limiting the number of call chains, you can
detect and correct the modeling error.
When the Maximum number of call chains reaches the value you entered, the simulation stops
and Plant Simulation shows an error message. Now you can increase the maximum number of call
chains and continue or you can correct the faulty source code. To do so, hold down the Ctrl key and
double-click the selected line containing the error in the Debugger.
SimTalk
setMaxNumberOfCallChains
newCallChain
When Plant Simulationreaches the number you set, it will not suspend any additional methods and
displays an error message. You can then either increase the Maximum number of suspended
methods by entering a greater number into this text box, and continue your simulation run or stop
the simulation and fix the modeling error. To do so, hold down the Ctrl key and double-click the
selected line containing the error in the Debugger.
SimTalk
setMaxSuspendedMethods
Related Topics
The Waituntil-Statement and the Stopuntil-Statement
Interrupting the Execution of Methods with Wait
You can enter a number between 1 and 32000. Plant Simulation keeps track of values outside of
the upper and lower bounds which you enter to prevent values outside this range. For a normal
distribution it may happen that Plant Simulation draws large values. When the bounds are close
together, this may result in many values located outside of the range. This way Plant Simulation has
to draw a large number of samples before a valid value is available, which may take up a lot of time.
SimTalk
setMaxNumberOfSamples
• Plant Simulation considers two values to be about equal, when the difference between the two
values is less than the value you enter for epsilon.
• Plant Simulation considers two values to not be about equal, when the difference between the
two values is greater than the value you enter for epsilon.
SimTalk
setEpsilon
getEpsilon
Frame rate
Enter how often per second the program refreshes the graphics in your simulation model. You
can enter a number between 1 and 100. Depending on your model a lower number may lead to a
higher simulation speed. A higher number results in a smooth animation, which may decrease
the simulation speed though.
SimTalk:
setAnimationRefreshRate
Related Topic:
updateGUI
Select how often Plant Simulation refreshes the values of the display panels in your simulation
model. You can select a fraction of the frame rate. Plant Simulation shows to how many frames
per second the fraction corresponds.
Units
Units
On the tab Units you can select the units for mass, currency, speed, acceleration, and length.
These settings only affect how Plant Simulation shows values in lists, tables, global variables, and in
the window of the Console when values are to be shown in the user interface.
Internally Plant Simulation uses SI (Standard International) units ( kg, m/s, m/s2, m) for all physical
values, regardless of what you selected on the Units ribbon tab. This has two visible effects when
writing source code:
• When you assign a constant value to a variable or an attribute of an object, Plant Simulation
interprets this value in the corresponding SI unit. For example, the statement Line.Length := 3.4
means that Plant Simulation assigns 3.4 meters independent of the selected Lengthunit.
• When you assign a physical data type to a value of data type real, you will receive the value in SI
units. This also applies when you use physical units in computations with a result of data type real.
Related Topics
Mass Length
Acceleration
Mass
Select the unit for the mass. Plant Simulation uses kilograms (kg) as the unit within methods. When
you change the unit while modeling, it converts all values, which you already entered into objects,
to the new unit.
Kilogram kg 1.0kg
Gram g 0.001kg
Ton t 1000.0kg
Ounce oz 0.02834952kg
SimTalk
getUnit
Currency
Enter or select the unit for the currency. When you change the currency unit while modeling, Plant
Simulation only changes to the new currency symbol, but does not convert the actual values you
entered originally!
Unit Symbol
US Dollar $
Euro €
British Pound £
Japanese Yen ¥
SimTalk
getUnit
Speed
Select the unit for the speed. When you assign a speed in a method, Plant Simulation uses m/s as
unit. When you change the unit while modeling, it converts all values, which you already entered
into objects, to the new unit.
SimTalk
getUnit
Acceleration
Select the unit for the acceleration. The acceleration only applies to the length-oriented object Line
and to the Transporter.
Unit Symbol
SimTalk
getUnit
Length
Select the unit for the length. Plant Simulation uses m (meters) as unit within methods. When you
change the unit while modeling, it converts all values, which you already entered into objects, to
the new unit! This may cause rounding errors.
Kilometer km 1000.0m
Meter m 1.0m
Centimeter cm 0.01m
Millimeter mm 0.001m
Yard yd 0.9144m
Foot ft 0.3048m
Inch in 0.0254m
Enter your own length unit (LU), as any given multiple of any of the other length units, such as 1
LU = 0.3141 km.
Select the unit of your own length unit.
SimTalk
getUnit
Time scale
You can change the display of the Time scale to meet your specific modeling needs. You might, for
example, divide a minute into 100 units, instead of in 60 seconds, or you might want to read 1:50 as
1.5 hours instead of 1 minute and 50 seconds.
You can enter a number between 0 and 86400 into the text box Time Scale 1/.
You can enter an integer greater than 1 into the text boxes next to Transfer if.
You can only change the display of the time scale, not the time scale itself.
A time specification consists of four numbers, separated by colons, normally in the format
days:hours:minutes:seconds. Plant Simulationstores the value itself in seconds and converts it at
output time for the display.
Plant Simulation converts times according to the values which you enter into the text boxes Time
scale and Transfer if. The time scalesets by which factor the time value will be divided. The result
of this calculation will then be distributed across the four values days:hours:minutes:seconds. The
three text boxes after transfer ifset when the value is to be carried over to the next number.
The following examples illustrate what to enter to achieve different displays of the time.
• If you want to use the standard time format, 24 hours to the day, 60 minutes to the hour, 60
seconds to the minute, you can use the default setting Time Scale 1/1.0 Transfer if 24:60:60.
Example: str_to_time("1:15:45.5") -- 1 hour, 15 minutes, 45.5 seconds
• If you want to use times based on minutes, you can enter Time Scale 1/60.0 Transfer if
30:24:60.
The time value is first divided by 60, so that minutes instead of seconds are displayed as the
smallest digit. The carry overs set that a month has 30 days, a day 24 hours, and an hour
60 minutes.
Example: str_to_time("1:15:45.5") -- 1 day, 15 hours, 45,5 minutes
• If you want to simulate a longer period of time and want to display the time in the format
years:months:days:hours, enter Time Scale 1/3600 Transfer if 12:30:24, as an hour has 3600
seconds, a year has 12 months, a month has 30 days, and a day has 24 hours.
• If you want to divide a minute into 100 subunits instead of 60 seconds, enter Time Scale 1/0.6
Transfer if 24:60:100.
The time value is first divided by 0.6 to take the division into 100 subunits into account and then
subdivided. 100 subunits then result in 1 minute.
Example: str_to_time("1:15:45.5") -- 1 hour, 15 minutes, 27.3 seconds
Changing these settings not only affects how Plant Simulation shows times, but also
affects the conversion functions str_to_time and str_to_dateTime. Therefore, be aware
that changing the settings may affect the simulation results.
The method timeRepresenation returns the time system used, and writes it to a list in real format. The
contents of the first cell shows the factor of (time) division, the second, third, and fourth represent the
values you entered into the Transfer if text boxes. Normally, they are 24, 60, 60.
Related Topic
Select Options for Units and for Displaying the Time
To use daylight saving time during the months March to October/November in your simulation
models, select this.
In the European Union, daylight saving time begins and ends at 02:00 o’clock in the morning GMT
(Greenwich Mean Time) on the last Sunday in March, and ends on the last Sunday at 03:00 o’clock in
the morning in October. In the EU, all time zones change at the same hour.
For most of the United States daylight saving time begins at 02:00 o’clock in the morning on the
second Sunday of March. It ends at 02:00 o’clock in the morning on the first Sunday of November.
Enter the Month Start, the Week Start, the Day Start, and the Hour Start into the text boxes.
Enter the Month End, the Week End, the Day End, and the Hour End into the text boxes.
Related Topics
setDaylightSavingTime
Select Options for Units and for Displaying the Time
Month Start
Enter the month when daylight saving time starts. You can enter a number between 1and 12. Within
most of the U.S. and for the entire EU enter 3 for March
SimTalk
setDaylightSavingTime
Week Start
Enter the week when daylight saving time starts. For the default setting -1 daylight saving time starts
on the last Sunday of the month you entered under Month Start.
Enter a number between 1and 4. Week 1 is the first week including the Day Start you set, week 4 is
the last week of the month.
SimTalk
setDaylightSavingTime
Day Start
Enter the day when daylight saving time starts. For the U.S. and the EU, enter 0for Sunday. 0
designates Sunday, 1 Monday, 2Tuesday, 3 Wednesday, 4 Thursday, 5 Friday, and 6 Saturday.
SimTalk
setDaylightSavingTime
Hour Start
Enter the hour when daylight saving time starts. Enter a number between 0 and 23. For the EU,
enter 2 for 02:00 o’clock in the morning.
SimTalk
setDaylightSavingTime
Month End
Enter the month when daylight saving time ends. You can enter a number between 1 and 12. Within
the U.S. enter 11 for November and within the EU enter 10for October.
SimTalk
setDaylightSavingTime
Week End
Enter the week when daylight saving time ends. For the default setting -1 daylight saving time ends
on the last Sunday of the month you entered under Month End.
Enter a number between 1and 4. Week 1 is the first week including the Day End you set week 4 is
the last week of the month.
SimTalk
setDaylightSavingTime
Day End
Enter the day when daylight saving time ends. For the U.S. and the EU, enter 0 for Sunday. 0
designates Sunday, 1 Monday, 2 Tuesday, 3 Wednesday, 4 Thursday, 5 Friday, and 6 Saturday.
SimTalk
setDaylightSavingTime
Hour End
Enter the hour when daylight saving time ends. For the EU, enter 3 for 03:00 o’clock in the morning.
SimTalk
setDaylightSavingTime
3D
3D
On the tab 3D you can select settings for the current 3D model. You can also select some of these
settings for each scene in the individual scene windows. These settings will then override the
general preferences.
You can:
• Enter a value for the Curve precision.
• Select the Visualization settings Screen coverage threshold and Show states as colors if no
state graphics are present.
Enter the threshold value for showing or hiding objects in the scene windows, which are less than the
value in pixels that you enter. This setting is used for maximizing performance.
To show the external representation of simulation objects in different colors when no state group with
individual state graphics for the different states exists, select the check box. Then the 3D Viewer
automatically colors the visible graphics of the object red for failed, blue for pausedor yellow for
waiting, when the object is in the respective state during the simulation.
When you clear the check box, the 3D Viewer immediately removes all state colors.
Related Topic
State Graphics
Curve precision
Enter the sampling accuracy for curved objects in the 3D Viewer, such as polycurves and splines.
Changes to the curve precision only take effect after the next change of the curve.
Preferences
Preferences
The command Preferences opens the Preferences in which you can select global settings for
Plant Simulation.
• On the tabs 2D, User Interface, Editor, 3D, and License you can select general settings, which
are independent of the simulation model.
• On the tabs Simulation and Units you can select model-specific settings, which apply to new
models. The tab General shows both types of settings.
Related Topics
General Editor
2D 3D
Simulation License
Units
General
General
On the tab General you can select a number of general and model-specific settings.
Related Topics
Libraries directories
Model language
Select the language of the currently open simulation model. Plant Simulation saves this setting
to the model file.
When you create a new simulation model, the model language determines:
• The names of folders and objects, such as MaterialFlow and SingleProc for English or
Materialfluss and Einzelstation for German.
• The items of the drop-down lists, such as the names of the distributions ( Uniform or Gleich).
• The return value of the attributes that correspond to the entries of the drop-down lists, for
example SingleProc.RecoveryTimeMode. When you query such an attribute in SimTalk, Plant
Simulation returns the value in English, except the model language is German; in the latter case
Plant Simulation returns the value in German. For the example SingleProc.RecoveryTimeMode
Plant Simulation returns "Wenn Teil eintritt" when the model language is German, "When
part enters" for all other model languages.
• The contents of the window Show Attributes and Methods. When the model language is
German, the window lists the German names of the attributes and methods. For all other model
languages the window lists the names in English.
• The names, which Auto Complete within the method editor suggests. When the model language
is German, the method editor suggests the German names of attributes and methods. For all
other model languages it suggests the English names.
When you changes the model language, the user interface language of Plant Simulation
will not be changed. The user interface language of Plant Simulation is determined by the
operating system of your computer. You can change the user interface language of Plant
Simulation with the command line argument -UILanguage, compare Entering Start Options.
SimTalk:
language
Related Topics
userInterfaceLanguage
Select the date and time format for your simulation model. You can select the English 12 hour, the
English 24 hour, or the German notation of the date and time format.
yyyy/mm/dd 12 hour
yyyy/mm/dd 24 hour
dd.mm.yyyy 24 hour
Select which kind of comment the program adds to your model file (.spp), each time you save it:
• Without comment adds no comment.
• With comment opens a comment window, each time when you save the model. Enter your
comment here.
• When you select Without comment or With comment the program adds a row to the dialog
Model Saving History each time you save the model.
When the model crashes, the program adds a description of the problem to the dialog instead of
a comment. This helps our software engineers detect what caused the crash.
• None does not save the history of how you saved your model.
To view the comment you entered, select File > Options > Model History.
Visualization
Select how you want to create your simulation model:
• Only in 2D. This creates the model consisting only of the 2D part.
• In 2D and in 3D. This creates the model consisting of a 2D part and a 3D part.
• Only in 3D. This creates the model consisting only of the 3D part.
• Ask each time. Asks each time you create a new simulation model with which parts you want
to create it.
When you created the model in 2D only and need to create its 3D part at a later point in time, you
• When you connect Frames, the positions of exit and entrance Interface objects have to be
close to each other.
• When you connect objects, the positions of the exits and the entrances of the objects have
to be close to each other.
SimTalk:
connectAutomatically
Connector positioning
Select on which side of the object the program places the starting point or the end point of Connectors:
• Fixed side places the starting point of the Connector at the exit of the object and the end point
at its entrance.
• Angle-dependent takes the angle between the objects into account when determining the starting
point or the end point of the Connector.
Libraries directories
Click the button and navigate to the folder in which to store the object libraries, which you and your
colleagues develop or which you purchase from a third party vendor. You can also type in several
directories separated by a semicolon. The library manager checks this folder/these folders for the
most up-to-date version of a library and lets you download it to your hard drive from there. This way
you can add company-specific and project-specific libraries to your simulation model.
The text box shows the path to the folders in which you stored the object libraries, which you and
your colleagues develop or which you purchase from a third party vendor. The semicolon separates
directories if you entered several of them.
Plant Simulation searches for libraries in the installation directory and in all directories, which you
enter here. It shows all libraries, which it finds in these directories, in the dialog Manage Class Library.
In addition to entering additional directories here, you can also define additional
directories for all users of this computer by creating the Registry String
HKEY_LOCAL_MACHINE\SOFTWARE\Tecnomatix\eM-Plant\14.0\GlobalLibDirs. Note that the
path depends on the version of Plant Simulation. You can assign a single directory or several
directories separated by a semicolon to this registry key.
The system administrator can set this registry value to a network path when installing
Plant Simulation.
Related Topics
Manage Class Library
Update a Library
Modeling
2D
On the tab 2D you can select the default settings that determine how a Frame shows the objects
which you insert into it.
You can override these settings for each individual Frameon the General ribbon tab. The
2D settings are saved to your model file.
Related Topics
To show the Names of the objects below their icons in the Frame window, select this.
To show or hide them, you can also click the Names button on the General ribbon tab.
On Off
SimTalk
ShowObjectNames
Show MU names
To show the names of the parts (MUs) in your simulation model, select this. This only works, when
you also select Show object names.
This prevents your simulation model from looking cluttered.
On Off
To show or hide them, you can also click the Options button on the General ribbon tab.
To show the Labels, which you entered for the objects, below their icons in the Frame window,
select this.
On Off
If you also selected to Show object names, Plant Simulationshows the labels below the names.
On Off
To show or hide them, you can also click the Options button on the General ribbon tab.
SimTalk
ShowObjectLabels
Show predecessors
To show the number of an incoming connection for each material flow connection in the Frame
window, select this. The program only shows the predecessors in the Frame window when you
also select Show connections.
The predecessoris the object that is connected to the selected object with a Connector and that
precedes it in the sequence of stations in the simulation model.
For the first connection from another object to the current object, the Connector shows >1, denoting
that this is the first predecessor. If the object has more than one predecessor, the program numbers
the predecessors in the order you connected them, >2 for the second, >3 for the third, etc.
On Off
To show or hide them, you can also click the Options button on the General ribbon tab.
SimTalk
succInterface
Show successors
To show the number of an outgoing connection for each material flow connection in the Frame
window, select this. The program only shows the successors in the Frame window when you also
select Show connections.
The successoris the object that is connected to the selected object with a Connectorand that
succeeds it in the sequence of stations in the model.
For the first connection from the current object to another object, the Connector shows 1>, denoting
that this is the first successor. If the object has more than one successor, the program numbers the
successors in the order you connected them, 2> for the second, 3> for the third, etc.
On Off
To show or hide them, you can also click the Options button on the General ribbon tab.
SimTalk
succInterface
To show the display panels, which you defined for the objects, in the Frame window, select this.
On Off
To show or hide them, you can also click the Options button on the General ribbon tab.
SimTalk
ShowDisplayPanels
Show connections
To show connections, i.e., the Connectors between the objects in the Frame window, select this. An
arrow in the middle of the Connector shows the direction.
To show or hide them, you can also click the Connections button on the General ribbon tab.
The commands Show predecessorsand Show successors only work, when you also select Show
connections.
On Off
Show grid
To show the grid points in the Frames of an open model, select this. This feature is useful for
automatically aligning objects while you insert them. Enter the spacing of the grid intervals on the
x-axis and the y- axis into the text boxes below Frame grid spacing. Instead, you can also click Show
Grid on the General ribbon tab of the Frame.
You might want to select Show object borders as well.
When the Grid is active, the program places the objects which you insert onto grid points. You can
then move the object by grid units only. The reference point of the icon of the object determines where
Plant Simulationplaces the object on the grid point. By default, the reference point of a material
flow object is located in the center of the icon. When you place an object, Plant Simulationplaces the
reference point onto the grid point nearest to the mouse pointer. You can move the reference point to
any position of your choice in the Icon Editor.
Selecting Show grid after you placed objects has no effect on the alignment of the objects which you
already placed. They remain at the position at which you inserted them.
To align the objects, which you already inserted, with the grid, click Align to Grid on the Icons ribbon
tab of the Frame. Plant Simulationthen moves all selected objects, so that their reference points
are aligned with the closest grid point.
On Off
To show or hide them, you can also click the Grid button on the General ribbon tab.
To show the borders around the icons of the objects, which you inserted into the Frame, select
this. This way you can see the full Set Icon Size of the icon. The size of the border depends on
the size of the icon.
On Off
To show or hide them, you can also click the Options button on the General ribbon tab.
Show comments
To show objects of type Comment, which you inserted into your simulation model to provide additional
information, select this.
To show or hide them, you can also click the button Comments on the General ribbon tab.
On Off
To be able to select an object that moves under the transparent area of the icon of an object in
front of it, select this.
Off On
Here you cannot select the ParallelProcbecause Here you can select the ParallelProcbecause
the transparent area of the SingleProc, shown Plant Simulationignores the transparent area
in gray, is located in front of it. of the SingleProc.
Enter the distance between the individual grid points from each other on the x-axis, i.e., the horizontal
axis of the Frame. The grid points are the points at which the imaginary grid lines intersect.
Enter the distance between the individual grid points from each other on the y-axis, i.e., the vertical
axis of the Frame. The grid points are the points at which the imaginary grid lines intersect.
Simulation
Simulation
On the tab Simulation you can select settings that apply to how Plant Simulation executes the
simulation runs. Complex simulation models will contain a large number of Method objects, which
themselves may call other methods. Incorrect modeling may cause a method to be called repeatedly
by itself during the simulation run, either directly or indirectly through other methods. This is called an
endless recursion. With each call, Plant Simulation takes up more RAM, until it used up all available
memory and terminates the simulation run.
Plant Simulation provides several ways for detecting and preventing this and related problems.
Enter the number of methods that may be called by other methods to prevent the program from
running out of memory.
When Plant Simulation exceeds the maximum depth of calls, the simulation stops and the Debugger
opens. Increase the number of the maximum depth of calls and continue or correct programming
errors contained in the code, if any. To continue, hold down the Ctrl key and double-click the selected
line containing the error in the Debugger.
SimTalk:
setMaxDepthOfCalls
With the method callEvery, you can create a list of methods yourself. A modeling flaw may cause
the same callEvery method to be called repeatedly during the simulation, thus taking up more and
more memory and finally terminating the simulation. By limiting the number of call chains, you can
detect and correct the modeling error.
When the Maximum number of call chains reaches the value you entered, the simulation stops
and Plant Simulation shows an error message. Then you can increase the maximum number of call
chains and continue or you can correct the faulty source code. To do so, hold down the Ctrl key and
double-click the selected line containing the error in the Debugger.
SimTalk:
setMaxNumberOfCallChains
When Plant Simulationreaches the number you set, it will not suspend any additional methods and
displays an error message. You can then either increase the Maximum number of suspended
methods by entering a greater number into this text box, and continue your simulation run or stop
the simulation and fix the modeling error. To do so, hold down the Ctrl key and double-click the
selected line containing the error in the Debugger.
SimTalk:
setMaxSuspendedMethods
Related Topics
The Waituntil-Statement and the Stopuntil-Statement
Interrupting the Execution of Methods with Wait
You can enter a number between 1 and 32000. Plant Simulation keeps track of values outside of the
upper and lower bounds which you enter to prevent values outside of this range. For a normal
distribution it may happen that Plant Simulation draws large values. When the bounds are close
together, this may result in many values located outside of the range. This way Plant Simulation has
to draw a large number of samples before a valid value is available, which may take up a lot of time.
SimTalk:
setMaxNumberOfSamples
Enter the value for Epsilon. The program uses this value in about equal comparisons with the ~=
operator in SimTalk as the tolerance value for which it considers values to be equal or not equal.
• It considers two values to be about equal, when the difference between the two values is less
than the value you enter for epsilon.
• It considers two values to not be about equal, when the difference between the two values is
greater than the value you enter for epsilon.
SimTalk:
setEpsilon,
getEpsilon
Frame rate
Enter how often per second the program refreshes the graphics in your simulation model.
You can enter a number between 1 and 100. Depending on your model a lower number may lead
to a higher simulation speed. A higher number results in a smooth animation, which may decrease
the simulation speed though.
SimTalk:
setAnimationRefreshRate
Select how often Plant Simulation refreshes the values of the Display Panels in your simulation
model. You can select a fraction of the frame rate. Plant Simulation shows to how many frames
per second the fraction corresponds.
Units
Units
On the tab Units you can select the units for mass, currency, speed, acceleration, and length.
These settings only affect how Plant Simulation shows values in lists, tables, global variables, and the
window of the Console when values are displayed in the user interface..
Internally Plant Simulation uses SI (Standard International) units ( kg, m/s, m/s2, m) for all physical
values, regardless of what you selected on the Unitsribbon tab. This has two visible effects when
writing source code:
• When you assign a constant value to a variable or an attribute of an object, Plant Simulation
interprets this value in the corresponding SI unit. For example, the statement Line.Length := 3.4
means that Plant Simulation assigns 3.4 meters independent of the selected Length unit.
• When you assign a physical data type to a value of data type real, you will receive the value in SI
units. This also applies when you use physical units in computations with a result of data type real.
You can also enter values for the time scale and daylight saving time.
If you change units while modeling, Plant Simulation will convert all values you entered
originally into the dialogs of objects to the new unit, except for monetary values. For
these Plant Simulation only changes to the new currency symbol, but does not convert
the values you entered originally!
Plant Simulation stores units with 15 valid digits. If you enter more digits, Plant Simulation keeps
only the first 15 digits and rounds according to the remaining digits (down until the number 4,
up from the number 5 on).
The computer stores the number 9876543210123456789.0 for example as
9.876543210123456*10E18.
As Plant Simulation stores numbers using a finite number of digits, most of these values
are only approximations of the exact values. Therefore, be aware of rounding errors,
especially in comparisons!
Related Topics
Mass Length
Acceleration —
Mass
Select the unit for the mass. Plant Simulation uses kilograms ( kg) as the unit within methods. When
you change the unit while modeling, it converts all values, which you already entered into objects,
to the new unit.
Kilogram kg 1.0 kg
Gram g 0.001 kg
Ton t 1000.0 kg
Ounce oz 0.02834952 kg
SimTalk:
getUnit
Currency
Select or enter the unit for the currency. When you change the currency unit while modeling, Plant
Simulation only changes to the new currency symbol, but does not convert the actual values you
entered originally!
Unit Symbol
US Dollar $
Euro €
British Pound £
Japanese Yen ¥
SimTalk:
getUnit
Speed
Select the unit for the speed. When you assign a speed in a method, Plant Simulation uses meters
per second ( m/s) as unit. When you change the unit while modeling, it converts all values, which you
already entered into objects, to the new unit.
SimTalk:
getUnit
Acceleration
Select the unit for the acceleration. The acceleration only applies to the length-oriented object
Line and to the Transporter.
Unit Symbol
SimTalk:
getUnit
Length
Select the unit for the length. Plant Simulation uses meters ( m ) as unit within methods. When you
change the unit while modeling, it converts all values, which you already entered into objects, to
the new unit! This may cause rounding errors.
Kilometer km 1000.0 m
Meter m 1.0 m
Centimeter cm 0.01 m
Millimeter mm 0.001 m
Yard yd 0.9144 m
Foot ft 0.3048 m
Inch in 0.0254 m
Enter your own length unit (LU), as any given multiple of any of the other length units, such as 1
LU = 0.3141 km.
Select the unit of your own length unit setting.
SimTalk:
getUnit
Time scale
You can change the display of the time scale to meet your specific modeling needs.
You can enter a number between 0and 86400 into the text box time scale 1/ (divided by).
You can enter an integer greater than 1 into the text boxes next to transfer if.
You might, for example, divide a minute into 100 units, instead of in 60 seconds, or you might want
to read 1:50 as 1.5 hours instead of 1 minute and 50 seconds.
You can only change the display of the time scale, not the time scale itself.
A time specification consists of four numbers, separated by colons, normally in the format
days:hours:minutes:seconds. Plant Simulation stores the value itself in seconds and converts it at
output time for the display.
Plant Simulation converts times according to the values which you enter into the text boxes time
scale and transfer if. The time scale sets by which factor the time value will be divided. The result
of this calculation will then be distributed across the four values days:hours:minutes:seconds. The
three text boxes after transfer if set when the value is to be carried over to the next number.
The following examples illustrate what to enter to achieve different displays of the time.
• If you want to use the standard time format, 24 hours to the day, 60 minutes to the hour, 60
seconds to the minute, you can use the default setting time scale 1/1.0 transfer if 24:60:60.
• If you want to use times based on minutes, you can enter time scale 1/60.0 transfer if 30:24:60.
The time value is first divided by 60, so that minutes instead of seconds are displayed as the
smallest digit. The carry overs set that a month has 30 days, a day 24 hours, and an hour
60 minutes.
• If you want to simulate a longer period of time and want to display the time in the format
years:months:days:hours, enter time scale 1/3600 transfer if 12:30:24, as an hour has 3600
seconds, a year has 12 months, a month has 30 days, and a day has 24 hours.
• If you want to divide a minute into 100 subunits instead of into 60 seconds, enter time scale
1/0.6 transfer if 24:60:100.
The time value is first divided by 0.6 to take the division into 100 subunits into account and then
subdivided. 100 subunits then result in 1 minute.
Changing these settings not only affects how Plant Simulation shows times, but also
affects the conversion functions str_to_time and str_to_dateTime. Therefore, be aware
that changing the settings may affect the simulation results.
The method timeRepresenation returns the time system used, and writes it to a list in real format. The
contents of the first cell shows the factor of (time) division, the second, third, and fourth represent the
values you entered into the Transfer if text boxes. Normally, they are 24, 60, 60.
To use daylight saving time during the months March to October/November in your simulation
models, select this.
In the European Union, daylight saving time begins at 02:00 o’clock in the morning GMT (Greenwich
Mean Time) on the last Sunday in March. It ends at 03:00 o’clock in the morning on the last Sunday
in October. In the EU, all time zones change at the same hour.
For most of the United States daylight saving time begins at 02:00 o’clock in the morning on the
second Sunday of March. It ends at 02:00 o’clock in the morning on the first Sunday of November.
Enter the Month Start, the Week Start, the Day Start, and the Hour Start into the text boxes.
Enter the Month End, the Week End, the Day End, and the Hour End into the text boxes.
Month Start
Enter the month when daylight saving time starts. You can enter a number between 1 and 12. Within
most of the U.S. and for the entire EU enter 3 for March.
SimTalk:
setDaylightSavingTime
Week Start
Enter the week when daylight saving time starts. For the default setting -1 daylight saving time starts
on the last Sunday of the month you entered under Month Start.
Enter a number between 1 and 4. Week 1 is the first week including the Day Start you set, week 4 is
the last week of the month.
SimTalk:
setDaylightSavingTime
Day Start
Enter the day when daylight saving time starts. For the U.S. and the EU, enter 0 for Sunday. 0
stands for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday, 4 for Thursday, 5 for Friday, and
6 for Saturday.
SimTalk:
setDaylightSavingTime
Hour Start
Enter the hour when daylight saving time starts. Enter a number between 0 and 23. For the EU,
enter 2 for 02:00 o’clock in the morning.
SimTalk:
setDaylightSavingTime
Month End
Enter the month when daylight saving time ends. You can enter a number between 1 and 12. Within
most of the U.S. enter 11 for November and within the EU enter 10 for October.
SimTalk:
setDaylightSavingTime
Week End
Enter the week when daylight saving time ends. For the default setting -1 daylight saving time ends
on the last Sunday of the month you entered under Month End.
Enter a number between 1 and 4. Week 1 is the first week including the Day End you set, week 4 is
the last week of the month.
SimTalk:
setDaylightSavingTime
Day End
Enter the day when daylight saving time ends. For the U.S. and the EU, enter 0 for Sunday. 0
stands for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday, 4 for Thursday, 5 for Friday, and
6 for Saturday.
SimTalk:
setDaylightSavingTime
Hour End
Enter the hour when daylight saving time ends. For the EU, enter 3 for 03:00 o’clock in the morning.
SimTalk:
setDaylightSavingTime
User Interface
User Interface
On the tab User Interface you can select settings that apply to user-interface items.
Related Topics
Delete objects
Console filter
To show additional information and internal program messages, such as potential problems, select
this. When you start the program with the command-line parameter -NoWarning, it does not write any
of the above to the Console.
Plant Simulation also counts all of the built-in objects, which are contained in the entire model, i.e.,
in the Class Library and in all Frames. It does not count these objects: Lists and Tables, Methods,
Variables, MUs, and Connectors.
You might want to know this number if you are working with a Plant Simulation Standard License
which is limited to 4000 objects.
Note that these filters are always activated when you start Plant Simulation.
• Print Output shows output from print commands in Methods.
• Info Output shows text, which is displayed in info boxes, such as those shown during the reset
and init phases of the model. In addition, it includes warnings, for example when you use a
no-longer-supported attribute in a method. When you start the program with the command-line
parameter -NoWarning, it does not write any of the above to the Console.
To show these actions on the context menu of the Console, you can also click the right
mouse button. Select Clear to delete the contents of the Console window.
Related Topics
Entering Start Options, -logfile file name>
SimTalk:
setConsoleFilter
numOfLimitedObjects
Delete objects
To open a dialog prompting you to confirm, when you delete objects or user-defined attributes in your
model with the Delete key or the menu command Delete on the context menu, select this. It is
especially useful to deactivate this feature when you are cleaning up a large model.
Plant Simulation deletes Connectors connected with a material flow object without
prompting you to confirm when you delete the material flow object!
Transparent dialogs
Transparent dialogs
To make dialogs, which are open in the foreground, transparent, select this. Dialogs and windows,
which open behind them, will then be visible and it will thus be easier to select them.
Then, enter a percentage for the Window coverage and for the Transparency level.
Window coverage
Enter the percentage of a window that has to be covered by a dialog located in front of it, so that
the dialog, which covers the window, will become transparent.
Transparency level
Enter a value for the transparency level of the covering dialog. 0 percent stands for opaque, 100
percent for almost totally transparent.
Let’s say that you selected German as the Model language, then Plant Simulation shows the items in
the drop-down list boxes in German. If you select any other of the available model languages, Plant
Simulation shows the items in the drop-down list boxes in English.
Let’s say that you selected Japanese as the model language, then Plant Simulation reads the
attributes belonging to the items in the drop-down list boxes as English strings.
When you clear the check box, the program shows the contents of drop-down list boxes in the
language of the graphical user interface of Plant Simulation.
To show the name of the object as a tooltip, when you drag the mouse over the object in the window
of the Frame, select this.
On Off
You can also create a user-defined attribute of data type string for all objects and name it tooltip.
The Frame shows the text you entered on a new line below the name, when you drag the mouse
over the object.
When you deactivate Show object names as tooltip, Plant Simulation only hides the name of the
object, but continues showing the tooltip, which you entered.
On Off
The user-defined tooltip for objects can also be handled by a Method. The user-defined attribute
with the name tooltip has to be of data type method. Plant Simulation shows the return value of
the Method as tooltip. The anonymous identifiers ? and @ point to the object for which you want to
show the tooltip.
Editor
Editor
On the tab Editor you can select the global settings that determine how Plant Simulation formats and
shows SimTalk source code in all Method objects.
For individual instances of methods you can also select local settings on the Tools ribbon
tab of that Method.
Related Topics
Syntax-controlled indentation
To indent the source code you enter according to the SimTalk syntax when starting a new line of
code, select this. Then, Plant Simulation indents the lines of code within a SimTalk control structure
according to the delimiting keywords. It indents, for example, the code between the keywords loop
and end, making it easier to follow the logic used.
Instead, you can also click the button Syntax Indentation on the Tools ribbon tab of an individual
Method.
To highlight the current line of your source code in the method editor, select this.
To highlight the current line of code, you can also click the button View on the Tools ribbon tab of
an individual Method.
Related Topic
Highlight Current Line
To show the line number in front of the line of source code in the method editor, select this.
Instead, you can also click the button View on the Tools ribbon tab of an individual Method.
Related Topic
Show Line Numbers
To show a tooltip with the name of the object or the attribute or the method, when the command Auto
Complete reaches a point from which on the name is unique, select this. This way you can press
Ctrl+Spacebar without having to type in too many letters.
Instead, you can also click the button View on the Tools ribbon tab of an individual Method.
Related Topic
Show Tooltip with Completion
To show the data type of the parameters and of the return value of attributes and methods with the
tooltip, when the command Auto Complete reaches a point from which on the name is unique,
select this.
The notation is the same as in the window Show Attributes and Methods.
Instead, you can also click the button View on the Tools ribbon tab of an individual Method.
Related Topic
Tooltip includes Type Info
Show outlining
To show the outlining of a sequence of source code lines, such as control and loop structures, in the
method editor as an expansible or a collapsible structure, select this.
Instead, you can also click the button Toggle Outline on the Tools ribbon tab of an individual Method.
To find whole words only in your source code, select this. When you clear it, the program also
finds parts of words.
Match case
To match the case of the expression you entered and for which you are searching, select this. To
find the expression regardless of lower or upper casing, clear it.
To also find regular expressions, select this. This means that you can use wild cards in the term you
want to find. You can, for example, use the period character . as a wild card for any character.
If the editor searches for a.b, it will find all strings consisting of a sequence of the character a, any
character, and the character b.
Compare Show Structure for additional examples.
To continue searching at the beginning of the source code, after the search reaches the end of the
text, select this.
Tab size
Enter the tab size in character widths of a non-proportional font. This is the number of blank spaces
with which the method editor indents source code you enter.
The commands Decrease Indent and Increase Indent on the Edit ribbon tab of the Method use this
setting when moving your source code by one tab size.
Font
Select the font size which the method editor displays the source code, which you enter into a Method
in the Consolas font. The Method Editor and the Method Debugger use the font Consolas in
different fixed sizes between 6 and 72 points.
To increase or decrease the font size, hold down the Ctrl key and roll the mouse wheel forward and
backward in the Method Editor or the Method Debugger window. When you change the font size with
the mouse wheel, Plant Simulation saves this as the new preference and uses it when you start the
program the next time. Plant Simulation uses the changed font size in all open Method windows, not
just in the one in which you rolled the mouse wheel.
Instead of rolling the mouse wheel, you can also use these key combinations:
Ctrl plus + increases the font size
Ctrl plus 0 resets the font size to the standard size of 10 points
Ctrl plus - decreases the font size
To apply bold face to the selected font size of the source code of the Methods, select this.
Template directory
Click the button and navigate to the folder in which you store the templates for the source code
of your methods. You can then select one of the templates in the Method object by clicking Select
Template on the Edit ribbon tab and thus load it into the Method you are programming.
The text box shows the path to the folder in which you store the templates for the source code
of your methods.
3D
3D
On the tab 3D you can select general settings for the 3D Viewer as such and settings for the 3D
model. You can also select some of these settings for each scene in the individual scene windows.
These settings will then override the general preferences.
When you click OK or Apply, the 3D Viewer saves the 3D toolbars of the 3D scene
windows. Thus it also shows these toolbars in any new 3D scene windows, which you open
afterwards. This only applies for the setting User Interface > User interface concept
> Menus and Toolbars.
You can:
• Select the Visualization settings Screen coverage threshold, Show states as colors if no state
graphics are present, and Grid Settings.
Enter the threshold value for showing or hiding objects in the scene windows, which are less than the
value in pixels that you enter. This setting is used for maximizing performance.
To show the pictures of the stations in different colors, when no individual state graphics for the
different states exist, select the check box. Then the 3D Viewer automatically colors the graphic of the
object red for failed, blue for paused or yellow for waiting, when the object is in the respective state.
When you clear the check box, the 3D Viewer immediately removes all state colors.
Related Topics
State Graphics
Illustrating State Graphics
Grid Settings
Grid Settings
To open the dialog Grid Settings, click the button Grid Settings.
This setting only applies for new models. Click Edit Grid Settings on the View ribbon tab of
the 3D Viewer to modify grid setting for the current simulation model
You can:
• Select to show or hide the Base plate on which the grid is placed in the scene window.
• To apply and display your changes to the grid settings in the scene window, click Apply.
• To apply your changes to the grid settings and close the dialog, click OK.
• To close the dialog without applying any of the settings you modified, click Cancel.
Related Topic
Working with the Grid
Base plate
To show the base plate underneath the grid lines in the Frame window, select the check box. To
hide the base plate, clear it.
Color
Click the arrow of the drop-down list Colorand select a different color for the base plate.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
Related Topic
Set Grid Properties
Axes
Click the arrow of the drop-down list Color and select a different color for the central axes of the grid.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulationshows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
When you insert and move an object towards the borders of the grid, it automatically extends in that
direction. The grid always expands or shrinks to show all objects in the scene.
Grid lines
In the group box Grid lines you can edit or remove existing grid lines and you can add new ones.
• You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next
to More Colors and uses it as the active color.
• Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
• Enter a positive value into the cell Interval to set the spacing of the selected grid line.
• Select the check box in the cell Visible to make the 3D Viewer show the grid line. Clear it to
hide the grid line.
• Select the check box in the cell Select for Snapping to make an object, which you insert, snap to
the grid line. Clear it to not make the object snap to that grid line.
• When you insert an object, the Snap to feature places the object at the snapping point closest to
the point where you position the mouse and click the left mouse button.
• When you move an object with the mouse, the Snap to feature places the object closest to the
snapping point to which you dragged the object and released the mouse button.
This only works when you activated the Snap to feature by clicking Snap to Grid
on the Edit ribbon tab.
• To add a new grid line, click . Then, enter the settings described above.
• To delete the selected grid line, select it in the list field and click .
You can also select these settings for each Frame in the 3D Viewer by clicking Edit Grid Settings on
the View ribbon tab.
Curve precision
Enter the sampling accuracy for curved objects in the 3D Viewer, such as polycurves and splines.
Changes to the curve precision only take effect after the next change of the curve.
Show grid
To show the grid in new models, select this. To hide it, clear the check box.
• Move camera moves the camera away from you when roll the mouse wheel down. When you
roll the mouse wheel up, the 3D Viewer moves the camera towards you.
• Move scene moves the scene as such towards you when you roll the mouse wheel down. When
you roll the mouse wheel up, it moves the scene away from you. This is the default setting.
Related Topic
Manipulate the Scene with the Mouse
OpenGL Version
Select the OpenGL version you would like to use for rendering the 3D scenes in your simulation
models. When the 3D Viewer is running while the dialog Preferences is opened, the drop-down list
only shows the OpenGL versions that the graphics card driver of the graphics card of your computer
supports.
You can check out the features of the individual OpenGL versions on the Internet.
We recommend to use the highest setting available. Sometimes you might have to choose
a lower level though to get rid of display bugs in the driver of your graphics card. Be aware
that if you go below version 3.1, you might suffer a significant decrease in performance.
License
License
On the tab License you can select the license type you purchased and you can select how Plant
Simulation acquires this license. Plant Simulation supports a license file or three redundant license
servers for retrieving your license. Redundant license servers significantly increase the stability
and the availability of the licenses.
When you are using a license server triad, two out of the three redundant license servers always
have to be reachable, meaning that one server can fail.
Activating Licenses describes how to go about in setting up and activating the licenses.
Related Topics
Server Help
License type
Select the type of license which you purchased and which you are using.
The license type determines which features of the program you can or cannot use. You can override
the setting you select here with the start option /L.
Related Topics
Starting Plant Simulation with Different Kinds of Licenses
Features of the Different Kinds of Licenses
licenseName
License file
Select this to acquire your license from a license file instead of from a license server.
Enter the path to and the name of your license file or click the button and navigate to the folder in
which you stored your license file (license.lic) and select it in the dialog, which opens.
Related Topic
Activating Licenses
Server
Select this to acquire your license from the license server whose name you enter into the
text box to the right.
Enter the name of this license server.
If you Use a license server triad, you have to enter the name of the first of three redundant license
servers.
Enter the port number for contacting this license server. For our standard environment the port
number is 27006. If you Use a license server triad, enter the port number for contacting this license
server. In this case two out of the three redundant license servers always have to be reachable,
meaning that one server can fail.
Related Topics
Using Redundant License Servers
Activating Licenses
Server
Select this to acquire your license from the license server whose name you enter into the
text box to the right.
Enter the name of this license server.
If you Use a license server triad, you have to enter the name of the second of three redundant
license servers.
Enter the port number for contacting this license server.
If you Use a license server triad, enter the port number for contacting this license server. In this case
two out of the three redundant license servers always have to be reachable, meaning that one
server can fail.
Related Topics
Using Redundant License Servers
Activating Licenses
Server
Select this to acquire your license from the license server whose name you enter into the
text box to the right.
Enter the name of this license server.
If you Use a license server triad, you have to enter the name of the third of three redundant license
servers. In this case two out of the three redundant license servers always have to be reachable,
meaning that one server can fail.
Enter the port number for contacting this license server.
If you Use a license server triad, enter the port number for contacting this license server.
Related Topics
Using Redundant License Servers
Activating Licenses
Related Topics
To query the host IDs of your computer, click this. Plant Simulation then shows the host IDs of your
computer in the text box to the right.
Related Topic
Licensing Plant Simulation
Host IDs
After you clicked Query Host IDs, Plant Simulation shows the host IDs of your computer here. You
can use any one of these host IDs for retrieving your license. You can copy the information from
the text box and paste it into the respective field on the website.
Related Topic
Licensing Plant Simulation
Help
Help
Help
• Index
• Tecnomatix Community
Contents
The command Contents opens the Tecnomatix Plant Simulation Online Help and shows the table
of contents in the left window pane.
Related Topic
Using HTML Help
Index
The command Index opens the Tecnomatix Plant Simulation Online Help and shows the index in
the left window pane.
Related Topic
Using HTML Help
Tecnomatix Community
The command Tecnomatix Community opens the website of the Siemens PLM Software
Community.
The following commands provide access to our technical support system.
The command About Tecnomatix Plant Simulation opens the dialog About Tecnomatix Plant
Simulation containing information about the version of Tecnomatix Plant Simulation, the kind of
license you purchased and copyrights.
Our technical support staff might ask you for your Sold to ID, and your Webkey Access Code. Note
that you can click into the respective text box, copy the text and paste it into an e-Mail, etc.
Exit
Exit
The command Exit closes the open simulation model and exits Plant Simulation.
• Click Yes to save the model.
When you defined a Method with the name onCloseModel in the folder basis of your
model, then this method will be executed when you close the model instead of actually
closing the model. This Method has to declare a boolean parameter. When you exit
Plant Simulation, the parameter has the value true, when you close the model, the
parameter has the value false. When you actually want to close the model, you have to
explicitly program that in the onCloseModel method by calling the function closeModel.
Note that the onCloseModel method located in the Basis folder will not be called when
you exit the application via information flow, i.e., with the method exitApplication.
When Plant Simulation is actually terminated (either because the onCloseModel method in the
Basis folder called the method closeModel, or because no onCloseModel method exists in the
Basis folder), then all other existing onCloseModel method classes in the Class Library are
called. Within these methods you can execute clean-up tasks, for example delete temporary files.
Related Topic
Exiting when Plant Simulation Locks Up
exitApplication
• When Plant Simulation is not running in the foreground, hold down the Ctrl+Alt+the right Shift
keys for several seconds to open the Debugger while a Method is being executed.
Plant Simulation shows a dialog asking if it should terminate and create an emergency copy.
When you click Yes, Plant Simulation safes the model under the name Tecnomatix Plant
Simulation.your login name to the Temp folder on your hard disk. When you restart the program,
Plant Simulation opens a dialog asking whether or not to open this model file.
We recommend to not continue working with the crashed simulation model, but to go
back to the last regularly saved version.
As opposed to clicking End Task in the MS Windows Task Manager, this emergency copy contains
the last unsaved changes you made.
Recent Files
The command Recent Files shows the eight models you worked with most recently. Select the
model you want to open. Plant Simulation shows a message asking if you would like to save the
currently open model or not.
Instead, you can also click Recent Models on the Start Page.
Search
Type the expression you want to find into the text box on the File menu. Plant Simulation finds the
expression as you type. To terminate your search, click the button on the
right hand side of the text box
Back to Ribbon Bar
MU Animation animMU
Open Class —
Paste Objects
pasteClipboard for the Frame
Multiple Paste
Rename —
Edit 3D Properties —
Create in 3D CreateIn3D
addObserver
attributeWatchable
Edit Observers
removeAllObservers
removeObserver
Show Structure —
Show Inheritance —
Help on Object —
The command Open Event Controller opens the dialog of the EventController.
To open the Dialog Window of the Event Debugger the hold down the Shift key and click the button.
Event Controller
Event Controller
• Start/Stop Simulation
• Real-Time
• Simulation Speed
Instead of clicking the buttons described below, you can also click the corresponding buttons in the
dialog of the EventController.
Reset Simulation
The command Reset Simulation resets your simulation model. Plant Simulation then calls all
Methods named reset in your simulation model.
This has the same effect as clicking Reset Simulation in the EventController.
Related Topic
reset
Start/Stop Simulation
The command Start/Stop Simulation starts the simulation. To stop the simulation after the
active simulation event has been processed, click the button again.
This has the same effect as clicking Start/Stop Simulation in the EventController.
Related Topic
startWithoutAnimation
The command Start Fast Forward Simulation starts the simulation run without MU Animation
The command Debug Next Simulation Step debugs controls or methods if the next simulation
step triggers controls or wakes up methods.
Real-Time
The command Real-time activates or deactivates real-time mode. This mode pauses the
simulation until the time span between two events has elapsed in real-time. Activating real-time mode
deactivates the slider for the Simulation Speed.
You have to activate real-time mode to achieve a smooth animation in 3D. Animations, which you
imported into the 3D Viewer, only run, when you activate real-time mode. The objects in the 3D
Viewer move with the speed of the corresponding Plant Simulation object and the real-time factor,
which you enter here.
Normally Plant Simulation does not take the time span between events into account,
as it is a discrete event simulation system.
Simulation Speed
The slower and faster buttons control the speed of the simulation.
• To increase the speed of the simulation, drag the slider to the right or press the right arrow key.
• To decrease the speed of the simulation, drag it to the left or press the left arrow key.
Decreasing the speed enables you to better follow the movements of MUs, as Plant Simulation shows
their icons for a longer time on the same station.
This has the same effect as dragging the Slower/Faster slider in the EventController.
Related Topic
Speed
MU Animation
The command MU Animation deactivates or activates the animation of mobile objects in your
simulation model. During the simulation run the Animation shows the state of the objects and the
positions and movements of the MUs.
• When you activate MU Animation, you immediately detect the flow of the mobile objects and are
able to detect blocked stations, where the MUs pile up.
• When you do not need to view animated MUs, deactivate MU Animation, as this improves the
simulation speed. The result of the simulation is the same either way. When you deactivated
the animation while an object intends to change its state, Plant Simulationdelays its display on
screen until you activate the animation again or until the object is selected.
Clicking Start without Animation in the EventController deactivates MU Animation and Icon
Animation.
Related Topics
Methods for Animating All Objects States and Icons of Mobile Objects
Icon Animation
The command Icon Animation deactivates or activates the animation of the icons of the objects.
When it is active, the objects show which state they are in as one or more colored dots in the LED
display along the top border of the icon. This way you can detect which object obstructs the
flow of materials.
If you do not need animated icons, we recommend to deactivate Icon Animation to increase the
simulation speed.
Clicking Start without Animation in the EventController deactivates Icon Animation and MU
Animation.
Related Topics
Methods for Animating All Objects States and Icons of Mobile Objects
Open Location
The command Open Location opens the Frame in which the selected object is located and opens it.
It also scrolls the Frame window so that the selected objects will be displayed.
• When you are working with a Frame, the command opens the Frame in which this Frame
is located.
• When you are working with a Method, the command opens the Frame in which the Method is
located, or the object for which you defined the user-defined attribute of data type method.
• When you are working with a List, the command opens the Frame in which the List is located, or
the object for which you defined the user-defined attribute of data type method.
• When you are working with icons, the command opens the Frame in which the object is located
whose icon you are editing.
Related Topic
location/ ~
Open Origin
The command Open Origin opens the object from which the selected object was derived.
• When you are working with a Frame, the command opens the window of the Frame from which
the selected Frame was derived. This Frame is the originof the selected Frame. Suppose that
Frame Bwas derived from Frame A, which in turn was derived from the root frame Frame in the
Class Library. Then Frame A is the origin of Frame B and the Frame is the origin of Frame A.
• When you are working with a Method, the command opens the window of the Method from which
the selected Method was derived.
• When you are working with a List, the command opens the window of the List from which the
selected List was derived.
• When you are editing icons, the command opens the icon of the class of the selected object in
the Icon Editor. You can then edit the icon of the class. Your changes to the icon will then be
propagated to the instances of object.
Instead, you can also click the object with the right mouse button and click the button on the mini
When you hold down the Shift key while clicking the button, Plant Simulation shows the location
of the origin of the object.
When you hold down the Shift key in a Method or in the Method-Debugger while clicking the
button, Plant Simulation shows the Method from which the current Method inherits its source code.
Related Topic
origin
Open Class
The command Open Class opens the window of the class of the selected object. The class object is
located in the Class Library.
Suppose that we derived Frame B from Frame A, which we derived from the root Frame Frame in the
Class Library. Then the Frame is the class of Frame A and of Frame B.
When you select the command Open Class for an instance of an object, Plant Simulation moves
up in the inheritance structure until it reaches an object in the Class Library. It then opens the
window of this object.
• When you are working with a Frame, the command opens the window of the Frame class
in the Class Library.
• When you are working with a Method, the command opens the window of the Method class
in the Class Library.
• When you are working with a List, the command opens the window of the respective List class
in the Class Library.
Instead, you can also click the object with the right mouse button and click the button on the mini
When you hold down the Shift key while clicking the button, Plant Simulation shows the location
of the class of the object.
Related Topic
Derive
• When you are working with an object, the command opens the dialog window of that object in
the 3D Viewer or vice versa.
Related Topic
_3D.openWindow
Paste Objects
Paste Objects
The command Paste (Objects) pastes the contents of the clipboard into the Frame.
• When you are working with a Frame, the command Paste pastes the contents of the clipboard
into the Frame at the position of the mouse pointer.
• When you are working with a List, the command Paste pastes the contents of the clipboard into
the list/table. Provided both lists have the same structure, you can insert part of a copied list into
another list. Plant Simulation pastes entire rows or columns as a whole and does not touch
adjacent rows or columns.
• When you are working with a Method, the command Paste pastes the contents of the clipboard
at the position of the cursor.
• When you are working with the Icon Editor, the command Paste pastes the copied icon from the
clipboard.
When you selected an object in 3D, the subcommand Multiple Paste is activated.
When you click the Paste button or select the menu command Paste on the context menu, the 3D
Viewer pastes the object to the coordinates retrieved from the object in the clipboard. The command
pastes the object into the opened object, regardless of the selection.
For objects the 3D Viewer might change the position, i.e., the coordinates, at which the object from
the clipboard will be pasted, depending on the position at which other objects are located at:
• When any other object is already located at the destination coordinates of the object on the
clipboard, the 3D Viewer pastes the copy using the offset you enter under Offset in the dialog
Multiple Paste.
• When another object is located at the position determined by the offset, the 3D Viewer repeats
the offset until no object is located at the destination. To move the object to the location of your
choice, click it and drag the mouse.
Instead, you can also click the object with the right mouse button and click the button on the mini
Multiple Paste
The command Multiple Paste opens the dialog Multiple Paste. It provides the dialog items Number
of copies, Offset, and the Paste button.
Number of copies — Enter the number of objects you would like to paste into the active scene,
including the first copy, here. You can also use the up and down arrows of the spin button to increase
or decrease the number.
When you enter the number 5, for example, the 3D Viewer pastes 5 objects. Enter an integer greater
than zero. Enter 1 to have the 3D Viewer perform the default paste operation, i.e., paste the object
from the clipboard once.
Offset — Enter the offsets on the X, Y, and Z axes into the text boxes below X-Offset, Y-Offset, and
Z-Offset. The 3D Viewer inserts objects you paste using the offset(s) on the axis or axes you set.
The 3D Viewerplaces the first pasted object at the position defined by the distance of the offset from
the original location!
Paste — To paste multiple copies of the object and to close the dialog, click Paste. The
3D Viewer uses the number and the Offset you selected.
Related Topic
Simultaneously Paste Multiple Copies
Cut Objects
• When you are working with a List, the command Cut Objects cuts the selected cell or range of
cells of the list/table to the clipboard. From there you can insert it anywhere into the same or
into other lists.
Click into the cell at which the range you want to cut starts and drag the mouse to the cell at which the
range ends. The list grays the range of cells out and you may then Cut it to the clipboard. Note that
Plant Simulation removes the cells you cut from the list and moves the following cells up. Click the
row index to select an entire row of cells, click the column header to select an entire column of cells,
which you want to cut, i.e., to delete from the list.
• When you are working with a Method, the command Cut Text cuts the selected source code
to the clipboard.
Instead, you can also click the object with the right mouse button and click the button on the mini
If the object you cut has derivatives, i.e., objects that were derived and inherit settings from
it, the 3D Viewer opens a dialog asking you to confirm that these derivatives will be deleted.
Copy Objects
The command Copy Objects copies the selection and places it onto the clipboard.
• When you are working with a Frame, the command Copy Objects copies the selected objects
to the clipboard.
• When you are working with a List, the command Copy Objects copies the selected cell or
range of cells to the clipboard.
To copy comments, which you enter into the text box Show Comment, click the right
mouse button and select Copy on the context menu!
• When you are working with a Method, the command Copy Text copies the selected source
code to the clipboard.
• When you are working with an object which you copy in a window in the 3D Viewer,
the command copies the path of the object. You can then paste that path, for example,
.Models.Frame.SingleProc into a Method or a Comment.
• When you are working with an object which you copy in a window in the 3D Viewer, the
command copies the following statement. You can then paste that statement, for example,
.Models.Frame._3D.getObject("MyAnimatableObject"), into a Method or a Comment.
• When you are working with a graphics object which you copy in a window in the
3D Viewer, the command copies the following statement. You can then paste that
statement, for example, .Models.Frame._3D.«method»(makeArray(0), «Parameters»)
, .Models.Frame._3D.«method»(makeArray(0), «Parameters», "Group2") ,
.MaterialFlow.Robot._3D.getObject("ZAxis").«method»(makeArray(0), «Parameters»), into
a Method or a Comment.
Instead, you can also click the object with the right mouse button and click the button on the mini
Delete Objects
The command Delete Objects deletes the selected object. Be aware that you cannot undo a delete
action!
• When you are working with a Frame, the command Delete Objects deletes the selected object
from the Frame.
• When you are working with a List, the command Delete Cells cuts the selected cell or range
of cells from the list/table.
Click into the cell at which the range you want to cut starts and drag the mouse to the cell at which the
range ends. The list grays the range of cells out and you may then Cut it to the clipboard. Note that
Plant Simulation removes the cells you cut from the list and moves the following cells up. Click the
row index to select an entire row of cells, click the column header to select an entire column of cells,
which you want to cut, i.e., to delete from the list.
• When you are working with a Method, the command Delete Text deletes the selected source
code.
Plant Simulation opens a dialog in which you can confirm that you want to delete the selected object(s)
• Click Yes to delete the object. Hold down the Shift key and click Yes to delete all selected objects.
You can deactivate the confirmation query by selecting the check box Confirm under File >
Preferences > Modeling > Delete objects.
You can also or press the Del key.
Related Topic
deleteObject
Select All
The command Select All selects everything.
• When you are working with a Frame, the command Select All selects all objects located in the
Frame. Instead, you can also press Ctrl+A.
• When you are working with a list, the command Select All selects the entire list, i.e., all cells
containing an entry.
• When you are working with a Method, the command Select All selects the entire source code.
Rename
The command Rename opens the dialog Rename, where you change the name and the label of
the selected model or of the selected object.
• Enter a new Name for the simulation model or object.
• To accept the new name and close the dialog window, click OK.
• To accept the changes, and keep the dialog window open, click Apply.
Instead, you can also right-click the object in the Frameand select Rename on the context menu.
Delete MUs
The command Delete MUs deletes all Mobile Objects on all objects in all Frames, which the
EventController controls, to which the active Frame belongs.
Related Topic
DeleteMUsOnReset
Edit Icons
The command Edit Icons opens the Icon Editor where you can edit, add or delete icons of the
selected object.
Related Topic
openImg
The command Edit Display Panel opens the Display Panel of the selected object. Here you can add
a new display panel to the selected object or edit, or delete an existing display panel.
3D models do not provide this command as they do not show display panel.
Edit 3D Properties
Edit 3D Properties
The Edit 3D Properties provides all of the 3D settings relating to the selected object or graphic.
The dialog shows different tabs for point-oriented objects and for length-oriented objects.
The dialog shows the values, which you enter into the text boxes, in the unit, which you
select under Preferences/Model Settings > Units.
• Holding down the Shift key changes the value in 1.0 steps when clicking the buttons.
• Holding down the Ctrl key changes the value in 0.01 steps when clicking the buttons.
• You can view or change the Name of the object or of the graphic.
• You can specify transformation settings for graphics on the Tab Transformation.
• You can specify settings for the background color of the Frame or of the folder on the Tab
Background.
• You can select if the graphic of the object is an obstacle for the Worker on the Tab Graphic
Settings.
• You can define the surface qualities of the graphics, which are used for the MUs and for the
Worker on the Tab Appearance of the MUs. You might, for example, override the color when you
activated vector graphics on the Tab Graphics of the MUs in 2D.
• You can define the configuration of the Store in 3D on the Tab Appearance of the Store.
• You can specify settings for the material of graphics on the Tab Material.
• You can define extrusion settings for objects which are length-oriented in 3D on the Tab Extrusion.
• You can specify settings for the animation of the parts on the material flow object on the Tab
MU Animation.
All material flow objects provide this tab.
• You can specify settings for the animation of those objects, which you can insert into a Frame,
and for the objects on the Tab Self Animation.
All material flow objects provide this tab.
• You can specify settings for the animation of the robot arm of the Pick-and-Place Robot on the
Tab Robot Arm Animation.
Only the Pick-and-Place Robot provides this tab.
• You can specify settings for the camera animation of the Frame on the Tab Camera Animation.
Only the Frame provides this tab.
• You can specify point cloud settings for the Frame on the Tab Point Cloud.
• You can activate or deactivate graphic inheritance and the inheritance of the visibility and
select settings for visibility of the object towards the outside on the Tab Graphics. In addition, you
can click Graphic Structure to show the graphics structure of this object and set if the object is
an obstacle for the worker or not.
• You can activate or deactivate captions, which you created, on the Tab Captions. You can show
or hide the Names and/or Labels of the objects in 3D by clicking on the View
ribbon tab.
• You can set graphic sequences, which the Worker uses when he is just walking or walking and
carrying a part on a Footpath on the Tab Graphic Sequences. This ensures that the Worker looks
as realistic as possible in your simulation model.
• You can click Open 2D Dialog or Open to open the dialog of the selected object in Plant
Simulation 2D.
• You can click Preview Changes to preview your changes to the settings on the
respective tab in the scene window without having to click Apply.
The button is only active for the Tab Transformation and the Tab Extrusion.
• The Navigate Menu, The View Menu, The Tools Menu, and The Help Menu provide additional
commands.
When you are working in the 2D part of your model, you can click Edit 3D Properties on the Home
ribbon tab.
Name
The 3D Viewer shows the current name of the object here. You can leave it as it is or change it by
entering a name of your choice. To change the name, double-click and overtype it. You can also
enter a name that is invalid in 2D. If you want to, you can also leave the text box empty.
SimTalk
_3D.setGraphicName
_3D.getGraphicName
Related Topic
Name of the object in Plant Simulation 2D
Tab Transformation
Tab Transformation
On the tab Transformation you can define Settings for the Position, Settings for the Rotation,
Settings for Mirroring, and Settings for the Scale. To do so, you can use enter values into the
text boxes or use the up and down arrows of the spin buttons. The settings here allow you exact
control, as compared to modifying the position, the angle of rotation and the scale of the object in
the scene window with the mouse.
For the MUs you can also select if you want to scale them automatically or not.
• To preview your changes in the scene window without having to click Apply, click Preview
Changes.
• To apply and show your changes of the settings to the selected object in the scene window,
click Apply.
• To apply your changes of the settings to the selected object and close the dialog, click OK.
• To close the dialog without applying any of the settings you modified, click Cancel.
SimTalk:
_3D.setGraphicTransformation
_3D.setGraphicTransformationMatrix
_3D.TransformationMatrix
Related Topic
Manipulate an Object Precisely
Enter a value into the text box, or click the spin buttons to move the position of the selected object
on the x-axis, the y-axis and the z-axis. The settings for the three axes are independent of each other.
To move the object by 0.01 meters, click the mouse into the respective text box, hold down the
Ctrl key and roll the mouse wheel.
For MU instances the settings for the position show the local positions calculated by the animation.
The toggle button activates or deactivates inheritance of the position .
• A green button means that inheritance is active. Then the object inherits, i.e., uses, the position
of the parent object from which it was derived. When you modify the position of the parent object,
the program also modifies the position of the child object.
SimTalk:
_3D.Position
_3D.importGraphics
_3D.setGraphicPosition
_3D.getGraphicPosition
To match the position of the object in the Plant Simulation part of the simulation model with the
position of the corresponding object in the 3D Viewer part, select this.
The example illustrates this:
• Insert a SingleProc into the Frame into the 3D Viewer part of a simulation model. Plant Simulation
automatically inserts the SingleProcinto the Framein its part of the model.
Plant Simulation maps the x-y coordinates of the 3D Viewer object to the corresponding
position of the SingleProc in the Framein the Plant Simulation simulation model. Expert
users can edit how coordinates are mapped with the command File > Scaling Factor
in the Plant Simulation Frame.
• Select Connect positions. When you move the SingleProc in the 3D Viewer part of the model
now, the SingleProc in the Plant Simulationpart of the model also moves to a position that matches
the position of the SingleProc in the 3D Viewer. The position of the object in Plant Simulation will
be coupled to the position of the object in the 3D Viewer until you clear the check box again!
Related Topics
_3D.PositionsConnected
Use Identical Lengths and Positions
Move to Zero
To move the selected grouped graphic (with the center of its base area) to the point of origin of the
object it belongs to, click this. This is especially handy when you import graphics, such as .wrl files,
which the 3D Viewer might not place at the position you expected.
SimTalk:
_3D.Position
_3D.importGraphics
_3D.setGraphicPosition
_3D.getGraphicPosition
To set the axis around which to rotate the object, enter a value for each of the three components
(x-y-z) that define the rotation axis.
Instead, you can also click the button to the right of the respective axis to set the rotation axis. Plant
Simulation then enters the respective values into the text boxes.
Enter the angle of rotation in degrees into the text box.
When you set a rotation around the z-axis for an object that is length-oriented in 2D and in
3D, Plant Simulation converts the rotation into a polycurve and resets the angle to 0.
SimTalk:
_3D.Rotation
_3D.setGraphicRotation
_3D.getGraphicRotation
Related Topics
Rotate an Object Manually
To match the rotation of the object in the Plant Simulation part of the simulation model with the
rotation of the corresponding object in the 3D Viewer part, select this.
The example illustrates this:
• Insert a SingleProc into the Frame into the 3D Viewer part of a simulation model. Plant Simulation
automatically inserts the SingleProcinto the Frame in its part of the model.
Plant Simulation maps the x-y coordinates of the 3D Viewer object to the corresponding
position of the SingleProcin the Frame in the Plant Simulation simulation model. Expert
users can edit how coordinates are mapped with the command File > Scaling Factor
in the Plant SimulationFrame.
• Select Connect rotations. When you move the SingleProcin the 3D Viewerpart of the model
now, the SingleProc in the Plant Simulationpart of the model also moves to a rotation that matches
the rotation of the SingleProc in the 3D Viewer. The rotation of the object in Plant Simulation will
be coupled to the rotation of the object in the 3D Viewer until you clear the check box again!
Related Topics
_3D.RotationsConnected
Use Identical Lengths and Positions
Add Rotation
Only graphics, objects which do not have a counterpart in 2D, and point clouds provide
this button.
To add a rotation angle to the axis that you select, click this.
Enter the angle which you would like to add to the axis that you select.
Select the axis to which you would like to add the angle.
Click OK to accept the values and to add the angle to the existing angle. Click Apply to show the
result in the scene window.
Select the respective check box to mirror/flip the selected object on this plane.
If your model also has a 2D part, the object will be mirrored there as well.
SimTalk:
_3D.Mirror
To apply uniform scaling, accept the default setting. To apply scaling the selected object on the
respective axis separately, clear Uniform and enter a value into the text boxes for the x-axis, the
y-axis and the z-axis to scale. Note that you can only enter positive values, meaning that you cannot
downscale the object below the size defined in the Class Library. Entering 0.5, for example, halves
the size of the object, entering 2.0 doubles its size.
The toggle button activates or deactivates inheritance of the scale .
• A green button means that inheritance is active. Then the object inherits, i.e., uses, the scale of
the parent object from which it was derived. When you modify the scale of the parent object, the
program also modifies the scale of the child object.
Uniform — To automatically enter the value you entered into one text box into the
remaining two text boxes for scaling the object, select this. This way you do not have to manually
enter the same value into each text box over again.
SimTalk:
_3D.Scale
_3D.setGraphicScale
_3D.getGraphicScale
_3D.StatesScale
Scale automatically
To adjust the size and positioning of the graphic of the MU to the measurements and the booking
point of the MU in 2D, select the check box Scale automatically. The 3D Viewer then hides the
settings for scaling the MU.
If you would like to set the scaling of the MU yourself, clear the check box and select the settings
for scaling.
SimTalk:
_3D.ScaleAutomatically
Tab Background
Tab Background
On the tab Background you can define the background color of the selected Frame.
You can:
• Select to Assign a background color of its own. Once you select the check box, the 3D Viewer
activates the other settings on the tab.
• Select settings for the Corner brightness of the four corners of the Frame window.
If you do not define a background color, the 3D Viewer uses the background color of
the parent object of the selected object.
Related Topic
Set the Background Color of the Scene
To assign a background color to the selected Frame, select this. The 3D Viewer activates the other
settings on the tab.
If you do not want to assign a background color to the selected Frame/scene, deactivate the
checkbox. The 3D Viewer then uses the background color of the parent Frame of the selected Frame.
SimTalk:
_3D.BackgroundColor
Base color
Select the base color for the background of the Frame from the drop-down list. You can select one
of the predefined colors or you can click More Colors and click the Select button to select a color
in the color matrix. Then click OK. Plant Simulation shows this color next to More Colors and
uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
In addition you can change the Corner brightness of the four corners of the scene window.
SimTalk:
_3D.BackgroundColor
Corner brightness
To define a color gradient, i.e., the brightness of the background color, first select the Base color.
Then drag the slider for each of the four corners of the Frame window to make the respective corner
darker or brighter. The top left slider sets the settings of the top left corner of the Frame window, etc.
SimTalk:
_3D.BackgroundBrightness
On the tab Graphic Settings you can select if the selected graphic is an obstacle for the worker or not.
In addition the tab shows the dimensions of the graphic. You can copy the individual values and paste
them at another location where you need to use them.
Tab Material
Tab Material
On the tab Material you can define the surface qualities of the selected graphic: how well it reflects
light, what color it reflects, and what color it emits.
You can:
• Make the Material active or inactive.
To activate the settings for the material, select Material active . To reset all settings of
the selected object to the values the text boxes had, when you opened the dialog, clear the check box.
To apply and display your changes of the settings to the selected object in the scene window and
leave the dialog window open, click Apply.
To apply your changes of the settings to the selected object and close the dialog window, click OK.
To close the dialog without applying any of the settings you modified, click Cancel.
When you define materials for a graphic in the graphic structure at different levels in the
structure, the 3D Viewer always uses the material that is located furthest down in the
structure for the actual rendering.
SimTalk:
_3D.setGraphicMaterial
Related Topics
Set the Material of a Graphic
Material active
To activate the settings for the material, select .
To reset all settings pertaining to the material of the selected object to the values the text boxes had,
when you opened the dialog, clear the check box.
SimTalk:
_3D.setGraphicMaterial
_3D.removeGraphicMaterial
_3D.MaterialActive/link
Diffuse color
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
By default, the 3D Viewer shows the MUs with the color of the material flow objects on
which they are located. If you assign different colors to the material flow objects, the parts
naturally change their color, when they move from object to object.
To prevent this, you have to assign a material to the graphic of the material flow object.
SimTalk:
_3D.setGraphicMaterial
Related Topics
Set the Material of a Graphic
Ambient color
Specular color
Specular reflection is the perfect, mirror-like reflection of light from a surface, in which light from a
single incoming direction is reflected onto a single outgoing direction.
This is in contrast to diffuse reflection, where incoming light is reflected in all directions equally. A
familiar example of the distinction between specular and diffuse reflection are matte and glossy, which
you use in home painting. Matte paints have a higher proportion of diffuse reflection, while glossy
paints have a greater proportion of specular reflection.
Be aware that specular reflection and diffuse reflection are approximations. In reality, surfaces exhibit
a continuum of modes of reflection between these two.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulationshows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
SimTalk:
_3D.setGraphicMaterial
Related Topics
Set the Material of a Graphic
Emissive color
Transparency
To set the Transparency, i.e., how opaque or clear the object is, drag the slider. Water, for example,
might be more clear than opaque.
You can also enter a value between 0.0, for opaque, and 1.0, for completely transparent, into the
text box.
SimTalk:
_3D.setGraphicMaterial
Related Topics
Set the Material of a Graphic
Shininess
To set the Shininess , i.e., how sharp light is reflected by the object, drag the slider. A billiard ball, for
example, has a large shininess, making for small and sharp highlights.
You can also enter a value between 0.0, for a very dull surface, and 1.0, for a highly polished surface,
into the text box.
SimTalk:
_3D.setGraphicMaterial
Related Topics
Set the Material of a Graphic
To copy the current material settings you selected, click the button. You can then paste these
settings into the graphic of another object.
The command also copies the corresponding SimTalk code to the clipboard. You can then paste
this code into a Method object to set the material of another graphic. The syntax is described under
Generate SimTalk Code and Copy to Clipboard.
To paste the material settings that you copied to the graphic of the object, click this button.
You also paste the source code, which the command Copy the Current Material Settings copied,
into a Method object to set the material of the selected graphic. The syntax is described under
Generate SimTalk Code and Copy to Clipboard.
You can also paste a material from the Clipboard when the material is not active. The 3D Viewer
the automatically activates a material that was not active before.
To remove the materials in nested graphics, i.e., the materials of the graphics contained within
this object, click this button.
Related Topics
_3D.removeGraphicMaterial
On the tab Appearance you can define the surface qualities, i.e., the material of the selected MU
and of the Worker: How well it reflects light, what color it reflects, and what color it emits.
Graphic inheritance and appearance are not connected. This means that the graphic
can also be inherited for automatically generated graphics, for example to inherit graphic
groups which you can show in addition to the default graphic.
When the 3D Viewer automatically generates the graphic, this action always refers to the default
alternative graphic named default, which is thus excluded from graphic inheritance. This applies
to length-oriented objects, to the objects Comment and Variable, to folders, and to MUs for which
you selected Auto graphics active.
You can:
• Automatically create graphics by selecting or clearing Auto graphics active.
• Override the color of the vector graphics of the MUs by selecting or clearing Material active.
To activate the settings for the color, select Material active . To reset all settings of the
selected object to the values the text boxes had, when you opened the dialog, clear the check box.
To apply and display your changes of the settings to the selected object in the scene window and
leave the dialog window open, click Apply.
To apply your changes of the settings to the selected object and close the dialog window, click OK.
To close the dialog without applying any of the settings you modified, click Cancel.
Related Topics
Built-in Attributes for the Appearance of the MUs in 3D
Tab Graphics > Vector graphics active in 2D
Configure the Individual Stations
Material active
To define a color of your own with the settings of the tab, select Material active. Then, the 3D Viewer
activates the settings for defining the material.
The default vector graphic of the MU in 2D looks like this , of the Container it looks like this ,
and of the Transporter it looks like this .
SimTalk:
_3D.MaterialActive
Diffuse color
By default, the 3D Viewer shows the MUs with the color of the color flow objects on which
they are located. If you assign different colors to the color flow objects, the parts naturally
change their color, when they move from object to object.
To prevent this, you have to assign a color to the graphic of the material flow object.
SimTalk:
_3D.MaterialDiffuseColor
Related Topic
Set the Material of a Graphic
Ambient color
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
SimTalk:
_3D.MaterialAmbientColor
Specular color
Emissive color
_3D.MaterialEmissiveColor
Transparency
To set the Transparency, i.e., how opaque or clear the object is, drag the slider. Water, for example,
might be more clear than opaque.
You can also enter a value between 0.0, for opaque, and 1.0, for completely transparent, into the
text box.
SimTalk:
_3D.MaterialTransparency
Shininess
To set the Shininess, i.e., how sharp light is reflected by the object, drag the slider. A billiard ball, for
example, has a large shininess, making for small and sharp highlights.
You can also enter a value between 0.0, for a very dull surface, and 1.0, for a highly polished surface,
into the text box.
SimTalk:
_3D.MaterialShininess
To copy the current material settings you selected, click the button. You can then paste these
settings into the graphic of another object.
The command also copies the corresponding SimTalk code to the clipboard. You can then paste
this code into a Method object to set the material of another graphic. The syntax is described under
Generate SimTalk Code and Copy to Clipboard.
Related Topic
Paste Material Settings
To paste the material settings that you copied to the graphic of the object, click the button.
You also paste the source code, which the command Copy the Current Material Settings copied into a
Method object to set the material of the selected graphic. The syntax is described under Generate
SimTalk Code and Copy to Clipboard.
Related Topic
Copy Current Material Settings
Graphic inheritance and appearance are not connected. This means that the graphic
can also be inherited for automatically generated graphics, for example to inherit graphic
groups which you can show in addition to the default graphic.
When the 3D Viewer automatically generates the graphic, this action always refers to the default
alternative graphic named default, which is thus excluded from graphic inheritance. This applies
to length-oriented objects, to the objects Comment and Variable, to folders, and to MUs with Auto
graphics active.
You can:
Type
SimTalk:
_3D.StoreType
Width
Depth
Height
Click into the color palette next to storage area material to assign a color to the storage area of the
Store in the Dialog Material.
Command Attribute
Material active _3D.StorageAreaMaterialActive
Diffuse color _3D.StorageAreaMaterialDiffuseColor
Ambient color _3D.StorageAreaMaterialAmbientColor
Specular color _3D.StorageAreaMaterialSpecularColor
Emissive color _3D.StorageAreaMaterialEmissiveColor
Transparency _3D.StorageAreaMaterialTransparency
Shininess _3D.StorageAreaMaterialShinines
Copy Current Material Settings —
Paste Material Settings —
Related Topics
Tab Material
Set the Material of a Graphic
Post material
Click into the color palette next to post material to assign a color to the posts of the rack in the
Dialog Material.
Command Attribute
Material active _3D.PostMaterialActive
Diffuse color _3D.PostMaterialDiffuseColor
Ambient color _3D.PostMaterialAmbientColor
Specular color _3D.PostMaterialSpecularColor
Emissive color _3D.PostMaterialEmissiveColor
Transparency _3D.PostMaterialTransparency
Shininess _3D.PostMaterialShininess
Copy Current Material Settings —
Paste Material Settings —
Related Topics
Tab Material
Set the Material of a Graphic
For the length-oriented objects, the dialog shows the tab Appearance. Here you can specify the
properties that define different types of conveyors.
You can:
• Open and edit the Segments table of the extruded object.
• Select the Type of conveyor which you want to insert into your simulation model. Depending on
the type you select, the dialog shows settings for the legs, the lanes, and the frame around
the object pertaining to the selected type. When you click Apply, the 3D Viewer inserts the
configured length-oriented object into the scene.
Related Topics
Attributes and Methods for Creating Length-oriented Objects
Attributes and Methods for Creating Extrusion Profiles
Segments
The settings of the segments table are described in detail under Segments in the 2D part of the
Online Help.
SimTalk:
_3D.getExtSegments
_3D.setExtSegments
Related Topic
Segments table in 2D
Base height
SimTalk:
_3D.BaseHeight
Related Topics
Segments table in 2D
Base height in 2D
Width
Enter the width of the length-oriented object. The width only applies when the setting Transfer
length in 2D is activated.
SimTalk:
_3D.Width
Related Topic
Width in 2D
Configuration
Configuration
You can:
• Select the Type of conveyor and the settings that pertain to that conveyor.
SimTalk
_3D.ExtConfiguration
Conveyor type
Type
Select the type of conveyor you want to use in your simulation model. Depending on the type you
select, the dialog shows the settings pertaining to that type. When you click Apply, the 3D Viewer
inserts the configured length-oriented object into the scene.
• Track
• Belt conveyor
• Roller conveyor
• Rail conveyor
• Tube conveyor
• Chute conveyor
• Suspension track
User-defined
For a length-oriented object of type user-defined, you can add, edit, or delete extrusion profiles
on the tab itself.
To add a new extrusion profile, click Add. Then enter the name of the profile into the text box path
name in the dialog that opens. The 3D Viewer adds the new profile with this name to the bottom
of the list.
To delete the extrusion profile that you selected in the list, click Delete.
To edit the extrusion profile that you selected in the list, click Edit in the cell under Profile.
The list on the tab shows these settings for the selected conveyor:
Type
Related Topic
_3D.ExtConfiguration
Track
For a length-oriented object of type Track, you can select settings for its Legs and for its Lanes.
Belt conveyor
For a length-oriented object of type belt conveyor, you can select settings for its Legs, for its Lanes,
and for the Frame around it.
Roller conveyor
For a length-oriented object of type roller conveyor, you can select settings for its Legs, for its
rollers, and for the Frame around it.
For the roller conveyor the 3D Viewer shows the group box rollers instead of Lanes.
You can:
• Click material and select the material of the rollers of the conveyor.
Rail conveyor
For a length-oriented object of type rail conveyor, you can select settings for its Legs, for its rail
bars and for the Frame around it.
For the rail conveyor the 3D Viewer shows the group box rail bars instead of Lanes.
You can:
• Click material and select the material of the rail bars of the conveyor.
• Enter the count, i.e., the number of rail bars you want to insert.
• Select if you also want to insert crossbars for additional stability by activating the check box.
• Click material and select the material of the crossbars that stabilize the rail bars of the rail
conveyor.
• Enter the distance of the crossbars that stabilize the rail bars against each other.
Tube conveyor
For a length-oriented object of type tube conveyor, you can select settings for its Legs and for
the tube.
For the tube conveyor the 3D Viewer shows the group box tube instead of Lanes.
You can:
• Click material and select the material of the tube of the conveyor.
Chute conveyor
For a length-oriented object of type chute conveyor, you can select settings for its Legs and for
the chute.
For the chute conveyor the 3D Viewer shows the group box chute instead of Lanes.
You can:
• For the chute type rails, you can enter how many rails support the chute, i.e., the count.
Suspension track
• Select where the legs are placed along the length of the inserted conveyor, i.e., the multiplicity:
• With a repeated fixed distance from each other, i.e., equidistant. Enter the distance between
the individual pairs of the suspension device.
• Click material and select the material of the suspension device that suspends the suspension
track from the ceiling of the plant.
• Enter the ceiling height of the suspension track. This is the distance between the suspension
track and the ceiling of the plant.
• Click material and select the material of the rail bars of the conveyor.
Legs
• Select where the legs are placed along the length of the inserted conveyor, i.e., the multiplicity:
• With a repeated fixed distance from each other, i.e., equidistant. Enter the distance between
the individual pairs of legs from each other.
• Click material and select the material of the legs of the conveyor.
You can select one of the following leg types for the conveyor:
• None
• Round
• Square
The conveyor has square legs.
The conveyor has square legs with crossbars connecting the left and right leg pairs for additional
stability.
• Not defined
Leaves the settings of an existing conveyor untouched, i.e., does not change any of its settings.
Lanes
Frame
Tab MU Animation
Tab MU Animation
On the tab MU Animation you can define how the parts (MUs) are animated on the material flow
objects. Note that the Frame also counts as a material flow object.
The tab looks slightly different for point-oriented objects and for length-oriented objects.
You can:
• Enter the name of the Animation object and select the MU side to attach.
• For the length-oriented objects you can add an Animation offset and activate or deactivate
Gravity mode.
• Click Add > Rotation path (lines) to add a rotation path to the point-oriented and to the
length-oriented objects.
• Activate Animation area to create storage places on the object with matrix loading area
(ParallelProc, Sorter, Store, Transporter, and Container).
Introducing MU Animation — The MU Animation, i.e., showing the MUs on the material flow objects
during the simulation, is entirely controlled by Plant Simulation 2D. This means that you cannot play
an animation for a part without this animation being triggered by an event in Plant Simulation 2D.
You can only intervene in animation by defining animation paths and animation points and redirecting
an animation onto another one.
The simulation object, i.e., the object on which the part is located in Plant Simulation 2D, determines
which animation will be played in 3D by default:
• When the 3D Viewer does not find the MU animation path, which is to be used, it does not
animate the MU.
• The TwoLaneTrack uses the paths named A or B depending on the lane on which the MU moves.
• The Converter uses the path named Default for lengthwise movements and Cross for crosswise
movements.
• An object with a matrix loading space uses the paths getAnimation(x, y) or #<x-1>#<y-1>
respectively. This applies, for example, for the ParallelProc.
• A Transporter with active loading spaceu ses the path named Line.
• The PickAndPlace-Robot uses the path named Default as long as it exists. Otherwise the first
MU uses the first path, the second MU uses the second path, etc.
• In all other cases the 3D Viewer uses the path named Default.
You can redirect the MU Animation to another animation with the method
_3D.MUAnimations.AnimationPathName.redirectTo.
Related Topics
Animation object
Enter the name of the alternative animation object of the object. This applies for each and every
2D-object which can accept MUs.
SimTalk:
_3D.AnimationObject
MU side to attach
Select the side on which the loaded MU will be attached to the object. Due to the type of part the
processing stations or the means of transport can pick the part up at different points.
• Bottom: Attaches the loaded MU to the object from the bottom, i.e., from the negative z-direction
to this object. A typical application is a station on which an MU is carried on its center of gravity,
for example a most of the length-oriented objects.
• Booking point: Attaches the loaded MU to the object from the bottom, i.e., from the local position
(0, 0, 0) to this object. The local position is the position which you set on the tab Attributes in
the dialog of the MU.
• Top: Attaches the loaded MU to this object from the top, i.e., from the positive z-direction. A
typical application is a station on which an MU is attached on its center of gravity, for example an
overhead rail system.
• Front: Attaches the loaded MU to this object from the front, i.e., from the positive x-direction.
• Back: Attaches the loaded MU to this object from the back, i.e., from the negative x-direction.
• Left: Attaches the loaded MU to this object from the left hand side, i.e., from the negative
y-direction.
• Right: Attaches the loaded MU to this object from the right hand side, i.e., from the positive
y-direction.
• Center bottom: Places the loaded MU with the middle of the base plate of its dimensions onto
the animation path of the transporting object. A typical application is a station on which an
MU is placed planar.
The 3D Viewer uses the MU size/dimension of the MU which is entered on the tab Attributes
of the MU.
For the PickAndPlace-Robot and its animatable objects the following applies:
• Front: Plant Simulation applies a rotation of 90° around the y-axis, followed by a rotation
of 180° around the z-axis.
Thereby these four settings and the setting Top should point to the respective face normals for
an unrotated animation path.
The settings for Bottom apply the same orientation as Top, i.e. the orientation that is used by all
other objects as well.
SimTalk:
_3D.MUSideToAttach
Animation paths
Animation paths
You can:
• Add a new animation path.
Related Topics
Working with Paths
Animation Paths
Add Animations and Interactions to the Simulation Objects
Add
Add
Path name
Enter a meaningful name for the animation path you are creating.
Path type
Path type
• A Polycurve path consists of the vertices of a curved object, i.e., a sequence of curved and
straight lines, on which MUs are animated, when they are transferred onto a material flow
• A Spline path consists of the vertices, i.e., the anchor points of a spline curve.
• A Rotation path (Lines) consists of straight lines or a sequence of straight line joined by vertices.
These set the area, the axis, and the center of rotation of the MU.
To create a rotation path for the selected object, select the path type > Rotation path (Lines) in
the dialog Create Animation Path. A rotation path consists of straight lines or of a sequence of
straight line which are connected through vertices. These set the area, the axis, and the center
of rotation of the MU.
The 3D Viewer opens the dialog Create Rotation Path. Set how the 3D Viewer rotates the parts which
the selected object processes on the path that you create.
• Select the Start angle, the End angle, and the Radius of the rotation.
To edit the rotation path, select it in the list of animation paths and click Edit. Edit the values of the
path anchor points in the dialogs, which are opened.
Related Topics
_3D.TypeOfAnimations.createAnimationCurve
_3D.TypeOfAnimations.createAnimationLine
_3D.TypeOfAnimations.createAnimationSpline
Start angle
Enter the angle in degrees where the rotation starts. The start angle has to differ from the end angle,
otherwise the 3D Viewer does not rotate the object. To rotate the MU counter-clockwise, the start
angle has to be greater than the end angle. You can also enter a value greater than +360 degrees
and less than -360 degrees.
Related Topic
End angle
End angle
Enter the angle in degrees where the rotation ends. The end angle has to differ from the start angle,
otherwise the 3D Viewer does not rotate the object. To rotate the MU clockwise, the end angle
has to be greater than the start angle. You can also enter a value greater than +360 degrees and
less than -360 degrees.
Related Topic
Start angle
Radius
Axis X/Y/Z
Select the axis around which you would like to rotate the MU:
• Click X to rotate the MU around the X direction.
• Click Z to rotate the object around the Z direction. We set the Z axis so that an end angle greater
than the start angle rotates the MU clockwise.
Center
To set the center of the rotation, i.e., the point around which the 3D Viewer rotates the MU:
• Type in a value for the X position of the center of rotation into the text box X.
• Type in a value for the Y position of the center of rotation into the text box Y.
• Type in a value for the Z position of the center of rotation into the text box Z.
Extend
To add a new anchor point to the path, thus making it longer, click this. Then click the left mouse
button at the position, where you would like to insert the anchor point. Repeat this as often as needed.
To terminate Extend path mode, click the right mouse button.
You can only navigate in Extend Path mode with the middle and the right mouse button if you
hold down the Ctrl+Alt keys.
Edit
Edit
To edit the anchor points of the path you selected, click this.
You can:
• Add a new anchor point.
• Move the selected anchor point up one position in the list or move it down one position in the list.
• Click Edit Values to edit the values of the selected anchor point or double-click the row of the
anchor point, whose values you want to change, in the list.
• Hide or show the selected path by clicking the cell under animation paths.
Add
To add a new anchor point to the object, click . The list window shows theses settings.
You can then edit the individual values.
Insert Before
To insert a new anchor point before the anchor point, which you selected in the list window, click this.
The list window shows theses settings. You can then edit the individual values.
Delete
To delete the selected anchor point from the list, click this.
Move Up
To move the selected anchor point one position up in the list, click this.
Move Down
To move the selected anchor point one position down the list, click this.
Duplicate
To duplicate the settings of the selected anchor point and to insert the duplicate below the original in
the list, click this.
Edit Values
Edit Values
To edit the values of the anchor point which you selected in the list, click this. Instead, you can also
double-click the row of the anchor point, whose values you want to change, in the list.
The dialog of a path of type Lines provides these settings:
You can edit these settings for the different path types:
• Position for Lines, Polycurves, Splines, Rotation path (Lines)
Position
Enter a value into the text box, or click the spin buttons to move the position of the selected
anchor point on the x-axis, the y-axis and the z-axis. The settings for the three axes are independent
of each other.
Rotation
To set the axis around which to rotate the anchor point, enter a value for each of the three components
(x-y-z) that define the rotation axis.
Segments
Related Topic
Insert Curved and Straight Segments
Velocity
The text box length shows the length of the anchor point.
Enter the time, which is required for point-oriented movements, such as rotating around or remaining
on the selected anchor point.
To add a common offset to the selected anchor point of a path of type Lines or Spline, click this.
• Enter a value for the position into the text box, or click the spin buttons to add a common
offset to the position of the selected anchor point on the x-axis, the y-axis, and the z-axis. The
settings for the three axes are independent of each other.
• Enter the angle of rotation for the common offset into the text box.
To define the viewing direction of the anchor point which you selected in the list, click this.
You can select the direction type, i.e., where the x-axis of the animated object points to for the
selected anchor point.
• Look along the path on the selected object.
• Look towards an object. Then, select an object in the active scene from the list target object.
• Look towards a position. Then, select the target position on the x-axis, the y-axis, or the
z-axis.
• Look in a direction. Then, enter the direction on the x-axis, the y-axis, or the z-axis.
You can also select if the viewing direction points backwards by selecting .
Related Topic
Look at Object
Show in View
To show the selected camera settings in the active 3D Viewer window, click this.
Delete
Animation area
Animation area
The check box Animation Area shows the settings for the animation area. This is the default setting.
If you would like to show the settings for animation paths, clear the check box.
The animation area defines the size of the area on the object on which the 3D Viewer places the
MUs. By default the 3D Viewer uses the bounding box of the selected 3D Viewer object.
Only the objects with matrix loading space provide the settings for the animation area
(ParallelProc, Sorter, Store, Transporter, and Container).
You can:
• Select the orientation of the animation area.
Related Topics
Set the Animation Area of an Object in the 3D Viewer
Animate Bricks on the Animation Area of the Brick Carrier
Animate Brick Carriers on the Animation Area of the Truck
SimTalk
_3D.MUAnimationAreaEnabled
Orientation
Select the orientation of the animation area on which the 3D Viewer places the MUs.
SimTalk
_3D.MUAnimationAreaOrientation
Length
Enter the length of the animation area on which the 3D Viewer places the parts.
You can enter the length as a relative or as an absolute value. Plant Simulation automatically
converts the value to the respective other value.
• The left value designates the relative length of the animation area. You can enter a value
between 0 and any size [0..1..]. This value is used for assignments in SimTalk.
• The right value designates the absolute length of the animation area in meters.
SimTalk
_3D.MUAnimationAreaSize
Width
Enter the width of the animation area on which the 3D Viewer places the parts.
You can enter the width as a relative or as an absolute value. Plant Simulation automatically converts
the value to the respective other value.
• The left value designates the relative width of the animation area between 0 and 1. This value
is used for assignments in SimTalk.
• The right value designates the absolute width of the animation area in meters.
SimTalk
_3D.MUAnimationAreaSize
Center
Type in the values for the X position, the Y position, and the Z position of the center point of the
animation area onto which the 3D Viewer places the parts (MUs). The settings for the center point
allow you to move the storage places that are spaced evenly across the animation area to adapt it
to the 3D graphic. For the ParallelProc the z position of -0.5 m for example prevent the MUs from
hanging in thin air instead of being placed flat onto the processing area.
You can enter the positions for the middle as a relative or as an absolute value. Plant Simulation
automatically converts the value to the respective other value.
• The left value designates the relative X/Y/Z position of the center of the animation area. You
can enter any negative or positive value [..0..1..]. This value is used for assignments in SimTalk.
• The right value designates the absolute X/Y/Z position of the center of the animation area
in meters.
• into several directions at the same time, type in the values into the respective text boxes.
To detect if the number you enter has the desired effect, click Show.
SimTalk
_3D.MUAnimationAreaCenter
MU rotation
Enter a value for each of the three components (X-Y-Z), which define the rotation axis. This way you
define the rotation axis around which the parts on the animation area are rotated.
Instead, you can also click on the button to the right of the axis, to set this component of the rotation
axis. Plant Simulation then enters the respective values into the text boxes.
Enter the angle of the MU rotation in degrees, which you want to add to the rotation axis.
SimTalk
_3D.MUAnimationAreaMURotation
Show/Hide
To show the animation area, click Show. To hide it again, click Hide.
Show Hide
Animation offset
At times you might not want the parts to be placed flush onto the surface of the length-oriented
object but with an offset to this surface. To do so:
• Click the toggle button so that it looks like this .
• Enter the offset of the animation path to the surface of the object along the X direction into the
text box or click the spin buttons to set a positive or a negative offset.
• Enter the offset of the animation path to the surface of the object along the Y direction.
• Enter the offset of the animation path to the surface of the object along the Z direction.
SimTalk
_3D.ExtConfiguration
Gravity mode
To activate gravity mode, select this. To deactivate it, clear the check box.
In gravity mode the part is always placed perpendicular to the floor, either hanging from a rail or
standing up on a rail.
Test path
Test path
The group box Test path provides settings and actions for testing the MU animation path which exists
in the scene. When you start testing the 3D Viewer creates a temporary test object which moves on
the selected animation path.
You can:
• Select the Object, which represents the test object.
• Enter the Factor with which the test object moves on the animation path.
• Select if the test object moves in the forward direction or if it moves Backwards.
The 3D Viewer does not save these settings to the model file.
Object
Select the graphic of any of the MU prototypes which the 3D Viewer uses as the test object, which
moves on the selected animation path.
Factor
Enter a number for the Factor, which the 3D Viewer uses for the animation on the test path.
When you select Backwards, the 3D Viewer automatically enters a negative velocity, and the MU
moves towards the starting point of the animation path.
Backwards
Select Backwards if you want the selected graphic to move backwards towards the starting point of
the animation path, instead of forwards towards the end point of the animation path.
Note that the 3D Viewer automatically enters a negative Factor into the text box when you select
the check box.
Play/Start/Stop
Play — To start the animation, click this. The 3D Viewer creates a test object of the selected
graphic and animates it on the path you selected with the speed you entered. The test object pauses
at the end of the animation path.
Any cycle time you entered for the animation path itself will be scaled with the Factor you entered.
Pause — To pause animation of the test object, independent of the simulation, click this.
Stop — To stop the animation of the test object, independent of the simulation, click this.
This also deletes the test object.
On the tab Self Animation you define how the material flow object itself is animated in the scene.
You can:
• Add, Extend, Edit, and Remove Animation paths.
• Enter settings for the Rotation axis and for the Rotation center of the object itself.
• Click Add > Rotation path (lines) to add a rotation path to the point-oriented and to the
length-oriented objects.
Introducing Self Animation — The Self Animation of an object controls how this object itself will be
animated in the simulation model. You can customize all aspects of the self animation by selecting
settings on the tab or by programming Methods.
The animation controls only apply to a single object, they do not affect parent objects or child objects.
Resetting the simulation also resets all self animations.
You can play, pause, and reset the self animations in animation blocks.
You can schedule saved animations as well as temporary animations. A temporary animation can
only represent a rotation around the rotation axis of the object.
An animation block can contain any number of animations, which the 3D Viewer executes
simultaneously and whose effects are based on each other.
Related Topics
Animation paths
Animation paths
You can:
• Add a new animation path.
Related Topics
Working with Paths
Animation Paths
Add Animations and Interactions to the Simulation Objects
Add
Add
Path name
Enter a meaningful name for the animation path you are creating.
Path type
Path type
Select one of the available path types.
• A Lines path consists of straight lines or a sequence of straight lines joined by vertices.
• A Polycurve path consists of the vertices of a curved object, i.e., a sequence of curved and
straight lines, on which MUs are animated, when they are transferred onto a material flow
• A Spline path consists of the vertices, i.e., the anchor points of a spline curve.
• A Rotation path (Lines) consists of straight lines or a sequence of straight line joined by vertices.
These set the area, the axis, and the center of rotation of the MU.
The 3D Viewer opens the dialog Create Rotation Path. Set how the 3D Viewer rotates the parts which
the selected object processes on the path that you create.
• Select the Start angle, the End angle, and the Radius of the rotation.
To edit the rotation path, select it in the list of animation paths and click Edit. Edit the values of the
path anchor points in the dialogs, which are opened.
Related Topics
Create an Animation Path that Rotates an Object
_3D.TypeOfAnimations.createAnimationCurve
_3D.TypeOfAnimations.createAnimationLine
_3D.TypeOfAnimations.createAnimationSpline
Start angle
Enter the angle in degrees where the rotation starts. The start angle has to differ from the end angle,
otherwise the 3D Viewer does not rotate the object. To rotate the MU counter-clockwise, the start
angle has to be greater than the end angle. You can also enter a value greater than +360 degrees
and less than -360 degrees.
Related Topic
End angle
End angle
Enter the angle in degrees where the rotation ends. The end angle has to differ from the start angle,
otherwise the 3D Viewer does not rotate the object. To rotate the MU clockwise, the end angle
has to be greater than the start angle. You can also enter a value greater than +360 degrees and
less than -360 degrees.
Related Topic
Start angle
Radius
Axis X/Y/Z
Select the axis around which you would like to rotate the MU:
• Click Z to rotate the object around the Z direction. We set the Z axis so that an end angle greater
than the start angle rotates the MU clockwise.
Center
To set the center of the rotation, i.e., the point around which the 3D Viewer rotates the MU:
• Type in a value for the X position of the center of rotation into the text box X.
• Type in a value for the Y position of the center of rotation into the text box Y.
• Type in a value for the Z position of the center of rotation into the text box Z.
Extend
To add a new anchor point to the path, thus making it longer, click this. Then click the left mouse
button at the position, where you would like to insert the anchor point. Repeat this as often as needed.
To terminate Extend path mode, click the right mouse button.
You can only navigate in Extend Path mode with the middle and the right mouse button if you
hold down the Ctrl+Alt keys.
Edit
Edit
To edit the anchor points of the path you selected, click this.
You can:
• Move the selected anchor point up one position in the list or move it down one position in the list.
• Click Edit Values to edit the values of the selected anchor point or double-click the row of the
anchor point, whose values you want to change, in the list.
• Hide or show the selected path by clicking the cell under animation paths.
Add
To add a new anchor point to the object, click . The list window shows theses settings.
You can then edit the individual values.
Insert Before
To insert a new anchor point before the anchor point, which you selected in the list window, click this.
The list window shows theses settings. You can then edit the individual values.
Delete
To delete the selected anchor point from the list, click this.
Move Up
To move the selected anchor point one position up in the list, click this.
Move Down
To move the selected anchor point one position down the list, click this.
Duplicate
To duplicate the settings of the selected anchor point and to insert the duplicate below the original in
the list, click this.
Edit Values
Edit Values
To edit the values of the anchor point which you selected in the list, click this. Instead, you can also
double-click the row of the anchor point, whose values you want to change, in the list.
You can edit these settings for the different path types:
Position
Enter a value into the text box, or click the spin buttons to move the position of the selected
anchor point on the x-axis, the y-axis and the z-axis. The settings for the three axes are independent
of each other.
Rotation
To set the axis around which to rotate the anchor point, enter a value for each of the three components
(x-y-z) that define the rotation axis.
Segments
A path of type Polycurve provides these settings for its Segments.
Related Topic
Insert Curved and Straight Segments
Velocity
To activate Velocity settings, select this.
The text box length shows the length of the anchor point.
Enter the time, which is required for point-oriented movements, such as rotating around or remaining
on the selected anchor point.
To add a common offset to the selected anchor point of a path of type Lines or Spline, click this.
• Enter a value for the position into the text box, or click the spin buttons to add a common
offset to the position of the selected anchor point on the x-axis, the y-axis, and the z-axis. The
settings for the three axes are independent of each other.
• Enter the angle of rotation for the common offset into the text box.
To define the viewing direction of the anchor point which you selected in the list, click this.
You can select the direction type, i.e., where the x-axis of the animated object points to for the
selected anchor point.
• Look along the path on the selected object.
• Look towards an object. Then, select an object in the active scene from the list target object.
• Look towards a position. Then, select the target position on the x-axis, the y-axis, or the
z-axis.
• Look in a direction. Then, enter the direction on the x-axis, the y-axis, or the z-axis.
You can also select if the viewing direction points backwards by selecting .
Related Topic
Look at Object
Show in View
To show the selected camera settings in the active 3D Viewer window, click this.
Delete
Rotation axis
To set the axis around which the selected object will be rotated:
• Enter a value for the x-dimension of the axis into the text box X.
• Enter a value for the y-dimension of the axis into the text box Y.
• Enter a value for the z-dimension of the axis into the text box Z .
SimTalk:
_3D.AniRotationAxis
Related Topic
_3D.TypeAnimations.scheduleRotation
Rotation center
To set the center of the rotation, i.e., the point around which the 3D Viewer rotates the object.
• Enter a value for the x-position of the center of the rotation into the text box X.
• Enter a value for the y-position of the center of the rotation into the text box Y.
• Enter a value for the z-position of the center of the rotation into the text box Z.
SimTalk:
_3D.AniRotationCenter
Related Topic
_3D.TypeAnimations.scheduleRotation
Test path
Test path
The group box Test path provides settings and actions for testing the animation path of the selected
object. When you start testing the 3D Viewer creates a temporary test object which moves on the
selected animation path.
You can:
• Enter the Factor with which the test object moves on the animation path.
• Select if the test object moves in the forward direction or if it moves Backwards.
The 3D Viewer does not save these settings to the model file.
Velocity
To activate Velocity settings, select the check box.
Enter a number for the Velocity, which the 3D Viewer uses for the animation.
When you select Backwards, the 3D Viewer automatically enters a negative velocity, and the MU
moves towards the starting point of the animation path.
Backwards
Select Backwards if you want the selected graphic to move backwards towards the starting point of
the animation path, instead of forwards towards the end point of the animation path.
Note that the 3D Viewer automatically enters a negative Factor into the text box when you select
the check box.
Play/Start/Stop
Play — To start the animation, click this. The 3D Viewer creates a test object of the selected
graphic and animates it on the path you selected with the speed you entered. The test object pauses
at the end of the animation path.
Any cycle time you entered for the animation path itself will be scaled with the Factor you entered.
Pause — To pause animation of the test object, independent of the simulation, click this.
Stop — To stop the animation of the test object, independent of the simulation, click this.
This also deletes the test object.
On the tab Robot Arm Animation you can create the path on which the arm of the PickAndPlace
Robot will be animated.
Note that the visualization of this path connects the anchor points with straight lines while the
actual movement of the robot arm is put together with curves. This is different from all other path
visualizations which accurately show how, for example, an MU will be moved.
When you enter a path for the combination of start and destination of the robot arm, the robot
follows this path when moving from the start to the destination of the movement. This way you can
set accurate movements, for example to animate raising and lowering motions, or to circumvent
obstacles. If you do not enter a user-defined animation path, the robot runs the default animation,
namely a simple raising or lowering motion to make the animation appear more realistic.
The animation of the robots in 3D is independent of specially set animation rotation axes. In most
cases the angles from the Angles Table do not affect the animation in 3D. The only exception to
this is that the moving times of the robot are mostly calculated based on the angles from the Angles
Table. In some cases the robot might then jump from the default angle to an object or from an object
to the default angle when both angles are identical according to the Angles Table.
You can add, extend, edit, and delete animation paths.
Related Topics
_3D.RobotArmAnimations.setTable
_3D.RobotArmAnimations.getTable
Animation paths
You can:
• Add a new animation path.
Related Topics
Animation Paths
Add RobotArm
Add
You can only add animation paths when the Robot is connected with a predecessor and a successor
with Connectors.
Path
Select one of the provided paths. They show the connections via Connectors from the predecessor
of the Robot and from the Robot to its successor in the model.
Extend
To add a new anchor point to the path, thus making it longer, click this. Then click the left mouse
button at the position, where you would like to insert the anchor point. Repeat this as often as needed.
Note that the visualization of this paths connects the anchor points with straight lines although the
actually covered movement of the robot arm consists of curves. This differs from all other path
visualizations, which exactly show how, for example, an MU will be moved.
You can only navigate in Extend Path mode with the middle and the right mouse button if you hold
down the Ctrl+Alt buttons.
Edit
Edit
To edit the anchor points of the selected animation path of the robot arm, click this.
You can:
• Add a new anchor point.
• Move the selected anchor point up one position in the list up or down one position down in the list.
• Edit the values of the selected anchor point or double-click the row of the anchor point, whose
values you want to change, in the list.
Add
To add a new anchor point to the object, click . The list window shows theses settings.
You can then edit the individual values.
Insert Before
To insert a new anchor point before the anchor point, which you selected in the list window, click this.
The list window shows theses settings. You can then edit the individual values.
Delete
To delete the selected anchor point from the list, click this.
Move Up
To move the selected anchor point one position up in the list, click this.
Move Down
To move the selected anchor point one position down the list, click this.
Duplicate
To duplicate the settings of the selected anchor point and to insert the duplicate below the original in
the list, click this.
Edit Values
To edit the values of the anchor point which you selected in the list, click this. Instead, you can also
double-click the row of the anchor point, whose values you want to change, in the list.
To add a common offset to the selected anchor point of the path, click this.
Enter a value for the position into the text box, or click the spin buttons to add a common offset to
the position of the selected anchor point on the x-axis, the y-axis, and the z-axis. The settings for
the three axes are independent of each other.
Delete
On the tab Camera Animation you can define how the camera moves through the 3D scene in the
Frame. Note that camera flights through the scene are only possible on dedicated camera paths.
The camera animation modifies the view point of the 3D window.
You can:
• Add, Extend, Edit, and Delete Animation paths.
• Click Add > Rotation path (lines) to add a rotation path to the point-oriented and to the
length-oriented objects.
Introducing Camera Animation — The Camera Animation of a Frame defines a fly-through through
the current Frame on a defined path. You can customize all aspects of the camera animation by
selecting settings on the tab or by programming Methods.
The animation controls only apply to the designated Frame in the active window, they do not affect
parent or child Frames.
Resetting the simulation also resets all camera animations.
You can play, pause, and reset the camera animations in animation blocks.
You can schedule saved animations as well as temporary animations. A temporary animation can
only represent a rotation around the rotation axis of the object.
An animation block implicitly consists of a single animation.
Related Topics
Animation paths
Animation paths
You can:
• Add a new animation path.
Related Topics
Working with Paths
Animation Paths
Add Animations and Interactions to the Simulation Objects
Add
Add
Path name
Enter a meaningful name for the animation path you are creating.
Path type
Path type
• A Polycurve path consists of the vertices of a curved object, i.e., a sequence of curved and
straight lines, on which MUs are animated, when they are transferred onto a material flow
• A Spline path consists of the vertices, i.e., the anchor points of a spline curve.
• A Rotation path (Lines) consists of straight lines or a sequence of straight line joined by vertices.
These set the area, the axis, and the center of rotation of the MU.
To create a rotation path for the selected object, select the path type > Rotation path (Lines) in
the dialog Create Animation Path. A rotation path consists of straight lines or of a sequence of
straight line which are connected through vertices. These set the area, the axis, and the center
of rotation of the MU.
The 3D Viewer opens the dialog Create Rotation Path. Set how the 3D Viewer rotates the parts which
the selected object processes on the path that you create.
• Select the Start angle, the End angle, and the Radius of the rotation.
To edit the rotation path, select it in the list of animation paths and click Edit. Edit the values of the
path anchor points in the dialogs, which are opened.
Related Topics
Create an Animation Path that Rotates an Object
_3D.TypeOfAnimations.createAnimationCurve
_3D.TypeOfAnimations.createAnimationLine
_3D.TypeOfAnimations.createAnimationSpline
Start angle
Enter the angle in degrees where the rotation starts. The start angle has to differ from the end angle,
otherwise the 3D Viewer does not rotate the object. To rotate the MU counter-clockwise, the start
angle has to be greater than the end angle. You can also enter a value greater than +360 degrees
and less than -360 degrees.
Related Topic
End angle
End angle
Enter the angle in degrees where the rotation ends. The end angle has to differ from the start angle,
otherwise the 3D Viewer does not rotate the object. To rotate the MU clockwise, the end angle
has to be greater than the start angle. You can also enter a value greater than +360 degrees and
less than -360 degrees.
Related Topic
Start angle
Radius
Axis X/Y/Z
Select the axis around which you would like to rotate the MU:
• Click X to rotate the MU around the X direction.
• Click Z to rotate the object around the Z direction. We set the Z axis so that an end angle greater
than the start angle rotates the MU clockwise.
Center
To set the center of the rotation, i.e., the point around which the 3D Viewer rotates the MU:
• Type in a value for the X position of the center of rotation into the text box X.
• Type in a value for the Y position of the center of rotation into the text box Y.
• Type in a value for the Z position of the center of rotation into the text box Z.
Extend
To add a new anchor point to the path, thus making it longer, click this. Then click the left mouse
button at the position, where you would like to insert the anchor point. Repeat this as often as needed.
To terminate Extend path mode, click the right mouse button.
You can only navigate in Extend Path mode with the middle and the right mouse button if you
hold down the Ctrl+Alt keys.
Edit
Edit
To edit the anchor points of the path you selected, click this.
You can:
• Move the selected anchor point up one position in the list or move it down one position in the list.
• Click Edit Values to edit the values of the selected anchor point or double-click the row of the
anchor point, whose values you want to change, in the list.
• Hide or show the selected path by clicking the cell under animation paths.
Add
To add a new anchor point to the object, click . The list window shows theses settings.
You can then edit the individual values.
Insert Before
To insert a new anchor point before the anchor point, which you selected in the list window, click this.
The list window shows theses settings. You can then edit the individual values.
Delete
To delete the selected anchor point from the list, click this.
Move Up
To move the selected anchor point one position up in the list, click this.
Move Down
To move the selected anchor point one position down the list, click this.
Duplicate
To duplicate the settings of the selected anchor point and to insert the duplicate below the original in
the list, click this.
Edit Values
Edit Values
To edit the values of the anchor point which you selected in the list, click this. Instead, you can also
double-click the row of the anchor point, whose values you want to change, in the list.
You can edit these settings for the different path types:
Position
Enter a value into the text box, or click the spin buttons to move the position of the selected
anchor point on the x-axis, the y-axis and the z-axis. The settings for the three axes are independent
of each other.
Rotation
To set the axis around which to rotate the anchor point, enter a value for each of the three components
(x-y-z) that define the rotation axis.
Segments
A path of type Polycurve provides these settings for its Segments.
Related Topic
Insert Curved and Straight Segments
Velocity
To activate Velocity settings, select this.
The text box length shows the length of the anchor point.
Enter the time, which is required for point-oriented movements, such as rotating around or remaining
on the selected anchor point.
To add a common offset to the selected anchor point of a path of type Lines or Spline, click this.
• Enter a value for the position into the text box, or click the spin buttons to add a common
offset to the position of the selected anchor point on the x-axis, the y-axis, and the z-axis. The
settings for the three axes are independent of each other.
• Enter the angle of rotation for the common offset into the text box.
To define the viewing direction of the anchor point which you selected in the list, click this.
You can select the direction type, i.e., where the x-axis of the animated object points to for the
selected anchor point.
• Look along the path on the selected object.
• Look towards an object. Then, select an object in the active scene from the list target object.
• Look towards a position. Then, select the target position on the x-axis, the y-axis, or the
z-axis.
• Look in a direction. Then, enter the direction on the x-axis, the y-axis, or the z-axis.
You can also select if the viewing direction points backwards by selecting .
Related Topic
Look at Object
Show in View
To show the selected camera settings in the active 3D Viewer window, click this.
Delete
Test path
Test path
The group box Test path provides settings and actions for testing any animation path which exists in
the scene. When you start testing the 3D Viewer creates a temporary object camera which moves on
the selected animation path.
You can:
• Enter the Factor with which the test object moves on the animation path.
• Select if the test object moves in the forward direction or if it moves Backwards.
The 3D Viewer does not save these settings to the model file.
Factor
Enter a number for the playback factor, which the 3D Viewer uses for the animation test.
When you select Backwards, the 3D Viewer automatically enters a negative velocity, and the MU
moves towards the starting point of the animation path.
Backwards
Select Backwards if you want the selected graphic to move backwards towards the starting point of
the animation path, instead of forwards towards the end point of the animation path.
Note that the 3D Viewer automatically enters a negative Factor into the text box when you select
the check box.
Play/Start/Stop
Play — To start the animation, click this. The 3D Viewer creates a test object of the selected
graphic and animates it on the path you selected with the speed you entered. The test object pauses
at the end of the animation path.
Any cycle time you entered for the animation path itself will be scaled with the Factor you entered.
Pause — To pause animation of the test object, independent of the simulation, click this.
Stop — To stop the animation of the test object, independent of the simulation, click this.
This also deletes the test object.
Related Topics
Built-in Attributes for Point Clouds of the Frame
Working with a Point Cloud
Show Point Clouds on the View ribbon tab of the 3D Viewer
File path
Click the button and select the point cloud file that you want to import. To remove the point cloud
from the Frame, delete its name from the text box.
Provided the path is relative, it refers to the folder in which your simulation model is located.
Position
Enter a value into the text box X, or click the spin buttons to move the position of the point
cloud on the x-axis.
Enter a value into the text box Y, or click the spin buttons to move the position of the point
cloud on the y-axis.
Enter a value into the text box Z, or click the spin buttons to move the position of the point
cloud on the z-axis.
To move the selected point cloud (with the center of its base area) to the point of origin of the Frameit
belongs to, click Move to Zero. This is especially handy when you import graphics, such as .wrl files,
which the 3D Viewermight not place at the position you expected.
The button Move to Zerois only active after you click Apply.
Related Topic
_3D.PointCloudPosition
Rotation
Enter the rotation angle of the point cloud in the Frame in degrees. The 3D Viewer interprets the
rotation angle as a rotation around the negative z-axis. This corresponds to the rotation angles in 2D.
When you set a rotation around the z-axes for an object that is length-oriented in 2D and in
3D, Plant Simulation instead converts the rotation into a polycurve and resets the angle to 0.
Instead, you can also click the button to the right of the respective axis to set the rotation axis. Plant
Simulation then enters the respective values into the text boxes.
Related Topics
_3D.PointCloudRotationAngle
_3D.PointCloudRotation
Add Rotation
Only graphics, objects which do not have a counterpart in 2D, and point clouds provide
this button.
To add a rotation angle to the axis that you select, click this.
Enter the angle which you would like to add to the axis that you select.
Select the axis to which you would like to add the angle.
Click OK to accept the values and to add the angle to the existing angle. Click Apply to show the
result in the scene window.
Tab Graphics
Tab Graphics
• Rename existing graphic groups by clicking in the respective cell and overtype the name.
Edit existing graphic groups by clicking in the respective cell and select or clear the checkbox.
• Select if you want to display the States orientation of the object and which orientation you want
to use.
• Click Show content to show the object in addition to those object and internal graphic groups,
which are contained within.
• Click Exclude from "Show content" of the location to show this object only within its parent object.
• Click Preview Changes to show your changes to the object graphics in all 3D windows, which
contain the edited object.
You can define any number of graphic groups with a unique name for each 3D object. The graphic
groups themselves can consist of any number of graphics. The individual graphic groups must
have a unique name.
When you defined more than one graphic group for an object, the 3D Viewer opens the dialog Select
Graphic when you insert a new geometric shape or import a graphic from a file. You can then select
the graphic group to which you want to add this graphic.
Related Topics
Set How the 3D Viewer Shows an Object Built-in Methods for Accessing Graphic Groups
Object graphics
Object graphics
The object graphics describe all three-dimensional data, which show the object in 3D. They consist
of one or several graphic groups and optionally a state group. The object graphics are saved
separately in the model file.
The toggle button shows if the graphics of the object are inherited or not. A green button means
that inheritance is active. Then the object inherits the graphic structure of the origin object from which
it was derived and shares the graphics with it. When you modify the graphics of the origin object, all
inheriting objects show these modifications as well.
An orange button with a minus means that inheritance is not active. Then the object uses its own
object graphics that have no connection to the object graphics of the origin object.
You can also activate or deactivate graphics inheritance of a 3D object when you
• select or clear the check box next to Object graphics in the dialog Edit 3D Properties or
• click the button Inherit Graphics in the dialog Show 3D Graphic Structure or
Deactivating inheritance for object graphics cuts graphic inheritance just as editing the graphic
structure, changing contained graphics or exchanging the entire object graphic does. Then Plant
Simulation creates its own copy of the object graphics for the instance.
Activating inheritance restores graphic inheritance and sets the object graphics of the object to the
object graphics of the parent object. This means that the instance will loose all changes you made and
that it will revert to the same graphic structure as the class object and thus shares all graphics with it.
Inheritance settings for graphic groups and Visibilities are independent of each other. Inheritance of
the visibilities is reestablished only, when graphic inheritance is reestablished.
Related Topics
Working with Graphics
_3D.InheritGraphics
Built-in Methods for Accessing Graphic Groups
Built-in Attributes for Accessing Graphic Groups
Show 3D Graphic Structure > Inherit Graphics
Graphic Groups
Graphic Groups
Graphic groups define a possible visual representations of an animatable object and have
a name that is unique for this object. This is similar to the 2D icons of the simulation objects. You
can set of a graphic group is external or internal. External graphic groups represent the object
towards the outside, while internal graphic groups are only visible inside of the object unless you
select the check box Show Content/link. A graphic group can be permanently shown or hidden to
enable switching between alternative graphic groups. Each simulation object or animatable object
contains at least one external graphic group named default and optionally any number of alternative or
additional graphic groups, which you can show or hide independent of each other. The visibility of the
graphic groups is a 3D object property which can be inherited as well as the entire graphic structure.
The group box Graphic groups lists the graphics, which are defined for the selected object.
• The column Name shows the name of the graphic groups. You cannot edit or delete the graphic
group named default. You can and create any number of additional graphic groups with a
unique name each.
• The column Generated shows an X in the row for the graphic group if Plant Simulation
automatically generated its graphics.
• Select the check box in the column Internal to make the graphic group only visible within its parent
object and only use it for its internal decoration. Changing this setting will cut graphic inheritance.
• Select the check box in the column Locked to prevent this graphic group from being selected and
moved inadvertently in any 3D window. Changing this setting will cut graphic inheritance.
• Select the check box in the column Visible so that the selected graphic group is shown as a part
of the inside or of the outside representation of a 3D object that is displayed in a 3D window.
You can select an arbitrary number of graphic groups. This way you can show graphic groups
alternatively or additively.
This visibility setting is an object property, independent of graphics inheritance, meaning that it
is inherited separately, that it is applies to all 3D windows, and that it is saved in the model in
the attribute _3D.VisibleGraphics.
Note that this is not the same as showing or temporarily hiding all external graphics and objects
by clicking Hide Object on the View ribbon tab for the selected 3D object.
When you add, delete, or rename a graphic group or when you change its setting
Internal or Locked, Plant Simulation cuts graphic inheritance.
When you defined more than one graphic group for an object, the 3D Viewer opens the dialog Select
Graphic Group when you insert a newly created graphic shape. You can then select the graphic
group to which you want to add this graphic.
Related Topics
Add
Delete
Visibilities
Add
Add
To add a new graphic group to the object, click Add. This cuts graphic inheritance.
• Select Internal to make the graphic group a part of the internal representation of the selected
object. It is only visible when the content of the selected object is visible. Clear Internal to make
the graphic group part of the external representation of the selected object
• Select Locked to prevent the graphic group from being selected or moved in any 3D window.
Clear Locked to allow that the graphic group can be selected and moved.
• Select Visible to make the graphic group a part of the internal representation of the selected
object as long as you do not change this setting. Note that this setting does not do the same
as temporarily showing or hiding graphics or objects with the command Hide Object on the
View ribbon tab.
The created graphic group is empty by default. To add graphics, open the selected object in a 3D
window and add shapes or import your own graphics.
Related Topics
_3D.addGraphicGroup
Name — Enter the name of the new graphic group of the object.
Related Topic
_3D.addGraphicGroup
Internal — To make the graphic group only visible within its object, select this. The graphic group will
then only be used for the internal decoration of the object. The external graphic groups on the other
hand represent the object towards the outside.
Internal graphic groups are always shown inside of their animatable object, when you also select
the check box Visible. The are also visible outside of the object, when you select the check box
Show content.
External graphic groups, for which you selected the check box Visible, will only be visible on the
outside of the object. If you want to show them while you are editing the object, you can click Show
External Graphics on the View ribbon tab to also make them visible internally.
Instead, you can also select the check box on the table on the tab itself.
Click to open the dialog 3D Graphic Structure. It shows internal graphic groups
with two yellow cubes, it shows external graphic groups with two red cubes.
Related Topics
_3D.InternalGraphics
_3D.setGraphicGroupInternal
Context Menu of a Graphic Group> Internal
Visible — To use the new graphic group for visually representing the object in the 3D windows, select
this. Clear the check box to provide the new graphic group as an alternative or additional visual
representation for later use and hide it in all 3D windows for now.
If a graphic group marked as Visible is actually shown in a certain 3D window or not depends on
additional object settings and on the scene root of this 3D window.
Instead, you can also select the check box on the table on the tab itself.
Related Topics
Visibilities _3D.showGraphicGroup
_3D.InheritGraphics _3D.setGraphicGroupInternal
_3D.isGraphicGroupVisible
Locked — To lock the graphic group in the 3D windows which are opened for this object, select
this. This then prevents you from selecting this graphic group in the 3D windows which are opened
for this object. This makes, for example, sense for the graphic of a factory building which might
otherwise be selected inadvertently.
Instead, you can also select the check box on the table on the tab itself.
Related Topics
Visibilities _3D.unlockGraphicGroup
_3D.InheritGraphics _3D.LockedGraphics
_3D.lockGraphicGroup
Name
The 3D Viewer shows the current name of the object here. You can leave it as it is or change it by
entering a name of your choice. To change the name, double-click and overtype it. You can also
enter a name that is invalid in 2D. If you want to, you can also leave the text box empty.
SimTalk
_3D.setGraphicName
_3D.getGraphicName
Related Topic
Name of the object in Plant Simulation 2D
Internal
To make the graphic group only visible within its object, select this. The graphic group will then
only be used for the internal decoration of the object. The external graphic groups on the other
hand represent the object towards the outside.
Instead, you can also select the check box on the table on the tab itself.
Click to open the dialog 3D Graphic Structure. It shows internal graphic groups
with two yellow cubes, it shows external graphic groups with two red cubes.
Internal graphic groups are always shown inside of its object, when you also select the check box
Visible; they are never visible on the outside of the object.
External graphic groups, for which you selected the check box Visible, will only be visible on the
outside of the object. If you want to show them while you are editing, you can click Show External
Graphics on the View ribbon tab to also make them visible internally.
Related Topics
_3D.InternalGraphics
_3D.setGraphicGroupInternal
Context Menu of a Graphic Group > Internal
Visible
To use the new graphic group for visually representing the object in the 3D windows immediately,
select this. Clear this to provide the new graphic group as an alternative or additional visual
representation for later use and hide it in all 3D windows for now.
If a graphic group marked as Visible is actually shown in a certain 3D window or not depends on
additional object settings and on the scene root of this 3D window.
Instead, you can also select the check box on the table on the tab itself.
Related Topics
Visibilities _3D.showGraphicGroup
_3D.InheritGraphics _3D.setGraphicGroupInternal
_3D.isGraphicGroupVisible
Locked
To lock the graphic group in the 3D windows which are opened for this object, select this. This
then prevents you from selecting this graphic group in the 3D windows which are opened for this
object. This makes, for example, sense for the graphic of a factory building which might otherwise be
selected inadvertently.
Instead, you can also select the check box on the table on the tab itself.
Related Topics
Visibilities _3D.unlockGraphicGroup
_3D.InheritGraphics _3D.LockedGraphics
_3D.lockGraphicGroup
Delete
To delete the selected graphic group from the selected object, click this.
Related Topic
_3D.deleteGraphicGroup
Visibilities
The toggle button Visibilities sets if the graphic groups of the object inherit their visibility from the
origin object or not. It also shows the state of the attribute _3D.VisibleGraphics.
As soon as you activate or deactivate the check box Visible of one of the graphic groups, the 3D
Viewer changes the state of the Visibilities to non-inheriting. Or you can set inheritance of the
visibility by clicking the toggle button.
The 3D Viewer only writes the setting of the toggle button to the attribute _3D.VisibleGraphics when
you click Apply or OK.
Inheritance settings for Object graphics and Visibilities normally are independent of each other.
Inheritance of the visibilities is reestablished only, when graphic inheritance is reestablished.
Related Topics
State Group
State Group
Some 3D simulation objects provide a predefined set of state graphics that show their state. State
graphics correspond to the LEDs in Plant Simulation 2D, compare States and Icons of the Material
Flow Objects. State graphics have the same color as the LEDs in 2D and Plant Simulation shows
them whenever it displays the corresponding LED in 2D. Note that several state graphics may be
displayed at the same time. All state graphics of an object are grouped in a state group which is
named States.
You can view the structure of the state group by clicking Show Graphic Structure.
Blocked yellow
Failed red
Paused blue
Setting-Up brown
Stopped pink
Working green
The states Failedand Stopped, or Powering up or down, Off, and Standby, or Working
and Blocked can never occur at the same time. The 3D Viewer thus shows the state
graphics for these states at the same position.
When you change the setting, the 3D Viewer cuts graphic inheritance, then deletes all state graphics
and creates new state graphics afterwards, which are arranged accordingly. If you modified the state
group already beforehand, then these changes will be lost.
You can:
• Create, replace, or delete a state group by selecting the Orientation of the state of the state
group, provided the selected object provides object states.
Creating, editing, or deleting a state group cuts graphic inheritance of the selected object.
Related Topics
State Graphics
Orientation
To select how the state graphics for the selected object are displayed, click this.
• Off
This is the default setting for objects, which cannot have any states, such as the Frame. You
cannot change this setting for objects of this type. The 3D Viewer does not create any state
graphics. When you select Off for objects, which already have state graphics, the 3D Viewer
deletes the state group including all of the contained graphics.
• Horizontal
This is the default setting for objects, which have predefined states. The 3D Viewer creates the
state graphics as cubes and arranges them along the top border of the picture of the object.
• Vertical
To arrange the LEDs vertically on a pole, select this. The 3D Viewer creates the state graphics
as cylinders and arranges them on a pole.
When you change the setting, the 3D Viewer cuts graphic inheritance, deletes all state graphics and
then creates new state graphics, which are arranged accordingly. Any changes you made before
will be lost.
The 3D Viewer also resets the Transformation (position and scaling) of the state group to its
predefined settings when you change the orientation of the states.
Related Topics
State Graphics on the context menu
Illustrating State Graphics
_3D.StatesOrientation
_3D.StatesPosition
_3D.StatesScale
Transformation
To edit the transformation of the selected state group, click this. Then, edit the position and/or the
scaling of the entire state group in the dialog that opens. This moves or scales all state graphics of
the object at the same time.
SimTalk:
_3D.StatesPosition
_3D.StatesScale
Show content
Select this to add the content of the selected object to its external representation. Then not only the
external graphic groups and the states group represent the selected object towards the outside, but
also its internal graphic groups and the external representations of the objects, which are contained
within the selected object. This means that the external graphic groups and the states group of all
objects, which are located one level lower in the hierarchy than the selected object, are also visible
one level higher in the hierarchy than the selected object.
If you only want to show an object by its content and not in addition by its external graphic
groups, you have to mark all external graphic groups of the object as invisible by clearing
Visible or by deleting the external graphic groups of the object.
By default the 3D Viewer does not show the content of the Frame and of the folder. It does
show the content of all other 3D objects though.
The following figures show how a Frame looks towards the outside with the setting Show content
turned on and off. As we also selected Show content for the SingleProc, Plant Simulation shows the
parts on the SingleProc together with the content of the Frame.
On Off
Clear this if you want the parts on the station to be invisible outward.
By default the 3D Viewer does not show the contents for the Frame and for the folder, it
shows the contents for all other 3D objects though.
SimTalk:
_3D.ShowContent
Related Topics
Set How the 3D Viewer Shows an Object
Make Sure That 3D Model and 2D Model Look the Same
Setting the Representation in Plant Simulation 2D
To prevent that the external representation of the selected object will be displayed together with the
external representation of the location of the object, when Show content is activated, select this. Then
the representing graphics of the selected object is only visible within its location. This makes sense
for abstract objects, such as the Method, TableFile, EventController, etc., which are required to define
and to control the simulation but not to illustrate the simulated scene.
With this setting a Method is, for example, not part of the representation of the Frame into which you
inserted the Method even if Show content is activated for the Frame. That means that when you
insert a Frame, for which Show content is activated, into another Frame (Frame1), then the contents
of the Frame, that displays Frame1, is visible in a 3D window, but not the Method for which the
check box Exclude from "Show content" of the location is activated. The Method is still visible in
a 3D window that displays the Frame though.
To redisplay the Method again, clear the check box.
SimTalk:
_3D.ExcludeFromShowContentOfLocation
Show sensors
Select this to show the sensors, which you created for the length-oriented objects. To hide the
sensors, clear the check box.
Related Topics
Show sensors
Sensors
Select if the object is an obstacle for the Worker when he is moving moves freely within the area of
the model:
• Bounding box
The bounding box of the entire object is an obstacle for the Worker around which he has to
walk. This applies for example for the material flow objects, such as the SingleProc, etc., and for
graphics.
• None
The object is no obstacle for the Worker. He can walk through the object or across it. This applies
for example for the information flow objects, such as the Method, etc.
• Graphics
The graphics of the object are an obstacle for the Worker around which he has to walk. This
applies for example for the length-oriented material flow objects, such as the Line.
To show the barred areas/obstacles for the Worker in your model, press the o key on your keyboard.
SimTalk:
_3D.ObstacleForWorker
Related Topics
Edit 3D Properties > Tab Graphic Settings > Obstacle for the Worker
Insert Barred Area
Model a Worker Who Walks Freely Within the Model
Worker in 2D
WorkerPool > Travel mode of the Worker
Tab Captions
Captions
Captions in 3D encompass the Name and the Label of the objects, which you or Plant Simulation
assigned in 2D. You can select to enable or disable the captions in 3D. In addition you can define
settings for the position, settings for the rotation, and settings for the scale of the captions.
The toggle button activates or deactivates inheritance of the position.
• A green button means that inheritance is active. Then the object inherits, i.e., uses, the position
of the parent object from which it was derived. When you modify the position of the parent object,
the program also modifies the position of the child object.
To show or hide the Names of the objects in the Frame, click Show Object Names on the
View ribbon tab.
To show or hide the Labels of the objects in the Frame, click the small triangle and then Label
Name/Label enabled
To enable captions, which encompass the Name and the Label of the object, which you or Plant
Simulation assigned in 2D, select the check box.
To disable captions, clear the check box.
SimTalk
_3D.NameAndLabelEnabled
Enter a value into the text box, or click the spin buttons to move the position of the caption of the
selected object in the Frame on the x-axis, the y-axis and the z-axis.
The settings for the three axes are independent of each other.
Standard Position
Click this to move the captions, i.e., the Names and the Labels of the objects to their standard
position.
The standard position is the bottom left corner of the graphic bounding box of the caption.
SimTalk:
_3D.NameLabelPosition
To set the axis around which to rotate the caption of the selected object, enter a value for each of the
three components (x-y-z) that define the rotation axis.
The settings for the three axes are independent of each other.
Instead you can also click the button to the right of the axis to set the respective rotation axis.
Plant Simulation then enters the respective values into the text boxes.
Uniform — To automatically enter the value you entered into one text box into the
remaining two text boxes for scaling the caption, select this. This way you do not have to manually
enter the same value into each text box over again.
SimTalk:
_3D.NameLabelScale
On the tab Graphic Sequences you can define sequences of graphic groups for a Worker walking on
a Footpath so that he looks realistic in your simulation model when he walks.
You can:
• Define graphic sequences for a Worker with the setting Walk without part.
• Define graphic sequences for a Worker with the setting Walk and carry part.
The 3D Viewer cycles through these graphic sequences when he walks to simulate a fluid walking
motion. The Worker uses a walking step length of 0.74088 meters.
You define the individual graphic groups on the tab Graphics of your Worker. Make sure to select
State graphics > None.
You can exchange the graphic of a new or existing Worker with one of the predefined s3d files
of the Worker_Jack or Worker_Jill.
The files whose name contains Jack are male workers, the files whose name contains Jill are female
workers. The suffix 6 designates a Worker that is animated with 6 graphics per double-step. The
suffix 15 designates a Worker that is animated with 15 graphics per double-step. More graphics
naturally lead to a greater file size.
Related Topics
Built-in Attributes for Graphic Sequences of the Worker
Exchange the Default Graphic of the Worker with an Animated Worker
Define the way in which the Worker walks in a relaxed posture without carrying anything. In this
posture the Worker swings his arms back and forth.
The Worker cycles through the graphic groups in the sequence which you enter here when
he walks on a FootPath while he does not carry a part. When this sequence is empty, the 3D
Viewer uses the visible graphic groups you designated with the check box Visible (or the attribute
_3D.VisibleGraphics), i.e., the default behavior.
You can:
• Click Add to add a graphic group to the sequence defining the walking motion.
• Click Insert Before to insert an existing graphic group before the selected graphic group in the
sequence.
• Click Delete to delete the selected graphic group from the sequence defining the walking motion.
• Click Move Up to move the selected graphic group one position up in the sequence defining
the walking motion.
• Click Move Downto move the selected graphic group one position down in the sequence defining
the walking motion.
Related Topic
_3D.GraphicsWhenEmpty
Add
To add a new graphic group to the Worker, click this. The list window then shows the name of this
graphic group. The graphic group defines part of a walking pose.
Insert Before
To insert an existing graphic group before the selected graphic group, click this. Then, select the
graphic group which you want to insert before the selected graphic group and click OK.
The drop-down list shows all graphic groups which are defined on the Tab Graphics.
The list window then shows the name of the pose at the selected position in the list.
Delete
To delete the selected graphic group from the list, click this.
Move Up
To move the selected graphic group one position up in the list, click this.
Move Down
To move the selected graphic group one position down the list, click this.
Define the way in which the Worker walks while carrying a part in his hands or on his arms.
The Workercycles through the graphic groups in the sequence which you enter here when he walks
on a FootPath while he carries a part. When this sequence is empty, the 3D Viewer uses the visible
graphic groups you designated with the check box Visible (or the attribute _3D.VisibleGraphics), i.e.,
the default behavior.
You can:
• Click Add to add a graphic group to the sequence defining the walking and carrying motion.
• Click Insert Before to insert an existing graphic group before the selected graphic group in the
sequence.
• Click Delete to delete the selected graphic group from the sequence defining the walking and
carrying motion.
• Click Move Up to move the selected graphic group one position up in the sequence defining the
walking and carrying motion.
• Click Move Down to move the selected graphic group one position down in the sequence defining
the walking and carrying motion.
Related Topic
_3D.GraphicsWhenCarrying
Add
To add a new graphic group to the Worker, click this. The list window then shows the name of this
graphic group. The graphic group defines part of a walking and carrying pose.
Insert Before
The list window then shows the name of the pose at the selected position in the list.
To insert an existing graphic group before the selected graphic group, click this. Then, select the
graphic group which you want to insert before the selected graphic group and click OK.
The drop-down list shows all graphic groups which are defined on the Tab Graphics.
Delete
To delete the selected graphic group from the list, click this.
Move Up
To move the selected graphic group one position up in the list, click this.
Move Down
To move the selected graphic group one position down the list, click this.
Open 2D Dialog
To open the dialog of the corresponding object in Plant Simulation 2D, click the button with the icon
of the 2D object. You can then edit simulation-relevant settings.
Instead, you can also select Navigate > Open.
Related Topic
Edit 3D Properties in 2D
Go to Origin Open
Open
The menu command Open opens the dialog of the corresponding object in Plant Simulation 2D.
Help on Dialog
Create in 3D
Related Topic
CreateIn3D
Edit Controls
The command Edit Controls opens the dialog Edit Controls.
Click this . In the dialog Select Object, navigate to the folder or Frame, in which the Method
or the object is located, select it, and click OK.
Or you can select Create Control on the context menu of the text box to create a user-defined
attribute of data type method, called self.OnBuilt_in_name_of_control, for example self.OnCreate.
Enter your source code here.
Plant Simulation calls the control/Method, when the user performs the actions to which you assigned
the Method. The control methods are described under Edit Controls.
In addition, the Frame provides the Close control and the Permit-delete control.
Related Topics
Rename control
Edit Observers
The command Edit User-defined Attributes opens the dialog User-defined Attributes. Here you
can define your own attributes as described under the Tab User-defined.
In a Method, which you defined as a user-defined attribute for a Frame, the keyword
current refers to Frame itself.
This table lists, where the relative path for a user-defined attribute you define for a Frame starts.
Related Topics
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName ConnectTo3D
The context menu command Show Attributes and Methods shows the attributes and methods
of the selected object.
Working with the Dialog Show Attributes and Methods shows how you can utilize the information to
work even more efficiently.
The window lists the Nameof the attribute or of the method in the leftmost column, its Signature, i.e.,
the data type or data types of its parameters, its Value, if the value is inherited (i) or not inherited
(ni) or neither inherited nor not inherited (no entry), and if a waituntil instruction can observe the
attribute or the method (asterisk, *) or not (no asterisk). The rightmost column shows the Name of the
attribute or of the method in German.
Let us demonstrate how to interpret the information the dialog presents using data from the
screenshot above:
• Show Attributes
To only show the attributes of the object, we click on on the toolbar of the dialog.
In our example below the Name of the attribute is CurrIcon, it expects the value to be passed
as a string, its current value is operational, this value is inherited and a wait until instruction
in Plant Simulation can observe it.
• To edit the value, double-click the name of the attribute. The title bar of the dialog that opens
shows the entire path to the object.
• To change the value of a boolean attribute from true to false and vice versa, double-click the
row in the list. A boolean attribute shows i or ni in the column inherited/not inherited.
• To change the value of an attribute of data type string, first sort the column Signature
according to the data type and scroll to the data type string. Then, double-click the respective
attribute and select another value in the drop-down list.
Examples for such attributes are the values of the drop-down lists in the dialogs of the objects.
• Let’s have a look at the attribute ConnectCtrl. It expects to be passed the path to the method
to be executed; its current value is VOID, its value is inherited and a waituntil instruction in
Plant Simulation cannot watch/observe it.
The type method in the Signature usually is the path to a Method object. In most cases it will be
the same as the type object. In some cases you will have to type & (SimTalk 2.0) ref (SimTalk
1.0) in front of the name of the Method within SimTalk statements to prevent the Methodfrom
being executed.
To only show the read-only-attributes of the object, we click on on the toolbar of the dialog.
In our example the Name of the Read-Only Attribute is NumSucc. It has the value 1 at the
point-in-time of our query. The return value has the data type integer.
• Show Methods
To only show the methods of the object, we click on on the toolbar of the dialog.
Let’s have a look at the method deleteAttr. The cell Signature shows the data type of the
parameter you have to enter in parenthesis, string in this case, and it shows the data type of
the return value to the right of the keyword ->, boolean in this case. If the Method has optional
parameters, they are listed within square brackets.
The Auto Complete window in the method editor provides the same functions.
Instead, you can also right-click the object in the Frame and select Show Attributes and Methods on
the context menu or press the F8 key.
Related Topics
Working with the Dialog Show Attributes and Methods
attributeWatchable
The first group of features is exclusive and additive, i.e., you click one button and,
depending on your selection, Plant Simulation clicks one or two more.
o Attributes/Methods for Standard Users just shows the attributes and methods for
the standard user.
o Attributes/Methods for Expert Users shows attributes and methods for the
standard user and for the expert user.
To show Click
General Attributes/Methods
Control Attributes/Methods
Simulation Attributes/Methods
Energy-related Attributes/Methods
3D-related Attributes/Methods
Statistics Attributes/Methods
Attributes
Methods. Methodsas a rule have parameters, have side effects, and return
a value.
To just show the items of a single category of the three groups of features, when all items/buttons
are active, click the button of the respective category. This automatically deactivates all other items of
that group. To show all items of the group again, click the active button again.
To just show the items of a single category of the three groups of features, you can also hold down
Shift, while you click the button of that category on the toolbar, as you did in previous versions
of the program.
To just show or hide a single category of the three groups of features, you can also hold down Alt,
while you click the button of that category on the toolbar. This deactivates the default behavior,
namely showing our hiding all items of a group simultaneously.
The default setting with all items of all categories activated shows all attributes, read-only attributes,
and methods of all categories.
To just show the attributes, read-only attributes, and methods of the category Energy, we click its
button . This automatically deactivates all other categories of the group.
• We first click as this command displays items for the standard user.
• To display all items of all categories, make sure that these buttons
are all selected.
• Then we click , as we just want to see the attributes of the object. The result looks like this.
• To display the methods of the object in addition, we click . The result looks like this.
• To just display the read-only attributes of the object, we click . This activates all three
categories as we viewed the attributes and methods before . Clicking
then just shows the read-only attributes. The result looks like this.
You will have noticed that some of the read-only attributes use our notation for attributes and
some our notation for methods. Both have in common that you can read the value, but that you
cannot set it because Plant Simulation computes that value for the point in time at which you
query it. These attributes/methods do not expect parameters and do not have any side effects,
i.e., they do not change the behavior of the simulation model.
To just show the items of a single category, click the button of that category on the toolbar.
• Arrange the order of the columns according to your requirements. To do so, click the respective
column header so that it is marked and drag the column to its new position.
• Sort the contents of a column alphabetically starting with A and ending with Z or vice versa.
To do so, click the arrow in the column header. The direction of the arrow shows the
sort order, up or down .
In our example we sorted the list according to the German names of the attributesand methods in
the second column.
• Open help for an attribute or method. To do so, select the attribute or the method for which you
need help, and press F1. Plant Simulation looks up the name of the attribute or of the method in
the index of the help. Double-click the entry in the index to display the corresponding topic in
the right pane.
When the index contains more than one entry about the topic, for example because several objects
have an attribute or a method with the same name, look for the respective entry and double-click it to
show the corresponding topic. In our example below we need help for the method replace. When we
press F1, the index shows the main entry for the expression Replace and jumps to the last topic
under Replace, namely source code in Methods. As we wanted to look up the method replace, we
double-click Replace method to show this topic.
When displaying help topics from the Index, the HTML Help Viewer matches the case. This can,
in rare cases, cause it to show a topic that matches the case when the Index contains two similar
topics with different upper and lower casing. The displayed topic might not always be the topic for
which you needed help. If you find that this is the case, just scroll up or down in the Index pane until
you found the correct topic.
The Auto Complete window in the method editor provides the same functions.
The command Show Statistics Report shows the statistics of the selected material flow object in the
Statistics Report. Or you can press the F6 key.
Instead, you can also right-click the object in the Frame and select Show Statistics Report on the
context menu.
Related Topics
showStatisticsReport
Viewing the Statistics Report
Show Structure
The command Show Structure opens the dialog Structure that shows the structure of the selected
Frame, listing the names of all objects contained within.
• To expand or collapse one level of the structure at a time, click or or select a node with
branches and press the right or left arrow keys on the keyboard.
• To expand or collapse all levels of the structure, select the menu commands Expand All or
Collapse All on the context menu.
• To open the dialog of the selected object, double-click it in the list or select Open on the context
menu.
• To display the attributes and methods of the selected object, select Show Attributes and
Methods on the context menu.
• To find an object, enter its name into the text box next to Find, and click Find. Plant Simulation
searches the structure and highlights the object it found. Click Find again to find additional
instances of the search term.
If you are searching for different objects and do not remember their exact names, you can use
regular expressions in your search, compare the description of the general dialog Show Structure.
Show Inheritance
The command Show Inheritance opens the window Inheritance that shows the paths of the objects
that are derived from the selected object.
• To expand or collapse the levels of the structure one by one, click or or select a node with
branches and press the right or left arrow keys on the keyboard.
• To expand or collapse all levels of the structure, select the menu commands Expand All or
Collapse All on the context menu.
• To find an object, enter its name into the text box next to Find, and click Find. Plant Simulation
searches the structure and highlights the entry in the list. Click Find again to find additional
instances of the search term.
If you are searching for different objects and do not remember their exact names, you can use
regular expressions in your search, compare the description under Show Structure.
Related Topic
Inheritance
Help on Object
The command Help on Object opens the help topic pertaining to the object which you selected in
Frame. When you did not select any object in the Frame window, pressing F1 opens help for the
Frame.
The command Manage Class Library opens the dialog Manage Class Library. You can add the
following items to the Class Library and to the Toolbox or remove them from it:
• Any of the built-in objects.
• Add-in products, which extend the functionality of Plant Simulation. For some of the add-in
products you have to purchase a license from Siemens to utilize them.
• Tools, application object libraries, and additional libraries, which you and your colleagues
develop, or which you purchase from a third-party vendor.
If the object or the library requires a license, Plant Simulation shows the name and the version
number of the required license in the right column.
You can only add objects to an open simulation model.
To update all libraries, which are not current, to the most current state, click Update All Libraries
. Plant Simulation only shows the button when you opened a model. It does not show it when the
dialog is opened while creating a new model. When you click the button, Plant Simulation selects
the most recent available version number of all loaded libraries. It only actually updates the libraries
when you click the OK or the Apply button.
To show this dialog, when you open a new model, select this .
To apply the settings you selected in the dialog to all new models, which you create hereafter, click
Apply to New Models .
To show a description of an object below the list of objects, click that object in the list.
To resize the dialog, grab one of its corners or sides and drag the mouse.
To show in which file and in which directory the libraries are stored, hold down the Alt key
while you click Manage Class Library. This information is especially helpful when
several versions of the same library are located on your computer’s hard drive.
Plant Simulation opens this dialog, when you select the command File > New Model for the first time.
Plant Simulation checks about every half hour if a newer version of any of the loaded
libraries exists.
Related Topics
Make Library
The Method Debugger allows you debug your simulation model. You can stop the simulation and
check how the simulation run is proceeding. You can set breakpoints to stop the simulation, so that
you can monitor the behavior of methods which you programmed.
The Debugger provides access to all data involved in methods, enabling you to inspect the model and
the methods involved. By comparing what is and what should be, you easily detect errors, can correct
faulty source code and continue the simulation run or start it anew.
When Plant Simulationexecutes a Method, you can press Ctrl+Shift+Alt to open the Debugger.
The Debugger ribbon tab provides these commands, which apply to all methods in your simulation
model:
Stop on Controls —
Stop on Formulas —
Stop on Wakeup —
Show Profile —
You can also select most of these settings on the Debug Menu of an open Method, which only
apply to that Method.
You can click More Commands on the Quick Access Toolbar to add more commands to
the Debugger ribbon bar to best meet your needs.
Switch to Debugger
The command Switch to Debugger switches to the open window of the Method Debugger.
Related Topic
debug
Stop on Controls
The command Stop on Controls stops the simulation when the EventController encounters a
Method—an entrance or exit control you entered into an object—started by an object before executing
the calling method and shows that method in the Debugger. Plant Simulation only executes calls by
control methods during a simulation run.
You can also select Stop on Controls on the Debug Menu of an open Method, which only applies
to that Method.
Stop on Formulas
The command Stop on Formulas stops the simulation and opens the Debugger whenever a
formula is evaluated.
You can also select Stop on Formulas on the Debug Menu of an open Method, which only applies
to that Method.
Related Topics
getErrorStop
setErrorStop
The command Stop on Error Handlers stops the simulation and opens the Debugger whenever
an error handling method is being executed.
You can also select Stop on Error Handler on the Debug Menu of an open Method, which only
applies to that Method.
Related Topics
Exception Handling
getErrorStop
setErrorStop
Stop on Wakeup
The command Stop on Wakeup stops the simulation and opens the Debugger whenever the
execution of a suspended method is being continued.
You can also select Stop on Wakeup on the Debug Menu of an open Method, which only applies
to that Method.
Ignore Breakpoints
The command Ignore Breakpoints makes Plant Simulation ignore a user-defined breakpoint
which you set in the Debugger with the commands Debug > Toggle Class Breakpoint and Toggle
Instance Breakpoint.
You can also select Ignore Breakpoints on the Debug Menu of an open Method, which only applies
to that Method.
Related Topic
ignoreBreakpoints
Ignore Errors
The command Ignore Errors stops the simulation after an error occurred in the current method.
Plant Simulation opens the Debugger with the method containing the error and marks the line
containing the error in red.
Note that the simulation might continue in case additional events are entered into the events list of
the EventController. This way you can continue working, although your model contains methods
with faulty code.
The error message contains a description of the problem and the method, the line number of the
error and the active call chain.
You can also select Ignore Errors on the Debug Menu of an open Method, which only applies
to that Method.
Related Topic
setErrorStop
The command Ignore Errors in Formulas prevents Plant Simulation from opening the Debugger when
a runtime error occurs in a formula.
You can also select Ignore Errors in Formulas on the Debug Menu of an open Method, which only
applies to that Method.
Related Topic
setErrorStop
The command Delete All Breakpoints deletes all breakpoints in all methods.
You can also select Remove Breakpoints in All Methods on the Debug Menu of an open Method,
which only applies to that Method.
Related Topic
clearAllBreakpoints
The command Delete All Expressions deletes all expressions of all methods, which you entered
into the Watch Window on the Tab Expressions.
A large number of saved expressions increases the size of the model file and makes
loading and saving the model slower. We recommend to only save expressions while you
are developing the model and delete them afterwards.
The command Show Incorrect Methods opens a window displaying all methods, including the
absolute path, containing errors in their syntax. After loading a model containing syntax errors, this
window opens automatically. Double-click an entry to open the dialog of the Method where you
can correct the syntax error.
The command Find Outdated Functions finds no longer supported methods, attributes, and
functions in the source code of all methods. You then have to take the appropriate measures to fix the
problem, for example replace the outdated functions with the functions that replaced it.
The command also finds observers of outdated attributes, for example observers of ChannelID.
For such observers Plant Simulation opens a window containing a list of all outdated attributes
for the observers. When you double-click an entry in the list, Plant Simulation opens the dialog
Edit Observers for the observed object, as long as only a single observed object exists. If several
observed objects exist, Plant Simulation opens a window with a list of all observed objects. To open
the observer window for the respective object, double-click the respective entry in the list.
The command Show Suspended Methods opens the Watch Window that shows all suspended
methods on the tab Suspended. Double-click the name of the method to open the Debugger with
that method.
The command Terminate Suspended Methods terminates the suspended state of all methods.
The command does not delete the Method object itself, but terminates the suspended
state of this Method.
Related Topic
deleteSuspendedMethods
Activate Profiler
Activate Profiler
The command Activate Profiler activates or deactivates the Profiler. We recommend to only activate
the Profiler when you actually intend to collect profiler data, as activating it all the time may have
negative effects on the run time of your simulation model.
Related Topics
Show Profile
Reset Profiler
Working with the Profiler
profiler
resetProfile
• To activate the Profiler, click Activate Profiler on the Debugger ribbon tab. The
Profiler then starts to collect data for all methods which are called. Start the simulation or call the
method you would like to analyze.
• To analyze the data it collected, click Show Profile after the simulation run is
finished.
• To delete all data left from a previous Profiler run, click Reset Profiler .
Related Topics
Activate Profiler
Show Profile
Reset Profiler
SimTalk
profiler
resetProfile
saveProfile
Show Profile
Show Profile
The command Show Profile opens the Profile window, where you can inspect the results of a
Profiler run.
• It displays the date and time of the simulation run in the first line.
• It displays the name and the path of the model with which the simulation run was executed in
the second line.
• The row Total elapsed time shows the entire time consumed by the simulation run, taking into
account all activities of Plant Simulation. As other programs are also executed by your computer
simultaneously, the time shown here is less than the time that really elapsed.
• The row Total elapsed time for method execution shows the time, which the Interpreter used,
i.e., the time for executing the methods in the simulation model. Only this time can be reduced
by optimized programming of your Methods.
• The table Top 50 Most Relevant Methods shows a global overview over all methods activated
during the simulation.
• The table Top 50 Call Cycles lists every instance, including the time consumed for the caller and
the methods called.
• To update the profilewith the most up-to-date data from the simulation run, click Refresh.
Related Topics
At first the Profiler only shows the classes. When you click the percentage of the class, it
also shows the instances.
Reset Profiler
The command Reset Profiler deletes all data which the Profiler collected. Note that Plant Simulation
does not automatically delete existing data when you activate or deactivate the Profiler.
Related Topics
resetProfile
saveProfile
Back to Ribbon Bar
Looks
Command like Method
this
open3D
Activate 3D
close3D
Full Screen —
modelFile
Open Start Page
selectFileForOpen
Show Favorites —
Show Toolbox —
Show Console —
Cascade Windows —
Tile Horizontally —
Tile Vertically —
List Windows
Arrange Icons
—
List of Open Windows
Windows
Activate 3D
The command Activate 3D activates or deactivates the 3D Viewer (compare the 3D Viewer
Reference Help).
After you started 3D Viewer, the 2D Frame window shows the x-axis and the y-axis in red. The point
where these two red lines intersect is the point, which will be mapped to the zero point, i.e., the
Position of the grid, in 3D.
You can set the origin of the grid in the Frame in 2D with the attribute AxesOrigin.
Related Topics
open3D
close3D
Full Screen
The command Full Screen makes the Plant Simulation fill the entire computer monitor. To return to
normal viewing mode, click the button Close Full Screen on the toolbar Full Screen.
When full screen mode opens on your primary monitor, you can open and close it by clicking the
space bar.
You can also show the frame rate by pressing the F key or use the multimedia buttons on multimedia
keyboards.
The command Open Start Page hides or shows the start page of Tecnomatix Plant Simulation.
On the start page you can:
• Open the simulation model you worked with last by clicking Load Last Model.
• Open one of the eight simulation models you recently worked with by clicking Recent Models.
Clicking the name of a model closes the start page. Closing the model displays the start page
again.
When you drag the mouse over one of the recent models, Plant Simulation shows the path to
that model.
• Open the example and information pages which contains links to information about the
program. Among others you can open sample models showing how to solve modeling tasks.
• Open the online tutorial and work your way through the exercises.
• Open the Online Help to view the list of new and changed features.
• Open the Plant Simulation web page on the Siemens web site.
When you open any of the web pages under Example Models, Plant Simulation adds them to the
window tab bar. You can then click through the tabs to switch between windows.
To close one of the web pages, click the Close button on the title bar of the window.
The command Show Class Library hides or shows the Class Library.
Related Topics
Show Toolbox
Show Favorites
Show Console
Related Topics
clearConsole setConsoleFilter
The command Show Status Bar hides or shows the status bar at the bottom of the program window.
The command Show Message Bar hides or shows the caption bar below the Toolbox. It shows
helpful messages from our programmers.
Cascade Windows
The command Cascade Windows arranges all open windows so that they overlap and aligns them
from the upper left to the lower right of the program window.
Tile Horizontally
The command Tile Horizontally arranges the open windows one below the other so that they do
not overlap.
Tile Vertically
The command Tile Vertically arranges the open windows in rows and columns so that each window
appears in the program window without them overlapping.
The command Close All Windows closes all open object windows of the Method, the QueueFile and
StackFile, the CardFile, the TableFile, and the TimeSequence.
List Windows
List Windows
• Windows
Arrange Icons
The command Arrange Icons arranges the icons of minimized windows the bottom of the program
window.
The window list lists 9 currently open object windows of the Frame , the Method , the Method
Debugger, the QueueFile and StackFile , the CardFile , the TableFile , and the Icon
Editor It also shows open 3D windows. Note that object windows always open in the background.
To select the window of one of these objects and to bring it to the foreground, click it in the list. It
then shows a check mark to the left.
To bring an open object window to the foreground, you can also click the icon of the window in
the window tab bar.
Windows
• To activate the selected window, i.e., to bring it to the foreground in the Plant Simulation program
window and to close the dialog, click .
• To close the window or the windows, which you selected in the dialog, click .
• To cascade the selected windows in the Plant Simulation program window, click .
• To tile the selected windows in the Plant Simulation program window horizontally, click
.
• To tile the selected windows in the Plant Simulation program window vertically, click
.
• To minimize the selected window in the Plant Simulation program window, click .
Related Topics
closeAllWindows
Object Windows
Back to Ribbon Bar
Find a Command
You can use the command Find a Command to search for functions, which you want to use or for
actions, which you want to execute to solve a task.
Enter words and expressions relating to your next task into the text box Find a Command.
Plant Simulation uses the names and the tooltips of the commands for the search. It lists the names
of the commands first in the list of hits.
Instead, you can also press Alt+Q on the keyboard.
Class Library
Class Library
The Class Library shows the built-in objects in a hierarchical view grouped in folders and sub-folders.
Basis designates the Class Library itself, compare the function basis.
By default the Class Library contains a folder for Material Flow Objects, for Resource Objects, for
Information Flow Objects, for Mobile Objects, for Display and User Interface Objects, for Models, and
for Tools.
Create and store the objects, which you yourself develop, in the folder User Objects.
We recommend to not change the standard settings of the built-in objects if possible. If you
customize them and then merge models later on or if you update the class library later on,
your customized settings are going to be discarded and replaced by the standard settings.
You then have to make your customizations again.
If you need objects with your own settings, we recommend to duplicate the respective
object in the Class Library and then work with this class.
The Class Library window also shows the objects of application object libraries which you purchased.
When you modeled your own objects, either in Frames or by modifying any of the built-in objects,
the Class Library also shows these objects. We call these objects application objects. You find
examples of application objects in the folder Tools: The ExperimentManager, the TransferStation, the
SankeyDiagram, etc.
You can show or hide the Class Library by clicking Class Library on the Window ribbon tab.
Instead of closing and reopening the Class Library, you can also hide it: Click to auto hide the
window. When you then click in another window, Plant Simulation hides the window until you move
the mouse over the name of the window again. To deactivate auto hide, click .
Plant Simulation initially opens the frame Frame for creating your simulation model, and any other
Frames you add later on, in the Modelsfolder. The folders in the tree window share a number of
properties with the main objects. Among others you can apply a number of control methods, for
example the Rename control.
When you add an add-in program by clicking Manage Class Library on the Home ribbon tab, the
Class Library also shows its objects—either loose or in a folder of its own—on the topmost level
of the structure below Basis. Note that Basis designates the Class Library itself, compare the
anonymous identifier basis.
When you add your own objects to the Class Library and want to make sure that Plant Simulation
shows their icons in the structure with the same size as those of the built in objects:
• Create a 16 by 16 pixel icon in the Icon Editor.
The Class Libraryalso shows the structure of the selected 3D graphic in the window Show 3D Graphic
Structure.
Related Topics
To arrange the order in which Plant Simulation shows objects within a folder in the tree window,
for example sort them by function or by name:
• Click the object with the left mouse button to select it.
• Hold the mouse button down, drag the object to the location of your choice in the folder and
drop it there.
• Drag the object to the object name of the toolbar> located at the bottom of the respective
folder and drop it there.
The context menu of a folder or an object in the Class Library provides these menu commands:
Plant Simulation shows a short description of the selected command in the status bar.
New
The context menu command New creates a new Folder, a new Frame, or a new Toolbar in the
active simulation model:
• Select the level in the structure, i.e., the folder, to which you would like to add the item.
• Select the item (Folder, Frame, Toolbar ) you would like to add.
• To rename the item, click it with the right mouse button, select Rename, and type in the name
of your choice.
Instead, you can also click the item with the left mouse button, press the F2 key, and overtype the
existing name.
You can also save a folder, or a Frame, you created this way, as an object file, by clicking it with the
right mouse button and selecting Save Object As. You can then load this object into the same or
another simulation model by clicking the right mouse button into the Class Library and selecting
Load Object.
Related Topics
createFolder
createToolbar
Paste
The context menu command Paste pastes the contents of the Plant Simulation clipboard.
Related Topic
pasteClipboard
Open
The context menu command Open opens the dialog window of the selected object class.
Related Topic
_3D.openWindow
Open in 3D
The context menu command Open in 3D opens the window of the selected object class in a new
3D window.
Related Topic
_3D.openWindow
Duplicate
The context menu command Duplicate copies the selected object or model and creates a new class.
Changes you make to the original object are not passed on to the copy you create.
Instead of selecting Duplicate, you can hold down Ctrl and click the object you wish to duplicate
with the left mouse button. Then, hold down the mouse button, drag the copy to the location of
your choice, which as a rule will be another folder, in the Class Library, and release the Ctrl key
and the mouse button.
Related Topics
duplicate
Inheritance
create a duplicate of an MU instance
Derive
The context menu command Derive derives the selected object or model and creates an instance of
the active class. Any change you make to the class object is immediately reflected in your derived
instance, as Plant Simulation established an inheritance relation. This saves time and trouble if you
want a number of objects to be exactly alike.
When you create a new object and when the new name, that you entered, cannot be assigned, Plant
Simulation shows an error message.
Instead of selecting Derive, you can hold down the Ctrl and Shift keys, and click the object you
wish to derive an instance from with the left mouse button. Then, hold down the mouse button,
drag the object to the location of your choice, for example into another folder in the Class Library,
and release both keys and the mouse button.
We recommend to not change the standard settings of the built-in objects if possible. If you
customize them and then merge models later on or if you update the class library later on,
your customized settings are going to be discarded and replaced by the standard settings.
You then have to make your customizations again.
If you need objects with your own settings, we recommend to duplicate the respective
object in the Class Library and then work with this class.
Related Topics
derive
Inheritance
Duplicate
Cut Inheritance
The context menu command Cut Inheritance cuts inheritance relations of the selected object to the
object from which it was derived. Then, the object inherits its settings from the origin of the origin. In
case the origin does not have an origin, the object does not inherit settings at all.
Related Topics
Inheritance
Using Inheritance
Introducing Classes
Modeling Hierarchically
Delete
The context menu command Delete deletes the selected object(s) from the Class Library. To delete
an object, click it once with the left mouse button and select Delete or press the Delete key on the
keyboard.
You cannot delete currently active objects, like Methods, which are executed at the moment. This also
applies when you want to delete a Frame, which contains active Methods. For this reason you cannot
delete a Frame in the constructor-Method, if the constructor-Method itself is located in the Frame.
This opens a dialog window, asking you to confirm your action. You can deactivate this feature under
File > Preferences > Modeling > Delete objects > Confirm.
You cannot undo a delete action! We recommend to save your model before deleting
objects, so that you can return to the previous version of your simulation model file!
Related Topic
deleteObject
Rename
The context menu command Rename changes the name of the selected model or of the selected
object. Select the object, whose name you want to change, and click Rename. This opens the
dialog Rename.
• Enter a new name. You can enter any combination of letters, digits, and underscore (_)
characters, for example MyStation, MyStation1, My_Station_1. The name of an object cannot start
with a digit, i.e., you cannot enter 1Station.
• To accept the new name and close the dialog window, click OK.
• To accept the changes, and keep the dialog window open, click Apply.
The text box Label can hold a tag, other than the name, that the object shows in the Frame. The
context menu that opens, when you click an object with the right mouse button, also provides this
menu command.
Related Topics
setName
Name
Show Origin
The context menu command Show Origin shows the origin of the selected object, i.e., the highlight
jumps from the selected object to the object in the Class Library from which the selected object was
derived. If the highlight does not change, then the object was not derived, but duplicated!
Related Topics
origin
Inheritance
Duplicate
Show the Origin of an Object in the Class Library
Show Structure
Show Structure
The context menu command Show Structure opens the dialog Structure.
The window shows the structure of the selected Frame, listing the names of all objects contained
within.
To do this Click
Show how much memory the individual objects consume. You can also
query this with the method memUsage.
Show all attributes of the object, which are not inherited, i.e., which you
changed in an instance
You can perform the following actions with the commands on the context menu:
• To select the selected object in the Frame that contains your simulation model, select Show.
• To display the attributes and methods of the selected object, select Show Attributes and Methods.
• To open the window of the selected object class in a new window in the 3D Viewer and select
it, select Open in 3D.
• To open, select or zoom the selected object class in a new 3D window, select Show in 3D.
• To display the graphic structure of the selected object in 3D, select Show 3D Graphic Structure.
• To edit the 3D properties of the selected object in 3D, select Edit 3D Properties.
To search an object, enter search expression, which, in the simplest case, consists of the name of the
object and click Find. The program searches the list and highlights the object it found. Click Find
again to find additional instances of the search term. If you are searching for several objects and do
not remember their exact names, you can use regular expressions in your search, such as ^, $,
|, ., *, [, ], to confine your search by exactly putting together the term you want to find. Note that
the program does not distinguish between upper and lower case.
Related Topics
Regular expressions are described in detail under regex_search
Show the Contents of a Frame in the Class Library
Open in 3D
The context menu command Open in 3D opens the window of the selected object class in a new
window in the 3D Viewer and selects it.
The context menu command Show 3D Graphic Structure in the Class Library opens a window which
shows the graphic structure of the 3D-counterpart of the selected object in 2D.
The 3D Viewer differentiates between simulation objects, animatable objects, graphic groups,
state groups,state graphics, and graphics of the selected object. The dialog Show 3D Graphic
Structure shows them in a tree.
Simulation objects have a counterpart in 2D, i.e. they are connected with a
2D simulation object via their name if you activated the check box in the dialog that clicking 3D
Properties > Create In 3D on the Home ribbon tab opens. Connected 2D and 3D Simulation objects
have the same location in the model hierarchy and may share some common data like position. The
dialog Show 3D Graphic Structure shows the graphics in a tree structure which visualize the 3D
simulation object but not the content of this simulation object. To view other simulation objects that a
simulation object of type Framecontains, you have to open the dialog Show Structure for the Frame.
Animatable objects do not have a counterpart in 2D. Just like the simulation objects they have a
number of attributes that describe them and can be controlled via SimTalk commands. They only
serve for visualization purposes in 3D, for example to control a robot. Just like the simulation object
Frame each animatable object can in turn contain other animatable objects.
Graphic groups define the possible visual representations of a 3D object and have a name
that is unique for this object. This is similar to the 2D icons of the simulation objects. You can define a
graphic group to either be external or internal. External graphic groups represent the 3D object
towards the outside, while internal graphic groups are only visible inside of the 3D object (unless
you select the check box Show content). A graphic group can be permanently shown or hidden to
enable switching between alternative graphic groups. Each simulation object or animatable object
contains at least one external graphic group named default and optionally any number of alternative
or additional graphic groups, which you can show or hide independent of each other. The visibility
of the graphic groups is a 3D object property which can be inherited as well as the entire graphic
structure. You can create, delete, or replace graphic groups on the Tab Graphics in the dialog Edit
3D Properties.
State groups are generated groups of state graphics that visualize all the states that are predefined
for a simulation object. You can create, delete, or replace the state group and the underlying state
graphics on the Tab Graphics in the dialog Edit 3D Properties.
State graphics correspond to the LEDs in Plant Simulation2D. Every state graphic is a child of
the state group that visualizes the object state it names and has the same color as the corresponding
LED in 2D. Plant Simulation shows them whenever it displays the corresponding LED in 2D. Note
that several state graphics can be displayed at the same time.
Graphics are all visual/geometric elements and groups of geometric elements in a
graphic group, a state group or state graphic, which describe the entire shape of this group.
The tree grays the icons of elements, which are not yet visible in any 3D window, out.
To find an element in the structure, enter its name into the text box next to the Find button, and click
Find. Plant Simulation searches the list and highlights the object it found. The found element is also
selected in any 3D window in which it is visible. Click Find again to find additional instances of
the search term.
The toolbar provides theses buttons.
To do this Click
Inherit Graphics
Inherit Visibilities
Note that the dialog does not automatically update the graphic structure when you change the
graphic outside of this dialog. To update the contents of the dialog, click on the toolbar or open
any context menu.
Every element in the graphic structure is at least represented by an icon, followed by either a name
or the child index of the element in brackets.
If the toolbar button is activated, then Plant Simulation shows additional information for
graphic nodes. Then structure elements for graphic nodes are described with the notation
<Name>(Index>[-Type]):
• The name is the user-defined name of the node, which may or may not be assigned.
• The index denotes the number of the child node within its parent node.
• The type denotes the name of the JT class type, for example JtGroup. In addition it displays:
• -P followed by the number of polygons in brackets. This information is useful for detecting which
graphics take a long time to render.
The Context Menu of a 3D Object provides commands pertaining to the selected root element in the
structure window which represents the opened 3D object.
The Context Menu of a Graphic Group provides commands pertaining to the selected graphic group.
The Context Menu of a State Graphic provides commands pertaining to the selected state group.
The Context Menu of the State Group provides commands pertaining to the selected state graphic.
The Context Menu of a Graphic provides commands pertaining to the selected graphic.
Inherit Graphics
The button Inherit Graphics shows and sets if the selected object inherits its graphics or not.
When you select a single graphic, the button is grayed out .
Click the button to change graphic inheritance. To prevent you from inadvertently also changing the
graphic of the class, Plant Simulationasks you if you want to cut graphic inheritance. Click Yest o cut
graphic inheritance. Click No to leave the graphic as it is.
Related Topics
Tab Graphics > Object graphics
_3D.InheritGraphics
Inherit Visibilities
The button Inherit Visibilities shows and sets if the selected object or the graphic groups of the
object inherits the visibilities of its graphic groups from the origin object or not. When you select
a single graphic, the button is grayed out .
Click the button to change inheritance of the visibilities of the graphic.
Related Topics
Tab Graphics > Object graphics > Visibilities
_3D.VisibleGraphics
State Graphics
State Graphics
Some 3D simulation objects provide a pre-defined set of state graphics which visualize its states.
State graphics correspond to the LEDs in Plant Simulation 2D, compare States and Icons
of the Material Flow Objects. State graphics have the same color as the LEDs in 2D and Plant
Simulation shows them whenever it displays the corresponding LED in 2D. Note that several state
graphics may be displayed at the same time. All state graphics of an object are grouped in a state
group which is named States.
Blocked yellow
Failed red
Paused blue
Setting-Up brown
Stopped pink
Working green
The states Failed and Stopped, or Powering up or down > Off, and Standby, or
Working and Blocked can never occur at the same time. The 3D Viewer thus shows the
state graphics for these states at the same position.
Each of the state graphics has a graphic node, which you can delete, copy, rename, or whose 3D
properties you can edit by selecting Edit 3D Properties.
Plant Simulation shows state graphics of a simulation object with other external graphics whenever
their corresponding object state is active. That means that the state graphics are automatically
switched on and off during the simulation run when the state of the object changes.
To edit the entire state group:
• Click the object in the scene window with the right mouse button and select Open in New 3D
Window.
• Click any state graphic with the left mouse button and move it to the position of your choice. Plant
Simulation moves all other state graphics simultaneously with the same offset. Or
• Click any state graphic in the scene window or the element States in the dialog Show Graphic
Structure with the right mouse button and select Edit 3D Properties to edit the state group in the
dialog Edit State Group more precisely than you can do with the mouse. Or
• Click the background of the scene window and select Edit 3D Properties for the opened object
and click Edit on the Tab Graphics to edit the state group transformation in the dialog Edit
State Group.
To delete the state group from the object, click the element states in the dialog Show Graphic
Structure with the right mouse button and select Delete.
You can create, replace, or delete the state group on the Tab Graphics in the dialog Edit 3D
Properties by selecting how the orientation of the states for the state group: Horizontal, Vertical, or
None. When you change this setting, the 3D Viewer always deletes all state graphics and creates
new state graphics afterwards, which are arranged accordingly.
Related Topics
Show states as colors if no state graphics are present
Tab Graphics> States orientation
Illustrating State Graphics
The context menu of a state graphic in the structure pane of the dialog Show Graphic Structure
provides the command Visualize and Paste.
Show
The context menu command Show temporarily shows or hides the selected state graphic of the
object in the dialog Show Graphic Structure. When you close the dialog, the 3D Viewer shows the
state graphics again according to the current state of the simulation object.
Paste
The context menu command Paste inserts the graphic from the graphics clipboard into the selected
state group.
When you paste a graphic into a state group of a 3D object which inherits its graphics, the 3D Viewer
asks if you want to cut graphic inheritance for this object or not. The 3D Viewer only pastes the
graphic if you cut graphic inheritance by clicking Yes.
The context menu of a state group in the structure pane of the dialog Show Graphic Structure
provides the commands Visualize All, Edit 3D Properties, Paste, and Delete.
Show All
The context menu command Show All temporarily shows or hides all state graphics of the object in
the active 3D window. When you close the dialog, the 3D Viewer shows the state graphics again
according to the current state of the simulation object.
The context menu of a root object in the structure window of the dialog Show 3D Graphic Structure
provides these commands:
Open Paste
Edit 3D Properties
When you paste into the structure of a 3D object, which inherits its graphics, the 3D Viewer asks if
you want to cut graphic inheritance for this object or not. The 3D Viewer only pastes if you cut
graphic inheritance by clicking Yes.
Open
The context menu command Open opens the selected object in the currently active 3D scene window.
The context menu command Open in New 3D Window opens the selected object in a new 3D
scene window.
If the new 3D window is empty, click External Graphics on the View ribbon tab in the
3D Viewer.
Rename
Edit 3D Properties
The context menu command Edit 3D Properties opens the dialog Edit 3D Properties for the selected
object.
Paste
The context menu command Paste inserts the graphics group from the graphics clipboard into the
selected object.
Delete
The context menu command Add Graphic Group creates a new graphic group for the selected
object.
• Enter the Name of the new graphic group into the dialog that opens. This name has to be
unique for the object.
• Select Internal to make the graphic only visible within its object and only use it for its internal
decoration.
• Select Visible to set that this graphic group visually represents the object from now on.
• Select Locked to prevent this graphic group from being selected inadvertently.
Related Topic
Tab Graphics > Add
_3D.addGraphicGroup
The context menu of a graphic group in the structure window of the dialog Show 3D Graphic
Structure provides these commands:
Visible Rename
Internal Copy
Locked Paste
Generated Delete
When you paste a graphic into a graphic group of a 3D object which inherits its graphics, the 3D
Viewer asks if you want to cut graphic inheritance for this object or not. The 3D Viewer only pastes
if you cut graphic inheritance by clicking Yes.
Visible
The context menu command Visible determines if the selected graphic group will be used for visually
representing the object to which the graphic belongs or not. As long as this command is not selected,
the graphic group is invisible in all 3D windows.
If a graphic group which you selected to be visible is actually shown in a certain 3D window or not
depends on additional object settings and on the scene root of this 3D window.
The icon of a visible or not visible graphic group, MyGraphic in the example below, looks like this:
Related Topic
Tab Graphics > Visible
Internal
The context menu command Internal determines if the graphic group is only visible within its object
and will only be used for its internal decoration or not. Internal graphic groups are also visible on the
outside of the object if Show content is selected. The external graphics on the other hand represent
its object towards the outside.
The dialog 3D Graphic Structure shows internal graphic groups with two yellow cubes, it shows
external graphic groups with two red cubes.
Related Topic
Tab Graphics > Internal
Locked
The context menu command Locked locks the graphic group. This prevents you from selecting this
graphic group in the 3D windows which are opened for this object. This makes, for example, sense
for the graphic of a factory building which might otherwise be selected inadvertently.
Related Topics
Tab Graphics > Locked
_3D.isGraphicGroupLocked
_3D.lockGraphicGroup
_3D.unlockGraphicGroup
_3D.LockedGraphics
Generated
The context menu command Generated shows if the graphic group will be generated automatically
all over again or not.
Rename
The context menu command Rename renames the selected graphic group.
Copy
The context menu command Copy copies the selected graphic group.
Paste
The context menu command Paste inserts the graphics from the graphics clipboard into the selected
graphic group.
Delete
The context menu command Delete deletes the selected graphic group.
Delete
Edit 3D Properties
The context menu command Edit 3D Properties edits the position and the size of the state group
(i.e., of the node named States) of the selected object.
The settings for the Position define the reference point of the state group. For newly generated
state group the position setting is (-1,1,1) for horizontally arranged state graphics and (-1,1,0) for
vertically arranged state graphics.
The setting Scale changes the size of the entire state group. As long as the dialog is open all state
graphics are visualized in the scene window.
To preview your changes in the scene window, click Preview Changes.
To accept and apply your changes, click Applyand OK.
To cancel your changes, click Cancel.
Related Topics
Tab Transformation
_3D.StatesScale
_3D.StatesPosition
Cut
Copy
Delete
Show Inheritance
The context menu command Show Inheritance opens the dialog Inheritance.
The windows shows the paths of objects which were derived from the selected object.
• To expand or collapse one level of the structure at a time, click or or press the right and left
arrow keys on the keyboard.
• To expand or collapse all levels of the structure, click Expand All or Collapse All on the toolbar
in the Structure window.
• To show how much memory the individual objects consume, click Show Memory Usage on
the toolbar in the Structure window.
• To show all attributes which are not inherited, i.e., which you changed in an instance, click Show
Changed Attributes on the toolbar in the Structure window.
• To open the dialog of the selected object, double-click it or select Open on the context menu.
• To display the attributes and methods of the selected object, click Show Attributes and Methods
on the toolbar in the Structure window.
• To delete the selected object from the model, select Delete on the context menu.
• To find an object, enter its name into the text box next to the Find button, and click Find. Plant
Simulation searches the list and highlights the object it found. Click Findagain to find additional
instances of the search term.
If you are searching for several objects and do not remember their exact names, you can use regular
expressions (compare Show Structure) in your search, such as ^, $, |, ., *, [, ], to confine your
search by exactly putting together the term you want to find. Note that Plant Simulation does not
distinguish between upper and lower case.
Related Topics
Inheritance
Show Inheritance Relations in the Class Library
Show MU Statistics
The context menu command Show MU Statistics provides statistical data for the selected class of
MU objects. Plant Simulation shows all data of all objects of this class, which you inserted into the
model, in the Statistics Report. If you did not select an MU class, Plant Simulation shows all statistical
data of all MU classes in the current Class Library.
The command Show Attributes and Methods shows the attributes and methods of the selected
object in the window Show Attributes and Methods.
Instead, you can also right-click the object in the Frame and select Show Attributes and Methods on
the context menu or press the F8 key.
Related Topics
Working with the Dialog Show Attributes and Methods
attributeWatchable
Edit Icons
The context menu command Edit Icons opens the Icon Editor. Here you edit, delete, and add
new icons to objects and models. The context menu that opens, when you click an object with the
right mouse button, also provides this command.
Related Topics
Working with Object Icons States and Icons of the Material Flow Objects
Edit 3D Properties
The context menu command Edit 3D Properties opens the dialog Edit 3D Properties.
Only the context menu of the Frame provides this command.
The context menu command Edit Display Panel opens the Display Panel. Here you can add a new
display panel to the selected object or edit, or delete an existing display panel.
3D models do not provide this command as they do not show display panel.
Related Topics
Make Library
Make Library
The context menu command Make Library saves the selected folder as an object library (.lib). As
compared to an object file a library is a collection of objects for which you enter a version, which
you maintain over time and which you share with your colleagues. The version number enables you
to either update your simulation models with a newer version of the library or to continue using
the present dated version.
The command opens the dialog Library Information.
Type in the name of the library. You can type in any combination of letters, numbers, spaces, and
special characters. The library name does not have to be the same as the name of the library folder.
Type in the version of the library. You can enter any number of numbers and letters separated
by periods.
Type in a meaningful description of the library. The dialog Manage Class Library shows this
description.
Type in one or more alternative paths for your library. As a rule, you will not enter an alternative
path. Plant Simulation identifies a library by its absolute path to the library folder in the Class Library.
When you type in an alternative path, this absolute path will also be assigned to this library.
This may be helpful for two reasons:
1. When you rename the library folder in a new version of your library or when you move the library
into another folder, the absolute path of the library changes.
Plant Simulation will from then on treat the library as another library. If you do not want this, you
can type in the previous path to the library as an alternative path. This way you can update a
model, for which the library is still located under the previous path, with the new library. For this
model, the library remains at its previous location in the Class Library.
2. You can use alternative paths to assign several names in different languages to the library folder.
We, for example, also assigned the German path .Tools.EngpassAnalyse language to the library
.Tools.BottleneckAnalyzer. For this reason Plant Simulation considers both folders as the same
library and can thus update both folders with the same library file.
When you type in the name of a language between $ signs in front of the alternative
path, for example $German$ or $Japanese$, Plant Simulation will automatically use this
path, when you load this library into a model with this language, i.e., when the model
did not already contain this library. The alternative path for the BottleneckAnalyzer is
$German$.Tools.EngpassAnalyse for example.
You can type in any number of alternative paths. Separate alternative paths with
a line break.
Select the check box Requires 3D to tell the user that the library requires the 3D Viewer.
Clear the check box Prohibit access to the computer to allow the methods of that library to access
your computer.
Select the check box Lock library to lock the library.
Click OK.
Plant Simulation saves the folder and all objects it contains as a library. The icon of a library in
the Class Library looks like this .
To also use this library in other models, save the library as a file. To do so, click the library with right
mouse button and select Save/Load > Save Library As. If you want to change the information you
typed in at a later point in time, right-click the library folder and select Edit Library Information.
SimTalk:
writeObject
getLibraryInfo
setLibraryInfo
Related Topics
Save Library As
Save a Folder as a Library
Edit Library Information
Requires 3D
Lock Library
Manage Class Library
Requires 3D
To set that this library requires the 3D Viewer to display the objects it contains and to work correctly,
select this.
When you load a library for which this setting is selected, and when the 3D Viewer is not activated,
you will be asked if you would like to activate the 3D Viewer. When you click No, the library will
not be loaded.
checks the Model setting > Prohibit access to the computer. In this case the library setting
applies instead of the model setting.
Models, which you created in previous versions of the program work as they did before
without any access restriction. If you would like these models access to your computer,
clear the check box.
Related Topic
Prohibit access to the computer
Lock library
To prevent that objects, which are located within the locked library, can be opened interactively,
select this. You can still open instances of these objects, which are inserted in Frames located
outside of the library as you normally would.
When you develop a library and pass it on and when you want to provide newer versions of the library
later on, you should, as a rule, lock the library. This prevents users from inadvertently changing the
library. When the user then updates the simulation model with a newer version of the library later on,
these changes would be overwritten with the settings of the updated library.
When you select Lock library, Plant Simulation opens a dialog into which you can enter a password.
When you do not enter a password, the library can be unlocked again at any time. When you assign
a password, the library can only be unlocked after entering the correct password. This is helpful when
you not only want to prevent inadvertent but also deliberate changes to the library.
Note that a locked library can still be changed via information flow. This ensures that a locked library
behaves the same as an unlocked library. Therefore locking a library does not completely prevent
inadvertent changes.
Locking a library is not suited for protecting the know-how you invested in your library as
instances of the library objects can be opened and viewed. To protect your know-how, you
can encrypt your methods. In addition you can reliably prevent an object and all of its
instances from being opened by entering an encrypted user-defined method attribute as the
Open control of an object. Then, only the encrypted Open control can open the object.
If you want to change a locked library and if you know the password, you can unlock the
library to do so. Then lock the library again before saving it.
Instead of unlocking the library you can also temporarily allow changes to the library without unlocking
it. Hold down the Shift key when you close the message window that opens when you try to open a
locked library object. Plant Simulation asks for the password. When you enter the password, you can
change the library until you close the model. When you then open the library, it will be locked again.
SimTalk:
lockFolder
The context menu command Edit Library Information opens the dialog Library Information. It
shows the information you entered, when you saved a folder as a library with the command Make
Library. You can edit this information to reflect changes you made.
SimTalk:
writeObject
getLibraryInfo
setLibraryInfo
Related Topics
Manage Class Library
Make Library
Requires 3D
Lock Library
Save a Folder as a Library
Access to the computer is permitted
Print
The context menu command Print opens the dialog Print. Select a printer and settings for printing
here.
Related Topic
print
Find Object
Find Object
The context menu command Find Object opens the dialog Find Object.
The Frame and the folder in 3D also provide the context menu command Find Object, compare
Context Menu of the Opened 3D Object.
Related Topics
Depending on what you select in the list to the left, you will enter into the right list:
• The name of the object you want to find.
• A condition. A condition can be a SimTalk expression whose attributes or methods are identical
to the expression you enter in the drop-down combo box. You might, for example, enter the
name of an attribute or a methoda nd the expression you are looking for, such as Proctime =
100, or OpenCtrl = void, etc.
• An expression contained in any of the built-in or the user-defined attributes of the objects within
the search scope. To evaluate them, Plant Simulation converts the attribute values of the objects
to be checked into strings.
• The source code which you entered into a Method object. This also finds source code in
user-defined attributes of data type method.
To jump to the location of the source code in the method editor, double-click the source code in
the results field. Double-click again to jump to the next occurrence of the source code. To jump to
the previous occurrence of the source code, hold down Shiftand double-click.
Depending on what you select, Plant Simulation activates or deactivates the check boxes Match
whole word only, Match case, Regular expression, and Ignore inherited name or text.
Related Topic
To use regular expressions in your search, click the button . Select any of the displayed regular
expressions in the window Regular Expression. The program enters the special characters
designating that expression into the right drop-down list. Enter the expression, which you want to find,
after the special character.
Beginning of line ^
End of Line $
Group \(\)
Or \|
Searching with regular expressions allows you to use wild cards in the string you are searching for.
The period character . for example, is a wild card for any character. When Plant Simulation searches
for a.b, it will find all strings consisting of a sequence of the character a, followed by any character,
and the character b. Compare Show Structure for examples.
Plant Simulation only uses the regular expression you select, when you also select the
check box Regular expression!
To search for whole words only, select this. When you clear it, the program also searches for parts
of words.
Match case
To match the case, upper or lower, of the expression you entered, select this. To find the expression
regardless of the case, clear it.
Regular expression
To use regular expressions in your search, select this. The program then finds the regular
expressions, which you selected in the Window Regular Expression.
To ignore the name or text that an object inherited in your search, select this. The program then only
finds the original name or text, and not the name or text in derived or duplicated objects.
Look in
Enter the name of the folder or the Frame, in which the program is going to start searching for the
expression you entered into the text box. Or click the button and select a folder or a Frame
in the dialog Select Object.
• To search on the highest level of the structure, accept the default that the program enters,
namely the period (.).
• To search the entire Class Library, also select the check box Include subframes.
Include subframes
To also search all Frames located within the Frame in which the item you are searching for is located,
select this.
Find
To start searching for the term, which you entered, click Find.
List of Results
The program shows the items that it found in the list field. Double-click the name of an object or
of the source code in the list field to open its dialog window. You can also right-click the object
and select Open on the context menu. Double-clicking or selecting Open again jumps to the next
occurrence of the found item.
When you searched for source code, you can right-click the Method(s) in the results list and select to
replace the found source code with the source code, which you enter into the dialog Replace in
Selected Methods.
Save Object As
Plant Simulation shows this command, when you select an object other than a folder.
The context menu command Save Object As saves the selected object as an Plant Simulation
object file (.obj). Plant Simulation saves the object, and all objects, which that object uses, together
with their folders and paths.
Enter a name into the dialog Save As and specify a location.
You can then load this object into other simulation models or share it with your co-workers.
To save a folder as an object file, right-click that folder and select Save Folder As.
If you want your saved object to also contain existing 3D data, the 3D Viewer has to be
running when you save the object.
Related Topic
writeObject
Save/Load
Save/Load
Plant Simulation only shows this command, when you select a folder.
Save Folder As
Load Object into Folder
Save Library As
Save Folder As
The context menu command Save Folder As saves the selected folder as a Plant Simulationobject
file (.obj).
• Click the folder with the right mouse button and select Save Folder As.
• Enter a name into the dialog Save As and specify a location where the object file will be saved.
Plant Simulation saves the folder and all objects it contains to the object file.
You can then load this folder into other simulation models and share it with your co-workers.
Save Library As
The context menu command Save Library As saves the selected library as a Plant Simulationlibrary
file (.lib).
• Click the library folder with the right mouse button and select Save Library As.
• This opens the dialog Library Information. If necessary you can change information about the
library here, you can, for example, increase the Library version number. Then click OK.
• Enter a name into the dialog Save As and specify a location where the object file will be saved. If
you would like the library to be available in the dialog Manage Class Library later on, you have
to select a location within the directory which you entered under File > Preferences > General >
Libraries directories.
Plant Simulation saves the library to the specified library file. You can then load this folder into other
simulation models and share it with your co-workers.
Related Topics
Make Library
Save a Folder as a Library
writeObject
getLibraryInfo
setLibraryInfo
Load Object
The context menu command Load Object loads an object or a Frame (which you saved as an object
file ( .obj) with the command Save Object As) into the simulation model.
It also loads a library, which you saved as a library file ( .lib) with the command Make Library, into
the simulation model.
Plant Simulationloads the object, with all of its existing paths and the folders, sub-folder and classes
the objects inherit values from, into the Class Library at the Basislevel. It does not matter on which of
the built-in folders, such as MaterialFlow, MUs, etc. you clicked, when you selected Load Object.
The loaded object may contain classes, which already exist in the Class Library. To preserve the
existing objects in your simulation model, and to discard duplicate objects that are contained in the
model you load, you will use Load Object, and then select to Replace the loaded class with
the one in the class library.
To port a lower version of a simulation model or of an application object library to a higher version with
modified and improved classes, you will use Update Class Library.
• Click any folder in the Class Library with the right mouse button. Select Load Object.
• If an object or a Frame with the same name as the object to be loaded already exists in your
simulation model, Plant Simulation opens the dialog Replace or Rename Class.
To Replace the new object with the one in the class library, select this. Then, the program
does not load the new object, but replaces it with the existing object and merges all inheritance
hierarchies into one.
To replace all duplicate objects, click Replace All.
To Rename and keep the duplicate class, select this. Then, enter a new name for the duplicate
class object into the text box.
Enter a new name for the duplicate object class into the text box.
When the object to be replaced is a Frame, select General > Replacement Mode and then,
if you want to Merge the contents of the new Frame with the existing one or if you want
to Exchange the existing Frame.
• When replacing and merging is possible, a dialog opens where you can confirm that you want
to replace the object.
Instead of using Load Object, you can also drag an obj file from the Windows Explorer to the Class
Library, and drop it there.
If the loaded object does not contain existing 3D data, the 3D Viewer was not running when
you saved the object. To also export 3D data, save the object again while the 3D Viewer is
running. The 3D Vieweralso has to be running in the model into which you load the object.
SimTalk:
loadObjectAs
autoexecLoadObj
replace
ReplacementMode
Related Topics
Save Object As
Replacement Mode
autoexecLoadObj
The context menu command Update Class Library loads an object or an object library into the Class
Library at the Basis level.
• You can save an object as an object file ( .obj) with the command Save Object As.
• You can save an folder as a library (.lib) with the command Make Library.
You will use Update Class Library to update an application object library, you and your coworkers
are working on, with the most up-to-date classes you developed.
When loading the object file, Plant Simulation supposes that the classes in the file it is loading are the
most recent ones, and replaces any existing classes with the same name in your model file. Note that
this replaces the old class with the new class, but attaches any instances of the old class to the new
class, and thus preserves the settings you made in these instances. This applies for classes that
are located in the hierarchy directly below the newly saved class.
For classes that were saved through an inheritance relation, and that are located outside of this
hierarchy below a class, Plant Simulation opens a dialog, in which you have to select to replace any
duplicate classes or to rename them.
Your license determines how you can update the Class Library: When you are running a
Standard License or an Application License you can only update the Class Library with
objects, which you saved in a Professional License. When loading an object you can only
merge Frames, when the object to be loaded was saved in a Professional License.
Related Topics
autoexecLoadObj
Plant Simulation shows the context menu command Convert all Methods to New Syntax when you
hold down the Shift key and click the object Basis in the Class Library with the right mouse button.
The command converts the source code of all Methods in the Class Library to the New Syntax
of SimTalk 2.0.
Favorites
In the Favorites window you can add links to the following windows that you need to access
frequently:
• Frame windows
• Method windows
• CardFile windows
• TableFile windows
• Windows of user-defined attributes of data type method, table, list, stack, and queue.
To add one of these opened windows to your favorites list, click Add to Favorites
.
To delete the selected favorite from the Favorites list, select it and click the Delete
button.
You can then quickly open the respective window by double-clicking its name in the favorites list.
Toolbox
Toolbox
The Toolbox is a container for the different Plant Simulation toolbars that hold the objects of the Class
Library. By default, the Toolbox window shows the built-in objects on the tabs/toolbars MaterialFlow,
Resources, InformationFlow, UserInterface, User Objects, and Tools. You find the toolbars for
the objects at the very bottom of their folders next to the icon .
When you add an add-in program by clicking Manage Class Library on the Home ribbon tab, Plant
Simulation also adds a tab/toolbar with the object(s) of this add-in.
While modeling, you insert the objects from the Toolbox into your simulation model. Proceed as
follows:
• To insert a single object, click the object with the left mouse button, drag the mouse to the Frame,
in which you create your model, to the position of your choice and click the left mouse button.
Repeat this until you have insert all of the required objects.
• To insert an object from the Toolbox into a Frame one after the other without interruption, hold
down the Ctrl key and select the object. The object remains selected in the Toolbox after inserting
it and you can thus insert several of these objects one after the other. You can exit this mode
by clicking the right mouse button or by pressing the Esc key.
Instead of closing and reopening the Toolbox, you can hide it: Click to auto hide the window.
When you then click in another window, Plant Simulationhides the window until you move the mouse
over the name of the window again. To deactivate auto hide, click .
Plant Simulation displays the object with the icon named ToolboxIcon. If this icon does not exist, it
displays the object with its first icon, i.e., the icon with the number 1.
The context menu of the selected object in the Toolbox provides the same commands as the Context
Menu of the Selected Object in the Class Library.
Related Topics
Open
The context menu command Open opens the dialog of the class of the selected object.
The context menu command Remove from Toolbar removes the object from the toolbar.
To add an object to a toolbar, drag it from its folder in the class library to the toolbar of your choice
and drop it there.
SimTalk
delObject
Related Topic
Add Objects to the Toolbox or Delete Them from It
Insert a Separator
The context menu command Insert a Separator inserts a vertical line as a separator to the left
of the selected object.
The context menu command Remove the Separator removes the separator to the left of the selected
object from the toolbar, which you inserted with the command Insert a Separator.
The context menu command Show in Class Library shows and highlights the class of the selected
object in the Class Library.
The context menu command Show 3D Graphic Structure shows the window Show 3D Graphic
Structure.
Show Inheritance
The context menu command Show Inheritance shows the window Show Inheritance.
The context menu command Show Attributes and Methods shows the window Show Attributes and
Methods.
Edit Icons
The context menu command Edit Icons opens the Icon Editor.
Edit 3D Properties
The context menu command Edit 3D Properties opens the dialog Edit 3D Properties.
The context menu command Edit Display Panel opens the Display Panel.
3D models do not provide this command as they do not show display panel.
Help on Object
The menu command Help on Object opens the help topic pertaining to the object you selected
in the Toolbox.
Related Topic
Using HTML Help
Related Topics
Delete Print
Show MU Statistics
Visible
The context menu command Visible shows or hides the selected toolbar in the Toolbox.
Related Topic
Visible
To view all of the methods and attributes of the Folder and of the Toolbox, open the window Show
Attributes and Methods. The figure below illustrates the information using the example of the
object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.print([PrinterName:string])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
addObject
Syntax: Path.addObject(Icon:object [,Position:integer]) → boolean
The method addObject adds the icon of an object to the toolbar designated by Path.
Parameters
• The parameter Icon of data type object designates the entire path to the object.
• The optional parameter Position of data type integer designates the position of the icon/button on
Return Value
The return value has the data type boolean.
Example: -- adds the icon of the object MySingleProc to the toolbar Material Flow
-- and positions it to the right of the object SingleProc
.MaterialFlow.Toolbar.addObject(.Materialflow.MySingleProc,08)
Related Topic
Add Objects to the Toolbox or Delete Them from It
delObject
Syntax: Path.delObject(Icon:object) → integer
The method delObject deletes the icon of an object from the toolbar designated by Path.
Parameter
The parameter Icon of data type object designates the entire path to the object.
Return Value
The return value has the data type integer.
The method returns the position of the button, if the object was present on the toolbar. It returns 0,
if it was not present.
Example: -- deletes the icon of the object MySingleProc from the toolbar Material Flow
.MaterialFlow.Toolbar.delObject(.Materialflow.MySingleProc)
Related Topics
Remove from Toolbar
Add Objects to the Toolbox or Delete Them from It
Visible
Syntax: Path.Visible
The attribute Visible hides (false) or shows (true) the toolbar designated by Path in the Toolbox.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: -- hides the toolbar Materialflow in the Toolbox
.Materialflow.Toolbar.visible := false
Related Topic
Context menu command Visible
To view all of the methods and attributes of the Folder, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methodsof the selected Class.
• Press the F8 key or click Show Attributes and Methodson the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.print([PrinterName:string])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
createFolder
The method createFolder creates a new folder, either at root level, under Basis, in the Class Library
or in the folder designated by Path. Plant Simulation assigns the name NewFolder, NewFolder1, to
that folder. You can assign a name of your choice by modifying the return value.
Return Value
The return value has the data type object.
Related Topic
New
createToolbar
The method createToolbar creates a new toolbar, either at root level, under Basis, in the Class
Library or in the folder designated by Path. Plant Simulation assigns the name Toolbar, Toolbar1, etc.
You can assign a name of your choice by modifying the return value.
Return Value
The return value has the data type object.
Related Topic
New
getLibraryInfo
The method getLibraryInfo returns if the folder designated by Path is a library (true) or not (false).
If it is a library, Plant Simulation assigns the library information to the local variables of data type
string, which you pass.
Parameters
You can call the library with one up to five optional parameters.
• The optional parameter Name, which is a local variable to which the value is assigned, designates
the name of the library.
• The optional parameter Version, which is a local variable to which the value is assigned,
designates the version of the library.
• The optional parameter Description, which is a local variable to which the value is assigned,
designates the description of the library.
• The optional parameter FilePathToLibrary, which is a local variable to which the value is assigned,
designates the file path of the library file (.lib). This is useful when you want to load data from a
file, which is located in the same directory as the .lib file.
• The optional parameter Requires3D, which is a local variable to which the value is assigned,
designates if the library requires the 3D Viewer to work correctly or not.
• The optional parameter IsProhibited, which is a local variable to which the value is assigned,
designates if the current model does not have access to the computer (true) or has access to
the computer (false).
Return Value
Related Topics
Make Library
setLibraryInfo
getLibraryVersionFromFile
HiddenWhenInLockedFolder
Syntax: Path.HiddenWhenInLockedFolder
The attribute HiddenWhenInLockedFolder sets if the folder designated by Path will not be shown in
the Class Library when it is located within a locked folder (true) or if it will be shown (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
lockFolder
loadObjectAs
The method loadObjectAs loads an object, which you saved to a file—with the extension .obj—, into
the folder designated by folder. In most cases this will be Class Library itself, designated by . or basis.
Parameters
• The parameter Object of data type string designates the object.
• The parameter NewName of data type string designates the new name of the object if you
would like to assign a different name. If you would like to define the boolean parameters, but
want to keep the existing name, enter an empty string, i.e., a string of length zero (""), as the
parameter string.
The loaded object may contain classes, which already exist in the Class Library. These classes
have to be merged.
• The optional parameter AutoMerge of data type boolean sets if AutoMerge is active (true) or if
Plant Simulation opens a dialog in which you manually select how it merges objects (false). In
addition Plant Simulationdoes not create a Merge Report, when AutoMerge is active.
• The optional parameter ReplaceExistingClass of data type boolean determines whether the
newly loaded classes will replace existing ones (true) or if the existing classes in your Class
Librarywill be preserved (false), when Automerge is true.
To preserve the existing objects in your simulation model, and to discard duplicate objects that
are contained in the model you load, you will use Load Object, and then select to Replace the
loaded class with the one in the class library.
Selecting the context menu command Save/Load > Load Object in the Class Library
accomplishes the same as setting the parameter boolean to false. Selecting the context menu
command Save/Load > Update Class Library accomplishes the same as setting the parameter
boolean to true.
This parameter does not have any effect when loading a library because Plant
Simulation determines according to the version number if the library will be updated
or not.
• The optional parameter Password of data type string sets the password which is going to be
used to load an encrypted object file.
Return Value
The return value has the data type object.
SimTalk
autoexecLoadObj
lockFolder
The method lockFolder locks a folder with a password. Plant Simulation prevents objects, which are
located inside of a locked folder, from being opened interactively. To unlock a library folder, clear the
check box Lock library in the dialog Manage Class Library and enter the password. Alternatively you
can hold down the Shift key while clicking the OK button in the dialog of the error message that Plant
Simulation showed when you tried to open the object. Then Plant Simulationprompts you for the
password of the locked folder. This temporarily suppresses the lock of the designated library folder.
When you save your model and open it again, Plant Simulation does not suppress the lock any more.
You can, for example, use the method lockFolder to prevent that libraries are inadvertently changed.
Note that changes via information flow are still possible though.
Plant Simulation prevents only the objects, which are located within the locked folder, from being
opened interactively, but not instances of those objects which have been inserted into Frames
outside of the locked folder.
Parameters
• The parameter Lock of data type boolean sets if the folder and all of its sub-folders will be locked
(true), or unlocked (false), or if the lock will be removed (void).
The value false removes the lock through a surrounding folder. The value void removes a lock
and reactivates a possibly existing lock of the surrounding folder.
• The parameter OldPassword of data type string designates the old password.
When you call the method lockFolder for an already locked folder, you have to enter the password
for this parameter. If you enter the wrong password, the method lockFolder fails. When the folder
has not been locked yet, the parameter OldPassword will be ignored.
• The parameter NewPassword of data type string designates the new password.
You only have to enter the parameter NewPassword when the parameter Lock is set to true.
When you pass an empty string, Plant Simulation does not set a password. Otherwise you can
only remove the lock by entering the correct password.
• The parameter EncryptMethods sets if all methods, which are located within the folder and are
not encrypted, are to be encrypted (true) or not (false). If you do not pass the parameter, the
methods will not be encrypted. If the parameter Lock is not true, the parameter EncryptMethods
will be ignored.
Related Topics
HiddenWhenInLockedFolder
Lock library
node
Syntax: Path.node(ObjectNumber:integer) → object
The method node calls an object within a folder. Plant Simulation numbers the objects within folders
in your model in the order in which you insert them.
Parameter
The parameter ObjectNumber of data type integer designates the number of the object.
Return Value
The return value has the data type object.
Example: print .Models.MnEnginePlant.node(5);
-- returns the path and the name of the object designated by node,
-- for example .Models.EnginePlant.Track
Related Topic
numNodes
numNodes
The method numNodes returns the number of objects in the Folder designated by Path. Each
additional folder you insert into the selected folder counts as a single object. Plant Simulation does
not count the objects contained within the folders.
Return Value
The return value has the data type integer.
Related Topic
node
pasteClipboard
Syntax: Path.pasteClipboard[TargetTableOfPastedObjects:table]
The method pasteClipboard pastes the contents of the Plant Simulation clipboard, i.e., the objects
which you copied in a folder, into the Class Library. Here Path designates the folder in the Class
Library.
Parameter
The optional parameter TargetTableOfPastedObjects of data type table sets, if Plant Simulation
writes all pasted objects to this table after it executed the method. The table has one column of
data type object.
Example: .Materialflow.pasteClipboard(MyPastedObjects);
Related Topic
Paste
setLibraryInfo
Syntax: Path.setLibraryInfo(Name:string, Version:string [,Description:string, Requires
The method setLibraryInfo sets if Plant Simulation treats a folder as a library, and sets the name
and the version of the library.
Parameters
• The parameter Name of data type string designates the name of the library.
• The parameter Version of data type string designates the version of the library. You can enter
any number of numbers separated by periods.
• The optional parameter Description of data type string designates the description of the library. If
you do not assign this parameter, the current description will not be changed.
• The optional parameter Requires3D of data type boolean sets if the library requires 3D (true) or
not (false).
• The optional parameter Requires3D of data type boolean sets that the library cannot access the
computer (true). If you do not pass the parameter, the setting Prohibit access to the computer
will not be changed.
You cannot pass the value false as, for security reasons, it is not allowed to grant a library access
to the computer via information flow.
Example:
Related Topics
Make Library
getLibraryInfo
setRequiredLicense
Syntax: Path.setRequiredLicense(Feature:string, Version:string, Password:string[, Free
The method setRequiredLicense tells the library folder designated by Path to request a user-defined
license.
When you load a simulation model or an object, which contains such a library, Plant Simulation
looks for the corresponding user-defined license in the Windows Registry. If it does not find a valid
license with the specified feature name, the program cannot load the simulation model or the object
respectively.
The registered license is only valid when the version is greater than or equal to the requested version,
when the Host-ID of the license matches the Host-ID of the computer and when the validity date of
the license has not been exceeded, and when the password of the registered license matches the
password of the requested license.
Using a user-defined license you can restrict the passing on of simulation models and objects,
including libraries.
• To restrict the passing on of a simulation model, call basis.setRequiredLicense and then save
the model.
• To restrict the passing on of a library, call setRequiredLicense for the library folder and then
save the library.
Parameters
• The parameter Feature of data type string designates the name of the license feature. When
you pass an empty string "", an existing license will be removed provided you enter the correct
password.
• The parameter Version of data type string designates the version number of the license. Note
that the registered version has to be greater than or equal to the requested license.
If, for example, version 10 of the feature is registered, you can request version 9.5.0 but not
vice versa.
• The parameter Password of data type string designates a secret password. The password of the
registered license has to match the this password so that the registered license is considered
valid.
• The optional parameter FreeInLicense of data type string sets that the user-defined license is not
requested when Plant Simulation uses the requested license type or a license type of lower value.
You can enter "Application", "Runtime", or "Simulation". Note that when Plant Simulationuses a
Viewer license no user-defined licenses are requested, meaning that objects and models with
user-defined licenses can always be loaded into a Viewer license.
• The optional parameter Comment of data type string sets the text which will be attached to the
message, which is shown in the message window when no license exists when loading the object
or the model. This only applies if you did enter any text.
You can generate user-defined licenses with the SimTalk function createLicenseFile.
Example: .Standard.MyLibrary.setRequiredLicense("MyFeature", "9.5.7", "MySecretPassword
Related Topics
checkForLicense
createLicenseFile
Console
The Console shows information about actions, which Plant Simulation executes. You can select which
information the Console window shows under File > Preferences > User Interface > Console filter.
You can also select one or several of the filters for the current simulation model on the context
menu of the Console window.
• Print:
To show output from print commands in Methods, select this command.
• Info:
To show text, which is displayed in info boxes, such as those shown during the reset and init
phases of the model, select this. In addition, it includes warnings, for example when you use a
no-longer-supported attribute in a method. When you start the program with the command-line
parameter -NoWarning, it does not write any of the above to the Console.
• Message:
To show miscellaneous messages, select this command.
• Debug:
To show additional information and internal program messages, such as potential problems,
select this. When you start the program with the command-line parameter -NoWarning, it does not
write any of the above to the Console.
Plant Simulation also counts all of the built-in objects, which are contained in the entire model,
i.e., in the Class Library and in all Frames. It does not count these objects: Lists and Tables,
Methods, Variables, MUs, and Connectors.
You might want to know this number if you are working with a Plant Simulation Standard License
which is limited to 4000 objects. SimTalk: numOfLimitedObjects
• To record messages, display the Console by clicking on the Window ribbon tab. To not
record messages, hide it.
• To copy the contents of the Console window, select the text it contains and then select Copy.
• To select the entire text in the Console window, select Select All.
• To close the Console window, select Hide. To show it again, click on the Window ribbon tab.
• To auto hide the Console, click . When you then click in another window, Plant Simulation
hides the window until you move the mouse over the name of the window again. To deactivate
auto hide, click .
When the Console window shows a path to an object, you can open this object by double-clicking the
respective line.
The open Console window may slow down your simulation model!
Related Topics
openConsole
When you move a docked window, this might affect the location and size of other
windows in the same row.
• To prevent a floating window from docking when you drag it, hold down the Ctrl key, and move
the window to a position.
• To make a docked window a floating window, double-click the title bar or hold down the Ctrl
key, and drag the window.
• To dock a floating window again, double-click its title bar or drag the window to one of the sides of
the program window or to a location beside another docked window, it docks there.
• To make the selected window into a floating or a docking window, click the right mouse button
and select Floating or Docking.
• To customize the ribbon bar or keyboard shortcuts, click the Quick Access Toolbar and select
the command More Commands.
Icon Editor
Icon Editor
Each and every Frame and object in Plant Simulation has to have at least one icon. Plant Simulation
displays the object in the Class Library, the Toolbox, and in the Frame with this icon.
Plant Simulation uses icons to animate the parts, the transporters, etc. that the material flow objects
process during a simulation run.
You can modify the icons representing the simulation objects and the animation structures, i.e.,
the animation points and animation lines, that define the animation of your simulation model, in
the Icon Editor.
By default Plant Simulation shows the state of the material flow objects and of the Frame itself during
your simulation runs as one or more colored dots in the LED display along the top border
of the built-in icon of the object in the Frame.
You can also use the setting State Icons/LEDs to display the state of operation of an object, such
as failed, paused, etc. during a simulation run. You can modify the built-in icons or design new
icons in the Icon Editor.
When a user-defined object class has an icon named ClassLibrary, Plant Simulation shows the
objects of this class in the Class Library with this icon. Note that the size of this icon should be
16 by 16 pixels.
To edit the icon of an object, right-click it in the Frame and select Edit Icons on the context menu.
Related Topics
Working with Object Icons States and Icons of the Material Flow Objects
You can edit, delete or design new icons for models and objects in the Icon Editor. You can open it:
When you clicked New Icon on the Edit ribbon tab of the Icon Editor, you can also drag an object
over the open window of the Icon Editor and drop it there.
The title bar of the Icon Editor shows the path to and the name of the object or model you opened in
the drawing window. The Icon Editor provides its functions on the Edit Ribbon Tab, the Animation
Ribbon Tab, and the General Ribbon Tab.
Each object or model has to have at least one icon to display the object with in the Class Library, in
the Toolbox, and in the Frame. That icon has the Number 0 and the name Default.
When you created several icons for an object, you can assign another Default icon: Click Previous
Icon or Next Icon to cycle through the icons and select the check box Current to the right of
the text box Name to designate that icon as the current icon with which Plant Simulation displays the
object. When an object class has an icon named ClassLibrary, Plant Simulation shows the objects of
this class in the Class Library with this icon. Note that this icon should be 16 by 16 pixels.
The Icon Editor shows the icon enlarged in the drawing area, it shows its original size of the icon
above the Color Palette. In addition, the Icon Editor shows the reference point of the icon in the
drawing area.
Number
The Icon Editor shows which icon with which number out of the total amount of icons it displays at the
moment. 1/3, for example, means it shows the icon with the number 0 out of a total of 5 icons of
the object.
It shows the x-coordinate and the y-coordinate of the cursor in the drawing window below the
Number in parenthesis.
When you select the color picker , it shows the RGB values of the pixel on which the color
picker is located.
Name
The Icon Editor shows the name of the icon in the text box. To change this name, select it in the text
box and overtype it with a meaningful name.
Plant Simulation automatically sets upper and lower casing of the name of the icon.
To save memory and improve access speed, all places which use such an case-insensitive
string point to the same string in main memory. The visible and unexpected result is that
the first occurrence of the string defines how the string is written in terms of upper- and
lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
Current
To make the displayed icon the current icon with which the object is displayed in your simulation
model, select the check box Current.
SimTalk
closeImg createIcon
CurrIcon CurrIconNo
delAniPoint delAniPoints
deleteIcon getAniPoints
linkAniPoint ObjectAngle
ObjectMirrored mirrorX
mirrorY openImg
putIconToClipboard resetIcon
saveIconToFile setCurrIconFromClipboard
setIconFromFile turnIcon
unlinkAniPoint
Color Palette
By default the color palette on the left hand side of the Icon Editor window shows twenty colors. To
replace one of the twenty predefined colors with a color of your choice:
• Double-click the color you would like to change and edit it in the dialog Color. Or
• Click the color you would like to replace in the color palette. Or
• Click Drawing Color on the Edit ribbon tab of the Icon Editor, pick a new color in the Color
dialog and click OK.
• Double-click the active color field and add another color to the active color field in the dialog Color.
To set a color, move the mouse in the color matrix over the area that is similar to the color you want.
Click Select. This adds the color to one of the fields in the color palette in Plant Simulation.
The field directly below the color palette shows the transparency color. Click it and select the
color which the Icon Editor draws Activate Transparency. The background of the Frame shines
through any area you marked as transparent, when you insert the object.
The fields below the transparency color field show the active drawing colors. You can assign
a color each to the left and to the right mouse button and then use the left and the right mouse
button to draw with these colors.
To assign another color the left mouse button:
• Click that color in the color palette with the left mouse button. Or
• Double-click the color field and define a color of your choice in the dialog Color. This adds that
color to the top drawing color field.
• Select any of the drawing tools and click and hold down the left mouse button to manipulate the
icon with that color.
• Click that color in the color palette with the right mouse button. Or
• Double-click the color field and define a color of your choice in the dialog Color. This adds
that color to the bottom drawing color field.
• Select any of the drawing tools and click and hold down the right mouse button to manipulate the
icon with that color.
Related Topics
Activate Transparency
Pick Color
The Edit ribbon tab of the Icon Editor provides these commands.
Import
Import Bitmap File openImg
Import Icon Resource
Overview —
Zoom In —
Zoom Out —
setPixel
Pick Color
getPixel
Draw Freehand —
Draw Line —
Draw Polyline —
Draw Ellipse —
Draw Rectangle —
Fill Area —
Paste Area —
setPixel
Replace Color
getPixel
Delete deleteIcon
setIconSize
Set Icon Size
getIconSize
Inherit Icon —
Apply Changes —
The other tabs on the Ribbon Bar provide additional commands pertaining to the Icon
Editor.
New Icon
The command New Icon opens an empty drawing window. Here you can draw a new icon, import an
existing icon by clickingImport, or paste an icon, which you can then modify.
To add the icon to those already defined, enter a name into the text box Name and click Apply
Changes .
SimTalk
createIcon
Import
Import
The command Import provides the subcommands Import Bitmap File and Import Icon Resource
allowing you to import images for your icons.
You cannot import an image into the icons named Operational and Default. You can only
import a file into a new icon, i.e. after you clicked New Icon on the Edit ribbon tab.
The command Import Bitmap File opens the dialog Open. Select the graphics file that will be
imported. Plant Simulation can open . png, .gif, .bmp, .dgn, .dwg, .dxf, and . ico files.
Before you are going to import a .dwg file into the Icon Editor, adjust the icon’s size
according to the size of the .dwg file by clicking Set Icon Size on the Edit ribbon tab.
SimTalk
openImg
The command Import Icon Resource opens the dialog Change Icon. Select the icon resource you
want to use as the icon of the selected object.
The command Export Icon to File opens the dialog Save As. Enter the name and the file type of
the file. You can save files in the formats dib ( Device Independent Bitmap), png ( Portable Network
Graphic), and ppm ( Portable Pixelmap).
SimTalk
saveIconToFile
Overview
The command Overview shows all icons of the object or model in a window side by side. To open
an icon in the drawing area, click it.
Zoom In
The command Zoom In zooms the contents of the drawing window in.
Zoom Out
The command Zoom Out zooms the contents of the drawing window out.
To change the current drawing color, you can also double-click its field below the Color Palette, and
then edit the color in the dialog Colors.
Pick Color
The command Pick Color activates the Pick Color tool, which sets and applies the drawing color:
• Place the color dropper on the color in the drawing window, which you would like to use as the
drawing color and click the left mouse button.
• The Icon Editor adds that color to the drawing color field Plant Simulation enters that color into
the drawing color field below the Color Palette.
SimTalk
setPixel
getPixel
Draw Freehand
This command is only active when you create a new icon after you clicked New Icon.
The command Draw Freehand draws a freehand line with the active drawing color.
• Then, click into the drawing area with the left mouse button, hold the mouse button down and
drag the mouse.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Draw Line
This command is only active when you create a new icon after you clicked New Icon.
The command Draw Line draws a straight line with the active drawing color.
• Then, click into the drawing area with the left mouse button, hold the mouse button down and
drag the mouse.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Draw Polyline
This command is only active when you create a new icon after you clicked New Icon.
The command Draw Polyline draws a polyline (polygonal chain) with the active drawing color.
• Then, click once into the drawing area with the left mouse button to set the starting point of the
line, click again to set the next anchor point. Plant Simulation connects the anchor points to
create the line. Continue this until the polygonal chain meets your needs.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Draw Ellipse
This command is only active when you create a new icon after you clicked New Icon.
The command Draw Ellipse draws the outline of a circle or of an ellipse with the active drawing color.
• Then, click once into the drawing area with the left mouse button to set the starting point of the
shape, hold the mouse button down and drag the mouse.
Once the circle or ellipse has the shape you want, release the mouse button to have Plant Simulation
draw the outline of the shape.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Draw Rectangle
This command is only active when you create a new icon after you clicked New Icon.
The command Draw Rectangle draws the outline of a rectangle with the active drawing color.
• Then, click once into the drawing area with the left mouse button to set a corner of the rectangle,
hold the mouse button down and drag the mouse to the opposite corner and release the mouse
button so that Plant Simulationdraws it.
• To undo the line you inserted, click Previous Icon or Next Icon click No in the dialog that
opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Exporton the Edit ribbon tab of the Icon Editor.
This command is only active when you create a new icon after you clicked New Icon.
The command Draw Filled Rectangle draws a filled rectangle with the active drawing color.
• Then, click once into the drawing area with the left mouse button to set a corner of the shape,
hold the mouse button down and drag the mouse to the opposite corner.
• Click the mouse button again to set the second corner of the rectangle and to have Plant
Simulation draw and fill it with the active drawing color.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on theEdit ribbon tab of the Icon Editor.
Fill Area
This command is only active when you create a new icon after you clicked New Icon.
The command Fill Area fills a continuous area with the active drawing color.
• Then, drag the mouse over the shape you want to fill and click the left mouse button. You might,
for example fill any of the shapes you inserted with the Draw Ellipse or Draw Rectangle tools.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
This command is only active when you create a new icon after you clicked New Icon.
The command Copy and Paste Area copies the selected area and inserts it at the position of the
cursor, when you click the mouse button.
• To select any rectangular area in the drawing area, drag a marquee over it: Click the left mouse
button to set a corner, hold the mouse button down and drag the mouse to the opposite corner.
Then, release the mouse button.
• To paste the selected area, which Plant Simulation attached to the cursor, into the sameicon,
drag the mouse to a different location and click the left mouse button.
• To paste the selected area into another icon, select the command Paste Area.
• To terminate Copy Area mode, click the right mouse button once.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Paste Area
This command is only active when you create a new icon after you clicked New Icon.
The command Paste Area inserts the part of the image that you copied to the clipboard with the tool
Copy and Paste Area into the icon. The Icon Editor attaches the area to be pasted to the mouse
pointer. Move it to the location of your choice and click the left mouse button to place it.
Replace Color
This command is only active when you create a new icon after you clicked New Icon.
The command Replace Color replaces all pixels of the active drawing color with the pixels of the
color you select in the color palette:
• Make sure that the active drawing color is the color you want to replace.
• Select the color you want to replace the active drawing color with in the Color Palette.
SimTalk
setPixel
getPixel
The command Set Icon Size sets the size of the new icon.
The command opens the dialog Size in which you can set the individual settings.
Note that Plant Simulation automatically converts the pixel values you enter into length units and
vice versa. This is especially handy, because you can now enter the length of your parts in meters
and don’t have to manually convert that length into pixels taking the scaling factor into consideration.
Plant Simulation then shows the icons with their correct size in your simulation model.
To enter the width and the height of the icon in pixels, select pixels. Plant Simulation automatically
converts the pixel values you enter into length units and vice versa.
• Enter the width of the icon in pixels. The size is limited to 9999 x 9999 pixels. Plant Simulation
automatically converts the pixel values you enter into length units and vice versa.
• Enter the height of the icon in pixels. The size is limited to 9999 x 9999 pixels. Plant Simulation
automatically converts the pixel values you enter into length units and vice versa.
To enter the width and height of the icon in the length units, which you selected under File > Model
settings/Preferences > Units > Length, select length units. Plant Simulation automatically converts
the length units you enter into pixel values and vice versa.
• Enter the widthof the icon in length units, which you selected under File > Model
settings/Preferences > Units > Length. Plant Simulation automatically converts the length
units you enter into pixel values and vice versa.
• Enter the heightof the icon in length units, which you selected under File > Model
settings/Preferences > Units > Length. Plant Simulation automatically converts the length
units you enter into pixel values and vice versa.
Enter the scaling factor for scaling the size of the icon. The Scaling Factor is the length of one pixel
in one length unit. By setting the correct scaling factor, you can place 2D objects in the Frame
according to their real coordinates.
When you make an icon smaller, the Icon Editor deletes anything located outside of the
new width and height. Make sure to save the icon before changing the size.
The performance of the program might suffer if you use large bitmaps.
Related Topics
The command Set Reference Point provides the subcommands Set Reference Point and Calculate
Reference Point.
This command is only active when you create a new icon after you clicked New Icon.
The command Set Reference Point sets the reference point of the new icon.
To set the reference point of the icon.
• Then, click once in the drawing area to set the reference point at the position of the cursor.
By default the reference point of every icon is located at the center of the drawing area. Plant
Simulation uses the reference point to determine its position when you insert the object into a
model.
o For MUs, Plant Simulation places the reference point of the MU onto an animation point of
an object.
o For objects or models, Plant Simulation aligns the reference point with the intersection of grid
lines, when you display the grid.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Related Topics
Set and Link Animation Points and Animation Lines
Rotate around Reference Point
Calculate Reference Point
setRefPoint
getRefPoint
getBoundingBox
The command Calculate Reference Point computes and sets the reference point of the icon of the
object. By default the reference point of every icon is located at the center of the drawing area. Plant
Simulation uses the reference point to determine its position when you insert the object into a model.
For mobile objects (MUs) Plant Simulation computes the reference point according to the position of
the booking point. By default the mobile objects have a booking point, as a long MU may be located
on more than one length-oriented object at the same time. Plant Simulation uses the booking point to
determine on which material flow object to display the MU when animating a simulation run. Plant
Simulation shows, for example, a Transporter moving along from Track to Track on the first Track until
its booking point moves on to the next Track.
Delete
Activate Transparency
The command Activate Transparency makes the background of the Frame shine through the
transparent area, which you defined, around the icon proper.
On Off
To set which color, i.e., which area, of the icon will be transparent:
• Click in the transparency color field below the color palette to make the transparency
color the active drawing color.
• Select either one of the drawing tools or click Fill Area to mark the area of the icon you
would like to be transparent. In our example we selected the blue bar and the arrow in the
icon of the Source to be transparent.
• You will notice that Plant Simulation now draws the light blue bar and the arrow in green ,
denoting that the bar and the arrow will be transparent, when you insert the Source into the
Frame with a white background .
When you create a new icon with the method createIcon Transparent is active by default and the
background is filled with the transparency color.
SimTalk
CurrIconTransparent
Inherit Icon
The command Inherit Icon activates or deactivates inheritance of the icon of the object. To change
the icons of instances of objects independent of the class of the object, deactivate the command.
Note that object classes can also inherit their icons.
Apply Changes
The command Apply Changes applies the changes you made to the icon and leaves the window of
the Icon Editor open.
The Animation ribbon tab of the Icon Editor provides these commands.
Overview —
Zoom In —
Zoom Out —
setAniPoint
Add/Remove Animation Point
delAniPoint
setAniLine
Add/Remove Animation Line
delAniPoints
setAniLine
Add/Remove Animation Polyline
delAniPoints
Delete All —
linkAniPoint
Link Animation Point
unlinkAniPoint
Apply Changes —
The other tabs on the Ribbon Bar provide additional commands pertaining to the Icon
Editor.
Proceed as follows to add animation points or animation structures to the objects in your simulation
model:
• To insert an animation point into the icon of a point-oriented object, click Add/Remove
Animation Point .Then, click into the drawing area with the left mouse button at the location
of your new animation point.
• To insert a straight animation line into the icon of a length-oriented object, click
Add/Remove Animation Line . Then, click into the drawing area with the left mouse button,
hold the mouse button down to insert the beginning of the line, drag the mouse to the end point of
the line and release the mouse button.
• To insert a non-straight animation line into the icon of a length-oriented object, click
Add/Remove Animation Polyline .Then,click once into the drawing area with the left
mouse button to set the starting point of the line, drag the mouse to the location of the next
anchor point and click again to insert it. Plant Simulationconnects the anchor points to create the
line. Continue this until the polygonal chain meets your needs.
• To move an animation point or an animation line to a different location, click Move Animation
Point .
These colors represent the different states of an animation point:
• Blue: Is the standard color for all objects, except for the Frame. For a Frame Plant Simulation
shows that the animation point is linked to an object located within that Frame.
• Light blue: Is the same as blue. In addition it shows that an animation point of a Frame is
linked to this animation point.
• Red: The animation point in a Frameis not linked to an object located within that Frame. For this
reason Plant Simulationdoes not show an animation for this point.
Related Topics
Overview
The command Overview shows all icons of the object or model in a window side by side. To open
an icon in the drawing area, click it.
Zoom In
The command Zoom In zooms the contents of the drawing window in.
Zoom Out
The command Zoom Out zooms the contents of the drawing window out.
When you repeatedly click the same location, Plant Simulation inserts a new animation
point on top of the existing point with each mouse click!
Related Topics
Set and Link Animation Points and Animation Lines
setAniPoint
delAniPoint
This button is only active for the PlaceBuffer, Buffer, Sorter, Track, Line, Footpath, and
the Frame.
In the icon of the PlaceBuffer, Buffer, Sorter, Track, Line, and Footpath you can draw a
single animation line.
In the icon of the Frame you can draw several animation lines.
The command Add/Remove Animation Line adds a straight animation line to the icon of a
length-oriented object.
• Then, click into the drawing area with the left mouse button, hold the mouse button down and
drag the mouse.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Related Topics
Set and Link Animation Points and Animation Lines
setAniLine
getAniPoints
delAniPoints
This button is only active for the PlaceBuffer, Buffer, Sorter, Track, Line, Footpath, and
the Frame.
In the icon of the PlaceBuffer, Buffer, Sorter, Track, Line, and Footpath you can draw a
single animation line.
In the icon of the Frame you can draw several animation lines.
• To undo the line you inserted, click Previous Icon or Next Icon and click No in the dialog
that opens. This reverts to the last saved state of the icon.
• To save your changes to the icon, click Export on the Edit ribbon tab of the Icon Editor.
Related Topics
Set and Link Animation Points and Animation Lines
setAniLine
getAniPoints
delAniPoints
The command Add/Remove Animation Point moves a single animation point or an anchor point
of an animation line in the icon of the object.
Click the animation point/anchor point once and drag the point to a new location. Note that Plant
Simulation does not break the link with the underlying object, but only moves the animation point.
Related Topics
Set and Link Animation Points and Animation Lines
moveAniPoint
Delete All
The command Delete All deletes all animation structures from the icon of the object.
The command Link Animation Point links or unlinks an animation point or line that you inserted, but
did not connect. This button is only active for the Frame.
Related Topics
Set and Link Animation Points and Animation Lines
linkAniPoint
unlinkAniPoint
The command Set Animation Events opens the dialog Animation Events.
Enter how often Plant Simulation draws the contents of the object, while a part is located on it.
If several MUs with differing speeds are located on the object, the first moving MU determines the
time intervals between the animation events.
Plant Simulation only uses the setting Number of Animation Events in special cases for the
animation. To speed up the simulation when the PlaceBuffer has a great capacity, you can enter
0. Then Plant Simulation does not schedule any animation events for the PlaceBuffer and thus
does not animate any parts on the PlaceBuffer.
When you insert the length-oriented objects Track, TwoLaneTrack, Line, FootPath, Turnplate,
Turntable, AngularConverter, and Converter in icon mode instead of in curve mode, you also
have to enter a number!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel
.
SimTalk:
NumAnimationEvents
Related Topic
Set and Link Animation Points and Animation Lines
The command Show Animation Numbers hides or shows the number of the animation point or line
you inserted into the icon of the object.
If you assigned an object to the animation point or line of a Frame, the Icon Editor shows the name of
the object or Frame you linked next to the number in the icon .
On Off
The command Inherit Animation Structures opens the dialog Inherit Animation Structures.
• To inherit the Coordinates of an animation point, make sure that the check box is selected.
To not inherit them, clear it.
• To inherit the Linked object of the animation point in the icon of a Frame, make sure that the
check box is selected. To not inherit it, clear it.
Related Topic
Apply Changes
The command Apply Changes applies the changes you made to the icon and leaves the window of
the Icon Editor open.
The General ribbon tab of the Icon Editor provides these commands.
Overview —
Center of Rotation
ObjectAngle
Rotate around Reference Point
ObjectMirrored
Inherit
State Icons/LEDs
Use State Icons
StatusWithIcons
Use LEDs
Inherit
Clipart Library —
Apply Changes —
The other tabs on the Ribbon Bar provide additional commands pertaining to the Icon
Editor.
Overview
The command Overview shows all icons of the object or model in a window side by side. To open
an icon in the drawing area, click it.
Center of Rotation
Center of Rotation
The command Center of Rotation provides the subcommands Rotate around Reference Point
and Inherit.
As we introduced this command for compatibility reasons with previous versions of the
program, we strongly advise to not switch off Rotate around Reference Point. Future
versions might not provide this command any more. This setting does not influence the
behavior in the 3D Viewer.
The subcommand Rotate around Reference Point activates or deactivates, if Plant Simulation uses
the reference point of the icon of the object as the center of rotation and as the center for zooming the
or if the top left corner of the icon remains at the same location.
The reference point of an object is by default located in the center of the icon, and Rotate around
Reference Point is activated by default. Thus Plant Simulation rotates and zooms the icon around
the reference point. Imagine that you push a pin through the center of a photograph and then rotate
this photograph around this pin. The MUs already used this setting in previous versions and retain
this behavior.
If you deactivate Rotate around Reference Point, the upper left corner of the icon remains at the
same location when rotating and zooming the icon.
Reference point
located in the
center
Reference point
located in upper
left corner
These settings only apply when Plant Simulation shows the object with its icon. They do
not apply when you selected Vector graphics active for the MU.
Related Topics
RotateAroundRefPoint getRefPoint
ObjectAngle setRefPoint
Inherit
The command Inherit activates or deactivates inheritance of the center of rotation.
• When you activate it , any object you derive from the current object will rotate around
the reference point.
• When you deactivate it, you can freely define the center of rotation for every object you derive.
You can only change the Orientation of the MUs for the material flow objects.
We strongly advise to not switch off Same as the Object as this setting does not influence
the behavior in the 3D Viewer.
We strongly advise to not switch off Same as the Object as this setting does not influence
the behavior in the 3D Viewer.
The command Same as the Object activates or deactivates, if an MU that transfers onto a material
flow object uses the same orientation, i.e., the same rotation angle, as the icon of the material flow
object on which it is animated.
When Plant Simulation shows a length-oriented object in curve mode, Plant Simulation
evaluates the setting Rotate movables (RotateMovables).
When Plant Simulation shows the object as an icon , it evaluates Same as the object
(RotateMUs).
When Same as the object is active for Transporter or Container, loaded parts are rotated
in the same direction as the Transporter or the Container.
SimTalk
RotateMUs for point-oriented objects
RotateMovables for length-oriented objects
RotateMUs in the Frame
Inherit
The command Inherit activates RotateMUs or deactivates inheritance of the orientation of the MU,
when it transfers onto a material flow object.
• When you activate it , for any object that you derive from the current object, the MU will
have the same orientation as the icon of the object on which it is animated.
• When you deactivate it, the MU that transfers onto the object continues its way with the
orientation it had before.
State Icons/LEDs
State Icons/LEDs
The command State Icons / LEDs provides the subcommands Use State Icons, Use LEDs and
Inherit.
You can only change this setting for the material flow objects.
Related Topic
States and Icons of the Material Flow Objects
By default, the material flow objects do not provide predefined state icons. If you want to
use icons for the different states of the object, you have to create these icons yourself.
SimTalk
StatusWithIcons
Use LEDs
The command Use LEDs activates or deactivates the display LEDs instead of state icons of the
material flow object during your simulation runs. This is the default setting.
By default, the material flow objects do not provide predefined state icons. If you want to
use icons for the different states of the object, you have to create these icons yourself.
SimTalk
StatusWithIcons
Inherit
The command Inherit activates or deactivates inheritance for using state icons or the default LED
for the material flow objects.
• When you activate it , any object that you derive from the current object, will use the
setting you selected for the current object.
• When you deactivate it, you can select for each icon individually if it shows a state object or
an LED for a certain state.
Clipart Library
The command Clipart Library opens the clip-art library that is part of your Plant Simulation program
package. The graphics in the folder Clipart provide different icons, which you can use in your
simulation model.
To insert an icon from the Clip Art Library into the Plant Simulation Icon Editor, select an icon in the
Windows Explorer window, drag it to the open window of the Icon Editor, and drop it there.
Apply Changes
The command Apply Changes applies the changes you made to the icon and leaves the window of
the Icon Editor open.
Display Panel
Display Panel
Most of the objects in Plant Simulation allow you to create a display panel, which shows values of
attributes of the respective object directly in the Frame. You might, for example, define in the class of
an object which statistics values you want to show. Once you insert an instance of that class into your
simulation model, it will show the defined values. You can define a single display panelfor an object,
not one for each of its icons. Naturally you can set the size and the position of the display panel in the
Frame. Rotating, mirroring or zooming the icon of the object does not affect the size and the position
of the display panel. It can contain any number of items and passes all of these items on to its
derivatives, i.e., you can only deactivate inheritance for all items and not for individual items. If, on the
other hand, items are not inherited, you can change, add or delete as many of them as you like.
To create a display panel, click the object in the Frame and either select Edit Display Panel on the
context menu or click Edit Display Panel on the Home ribbon tab.
To create a display panel for the Frame, click Edit Display Panel on the Home Ribbon Tab
By default the display panel is deactivated for all objects. When you activate it , Plant
Simulation shows it on the same level as the icon of the object in the Frame. In the Frame, Plant
Simulation shows the display panels by default. You can hide them by deselecting Options > Show
Display Panels on the Generalribbon tab to increase the simulation speed if you activated the
animation and to increase clarity if the display panels show a large number of values.
Under File > Preferences > Simulation > Display panel frame rate you can select the refresh rate of
the displayed values.
When you deactivate Icon Animation it shows the display panel, but does not update its values
and continues showing the previous values. It does not update the values either, when no simulation
is running. To still show current values, Plant Simulation updates them:
• When the simulation stops, either because you stopped it or because the End time has been
reached.
These objects do not provide the display panel: The Comment, the Variable, and the Connector,
the mobile objects Container, Entity, Transporter, and Worker, the Folder, the Class Library, and
the Toolbar.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
In the dialog Display Panel you can define the general settings of the display panel of the selected
object. It provides these dialog items.
Active Delete
Y-position Load
Width Save
Border color OK
New Apply
Edit
Active
To activate the display panel, select this. When you activate it, Plant Simulation shows it on the same
layer as the icon of the object in the Frame. Thus the display panel overlaps the same objects as
the icon does and is overlapped by the objects which overlap the icon. To deactivate it, clear the
check box.
SimTalk:
DisplayPanel.Active
X-position
Enter the x-coordinate of the left top corner of the display panel in the Frame or click the spin buttons.
You can enter a number between -5000 and +5000.
This position is relative to the coordinates of the reference point of the object.
To move the left top corner of the display panel in the Frame to the right on the x-axis, click the right
spin button. Click the left spin button to move the left top corner of the display panel in the Frame to
the left on the x-axis.
SimTalk
DisplayPanel.X
Related Topic
Y-position
A green button means that inheritance is active. Then, the object uses the values for the X-position
and for the Y-position of the origin object from which you derived it. When you modify the values of
the origin object, this also changes the values of the derived object.
An orange button with a minus means that inheritance is not active. Values you enter only apply
to the selected object.
Y-position
Enter the y-coordinate of the left top corner of the display panel in the Frame or click the spin buttons.
You can enter a number between -5000 and +5000.
This position is relative to the coordinates of the reference point of the object.
To move the left top corner of the display panel in the Frame up on the y-axis, click the up spin button.
Click the down spin button to move the left top corner of the display panel in the Frame down on
the y-axis.
SimTalk:
DisplayPanel.Y
Related Topic
X-position
Width
Enter the width of the display panel in the Frame or click the spin buttons. You can enter a width
between 1 and 255 pixels.
Click the right spin button to increase width of the display panel in the Frame. Click the left spin
button to decrease the width of the display panel in the Frame.
Related Topic
Width
Related Topic
DisplayPanel.Height
A green button means that inheritance is active. Then, the object uses the values for the Width
and for the Height of the origin object from which you derived it. When you modify the values of the
origin object, this also changes the values of the derived object.
An orange button with a minus means that inheritance is not active. Values you enter only apply
to the selected object.
Height
Enter the height of the display panel in the Frame or click the spin buttons. You can enter a height
between 1 and 255 pixels.
Click the up spin button to increase height of the display panel in the Frame. Click the down spin
button to decrease the height of the display panel in the Frame.
SimTalk:
Height
Related Topic
DisplayPanel.Width
Border color
To select the color of the border around the edge of the display panel in the Frame, click this. To not
display the border color, you can make it transparent by entering the RGB values 0, 128, 128.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
The border color is black in the screenshot below.
SimTalk:
DisplayPanel.BorderColor
A green button means that inheritance is active. Then, the object uses the border color of the
origin object from which you derived it. Changing the border color of the origin object also changes
the border color of the derived object.
An orange button with a minus means that inheritance is not active. When you change the border
color, this only applies to the selected object.
Background color
To select the background of the display panel in the Frame, click this. To not display the background
color, you can make it transparent by entering the RGB values 0, 128, 128.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
The border color is gray in the screenshot below.
SimTalk:
DisplayPanel.BackgroundColor
A green button means that inheritance is active. Then, the object uses the background color of
the origin object from which you derived it. Changing the background colorof the origin object also
modifies the background color of the child object.
An orange button with a minus means that inheritance is not active. When you change the
background color, this only applies to the selected object.
New
New
To add a new item to the display panel, click this. Then, define the properties of the individual display
panel items in the dialog Display Panel Elements, which the display panel of the selected object
shows in the Frame.
Value Length
X-position Width
Y-position Direction
Transparent
Showing Statistics with Display Panels in the Model illustrates how to create items.
Value
Enter or select the value which the display panel shows. The value can be any formula which the
program evaluates and shows in regular intervals. Within the formula relative paths are resolved
relative to the object for which you define the display panel. You can use the tilde (~) to access the
Frame in which the object is located. You might, for example, enter NumMU or ~.myBuffer.NumMU.
To display static text instead of the value of an attribute or a method, select the Type > Static Text
and then enter the respective text.
SimTalk:
setValue
Related Topics
setElements
getElements
X-position
Select the x-coordinate of the top left corner of the display panel item on the display panel. You
can also enter a number between 0 and 255.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Y-position
Select the y-coordinate of the top left corner of the display panel item on the display panel. You
can also enter a number between 0 and 255.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Type
You can select the Alignment and the Color of the displayed text.
• As text.
You can select the Alignment and the Color and if you want to display the values as a percentage
and you can specify the number of Decimal places.
You can select the Color, the Length, the Width, the Direction, and the Maximum value of the bars.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Alignment
Select where at the X-position of the display panel item on the display panel you want to align
Static Text or Text.
• Left aligns the left border of the text with the position on the x-axis.
• Center aligns the center of the text with the position on the x-axis.
• Right aligns the right border of the text with the position on the x-axis.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Color
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Transparent
To make the item on the display panel transparent so that the Background color of the display panel
shines through, select this. To not make it transparent, clear the check box. Then the background of
the display panel is white.
When you display barsnon-transparent, the area exceeding the value to the Maximum value is
shown in white.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Length
Enter the length of the bar on the display panel in pixels. The length refers to the Direction of the bar.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Width
Enter the height of the bar or the width of the LED on the display panel in pixels.
Width of the bar, left to right Width of the LED, left to right
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Direction
SimTalk:
DisplayPanel.setElements,
DisplayPanel.getElements
Maximum value
Enter the maximum value to which the bar deflects. The default value is 1.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Display as percentage
Select this to show values, which the setting Type > Text displays as a percentage instead of just as
a number.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Decimal places
Select the number of decimal places for values, which the setting Type > Text displays.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
Edit
To edit the item of the display panel, which you selected in the Elements Table below,click this. Then,
change its properties. Plant Simulation writes the changed values into the items table.
Instead, you can also right-click the object and select Edit Display Panel on the context menu in
the Frame.
Delete
To delete the item from the display panel, which you selected in the Elements Table below, click this.
Plant Simulation deletes this item from the items table.
Elements Table
The items table shows the items which you defined for the display panel.
• The Value can be any formula, which the program evaluates and shows in regular intervals.
Within the formula relative paths are resolved relative to the object for which you define the
display panel. You can use the tilde (~) to access the Frame in which the object is located. You
might, for example, enter NumMU or ~.myBuffer.NumMU.
To display static text instead of the value of an attribute or method, select the Type> Static Text
and then enter the respective text.
• To edit an item on the table, double-click the respective row, or select it and click Edit above
the table.
• To load the settings of a display panel, which you saved by clicking the button Save, click Load.
• To save the settings of a display panel, as a Plant Simulation object file (.obj), click Save.
• To view the defined items and all of their properties, click Open Table.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
DisplayPanel.setValue
A green button means that inheritance is active. Then, the object uses the items of the origin
object from which you derived it. Changing the items of the origin object also changes the items
of the derived object.
An orange button with a minus means that inheritance is not active. When you change any items,
this only applies to the selected object.
Load
To load the settings of a display panel, which you saved by clicking the button Save, click this.
Navigate to the location of the object file in the dialog Open and select it.
Save
To save the settings of the display panel as a Plant Simulation object file (.obj), click this. Then, type
in the file name of the object file into the dialog Save As and specify a location.
Open Table
To open the table that contains all items of the display panel, click this. The table shows the names of
the items in the rows and all of their properties in the columns.
The table is intended for quickly transferring the configuration of the display panel items of
an object to another object without having to define each individual item again.
In addition you can view how the table has to be formatted, which you can assign with
the methods listed below.
• For the Type > Bar you can set the Length, the Width, the Direction, and the Maximum value
of the bar.
• For the Type > Text you can select the setting Display as percentage and enter the number of
Decimal places.
As not all columns apply to all item types, some of the cells remain empty.
SimTalk:
DisplayPanel.setElements
DisplayPanel.getElements
DisplayPanel.setValue
getElements
Syntax: Path.DisplayPanel.getElements(Items:table)
The method getElements returns all items of the Display Panel of the object designated by Path
and writes them into a table.
Each defined display panel item provides some of these items: Its Value, its X-position, its Y-position,
its Type, its Alignment, its Color, and if it is Transparent or not.
For the Type > Bar you can set the Length, the Width, the Direction, and the Maximum value
of the bar.
For the Type > Text you can select the setting Display as percentage and enter the number of
Decimal places.
Parameter
The parameter Items of data type table designates the name of the table.
Example: SingleProc.DisplayPanel.getElements(myElementsTable);
Related Topics
Elements Table
DisplayPanel.setElements
DisplayPanel.setValue
setElements
Syntax: Path.DisplayPanel.setElements(Items:table)
The method setElements sets the items of the Display Panel of the object designated by Path.
Each defined display panel item provides some of these items: Its Value, its X-position, its Y-position,
its Type, its Alignment, its Color, and if it is Transparent or not.
For the Type > Bar you can set the Length, the Width, the Direction, and the Maximum value
of the bar.
For the Type > Text you can select the setting Display as percentage and enter the number of
Decimal places.
As not all columns apply to all item types, some of the cells remain empty.
Parameter
The parameter Items of data type table designates the name of the table in which you defined the
items.
Example: SingleProc.DisplayPanel.setElements(myElementsTable);
Related Topics
Elements Table
DisplayPanel.getElements
DisplayPanel.setValue
Open Table
setValue
The method setValue sets the value of a display panel item of the object designated by Path.
Parameters
• The parameter RowInTable of data type integer designates the respective row for the display
panel item in the Elements Table.
• The parameter NewValue of data type string designates the new value of the display panel item.
Related Topics
Open Table
DisplayPanel.getElements
DisplayPanel.setElements
Plant Simulation addresses the attributes of the Display Panel as sub-attributes of the attribute
DisplayPanel. You cannot assign the attribute to a Variable of data type object or any.
Active Width
BackgroundColor X
BorderColor Y
Height
Related Topics
Methods of the Display Panel
ShowDisplayPanels
DisplayPanel.getElements
DisplayPanel.setElements
Active
Syntax: Path.DisplayPanel.Active
The attribute Active activates the display panel of the object designated by Path (true) or deactivates
it (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: SingleProc.DisplayPanel.Active := true;
Related Topics
Active
ShowDisplayPanels
BackgroundColor
Syntax: Path.DisplayPanel.BackgroundColor
The attribute BackgroundColor sets the background color of the display panel of the object
designated by Path.
You can set the RGB values of the color with the method makeRGBValue. To not show the
background color, you can make it transparent by assigning the RGB value 0, 128, 128.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: SingleProc.DisplayPanel.BackgroundColor := makeRGBValue(100,100,100);
SingleProc.DisplayPanel.BackgroundColor := 6579300; -- is the same as the colo
Related Topic
Background color
BorderColor
Syntax: Path.DisplayPanel.BorderColor
The attribute BorderColor sets the color of the border around the edge of the display panel of the
object designated by Path.
You can set the RGB values of the color with the method makeRGBValue. To not show the border
color, you can make it transparent by assigning the RGB value 0, 128, 128.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: SingleProc.DisplayPanel.BorderColor := makeRGBValue(15,155,100);
Related Topic
Border color
Height
Syntax: Path.DisplayPanel.Height
The attribute Height sets the height of the display panel of the object designated by Path.
You can enter a number between 1 and 255 pixels.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: SingleProc.DisplayPanel.Height := 45;
Related Topic
Height
Width
Syntax: Path.DisplayPanel.Width
The attribute Width sets the width of the display panel of the object designated by Path.
You can enter a number between 1 and 255 pixels.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: SingleProc.DisplayPanel.Width := 150;
Related Topic
Width
X
Syntax: Path.DisplayPanel.X
The attribute X sets the x-coordinate of the left top corner of the display panel of the object designated
by Path. This position is relative to the coordinates of the reference point of the object.
You can enter a number between -5000 and +5000.
Related Topic
X-position
Syntax: Path.DisplayPanel.Y
The attribute Y sets the y-coordinate of the left top corner of the display panel of the object designated
by Path. This position is relative to the coordinates of the reference point of the object.
You can enter a number between -5000 and +5000.
Related Topic
Y-position
• Objects for modeling the plant and for controlling the simulation:
o The Connector for establishing material flow connections between objects along which
the parts move.
o The EventController for coordinating and synchronizing the events taking place during a
simulation run.
o The Frame as the container for creating your simulation models. It might, for example,
represent a complex machine, a part of an plant, or the entire plant. The Frame is the
principal object facilitating hierarchic modeling.
o The Interface for modeling transitions between Frames, i.e., from one part of the model to
another. It also facilitates hierarchic modeling.
o The Assembly Station for adding mounting parts to a main part, for example doors to a
car body.
o The Converter for conveying a part either straight through or for lifting it onto a laterally
moving transport level and then conveying it to the left or right-hand side.
o The Cycle for synchronizing the transfer of parts from station to station.
o The Drain for removing the parts from the plant after they have been processed. It usually
represents the shipping department of your plant.
o The FlowControl for modeling strategies for splitting-up and bringing together the flow of
materials.
o The ParallelProc for modeling stations for processing several parts in parallel at the
same time.
o The PickAndPlace Robot for picking up a part at one station and placing it onto another
station.
o The PlaceBuffer for temporarily holding parts in a row, one behind the other.
By default the PlaceBuffer is not part of the built-in objects that the Toolbox provides. You
can add it at any time to your simulation model by clicking Manage Class Library on the
Home ribbon tab of the Icon Editor.
o The SingleProc for processing parts on a single processing station. You’ll use it for
modeling most of your machines.
o The Source for producing the parts that move through your model. It usually represents
the receiving department of your plant or the main machine producing the parts.
o The Track for modeling the track or road on which the Transporter drives.
o The Turnplate for modeling a rotating platform, which rotates the loaded parts and ensures
the uniform orientation of the leaving parts.
o The Turntable for modeling a rotating platform, which moves the part onto one of several
connected material flow objects and/or turns it around.
o The TwoLaneTrack for modeling a part of a transport line with two lanes on which
Transporter traffic moves in opposing directions.
• The mobile objects which the material flow objects process or which transport materials:
o The Entity for modeling parts being produced and transported.
o The Transporter for modeling self-propelled vehicles allowing it to drive on its own on a
Track and to transport parts.
• The resource objects, which represent the workers and stations related to them:
o The Broker for brokering offered services and required services. You might model the
supervisor of an plant or the foreman of a shop with it.
o The Exporter for providing and exporting services. It represents a group of people, whose
individual members you cannot distinguish and whom you cannot address as individuals.
o The FootPath for modeling a path on which the worker walks from the workerpool to
the workplace.
o The WorkerPool r for modeling the lounge or the staff room of your plant.
o The Workplace for modeling the actual place at the station, where the worker performs
his job.
• In addition Tecnomatix Plant Simulation provides the TransferStation for loading and
unloading stations.
Related Topics
Shared Properties of the Material Flow Objects
Shared Properties of the Mobile Objects
• The moving material flow objects Entity, Container, and Transporter represent the physical or
logical parts moving through the model. These mobile objects ( MUs) require active and passive
material flow objects to process and transport them.
• The Source creates mobile objects at the beginning of the flow of materials and the Drain
removes them from the plant after the material flow objects have processed them.
• The active material flow objects Source, Drain, SingleProc, ParallelProc, Assembly Station,
DismantleStation, Sorter, PlaceBuffer, and Buffer receive MUs , process them for a certain time
and then move them on to the next object along material flow connections. They represent work
stations in a factory, such as a lathe or a drilling station, etc. They only differ in the number of
MUs they can process, a single one or several, and in the way they process them, in series or
in parallel.
The active length-oriented objects AngularConverter, Converter, Line, Turntable, and Turnplate
are used for transporting systems moving MUs at a given speed over a given distance.
• The passive material flow objects Store, Track, TwoLaneTrack do not automatically move MUs
on to their successor. An MU remains in the Store until it is removed, for example by employing a
Method object. You can only use the Track and TwoLaneTrack in a meaningful way together with
the Transporter, which moves along the Track/TwoLaneTrack with the speed you set. You can
model diverging and converging strategies with the FlowControl.
• Plant Simulation uses the push-block principle when moving goods from station to station,
either along the connections you established with the Connector or by employing a method.
Suppose Station1 is the first station in the sequence of stations in your model, Station2 is the
second station, MU1 is the first mobile object that entered the flow of materials, MU2 is the second
mobile object. Suppose MU1 is located on Station2, and MU2 is located on tation1 and wants to
move to Station2.
Once MU2 is completely processed by Station1, MU2 notifies Station2 that it intends to move to it.
• When Station2 can receive MU2, it notifies MU2, and MU2 moves from Station1 to Station2.
• When Station2 cannot receive MU2 because it is busy, its entrance is locked, etc., MU2 enters
itself into the Forward Blocking List of Station2 and of all other stations it intends to move to.
• When MU1 exits Station2, Station2 schedules an Out event for all entries, i.e., MUs, in the
forward blocking list, including MU2. Afterwards Station2 deletes all entries from its forward
blocking list.
• Provided Station2 can receive MU2, MU2 deletes all references to itself from all blocking lists of
all stations it entered itself into, and then moves to Station2.
Related Topics
Time Consumption
A material flow object receives an MU, when some of its capacity is available and it is not in Failed or
Paused mode and its entrance is not closed. It rejects an MU and adds it to the end of its Forward
Blocking List, Backward Blocking List, or Exit Blocking List if one of these conditions is not met or if
the entrance is closed because you set a recovery period, etc. After the object starts Working again,
it processes the first MUin the Blocking List.
The material flow object checks the names of the MUsto determine if it has to set-up and thus use
a Set-up time to process that type of MU. If MUs have different names, the object knows that it
needs to set-up.
When the first MU of a certain type enters an object it always has to set-up. After receiving the MU,
the object determines the processing time after which the MU exits.
Failures, controlled by the setting Failed and by the setting Active of the individual failure profiles, or
pauses, controlled by the setting Paused/Planned/Unplanned, prolong the time an MU remains on
an object. In addition each object has an internal failure generator controlling the duration of and
the interval between failures.
After the Processing time has elapsed, the material flow object moves the MU on to its successor
object within the flow of materials. If there is more than one successor, they are cyclically attended
to in succession.
The successor is the object that is connected to the selected object with a Connector and that
succeeds it in the sequence of stations in the simulation model.
To reorder the sequence of the successors of the selected object, right-click the object in the Frame
and select Reorder Successors on the context menu.
The predecessor is the object that is connected to the selected object with a Connector and that
precedes it in the sequence of stations in the simulation model.
Related Topics
bwBlockList
exitBlockList
fwBlockList
When simulating random processes, Plant Simulation automatically uses a random number stream of
its own for each and every material flow object.
Each SingleProc for example has its own random number stream that will be used for determining the
Processing time, the Set-up time, the Recovery time, and the Cycle time.
In addition Plant Simulation assigns each failure profile its own random number stream.
Plant Simulation shows the selected failure profile blue on the tab Failures. It shows a failed failure
profile red.
If you would like to run several simulation runs with different random numbers, you do not have to
change settings in the Random Number Seed Values table, but set a different value by selecting
Tools > Random Numbers Variant in the EventController and entering a different number. When you
change this number, Plant Simulation will generate other random number streams for all objects in
the model as well as for the Distribution Functions.
To create different random numbers each time when you reset the simulation model, select Tools >
Increment Variant on Reset in the dialog of the EventController.
Instances of Transporters and Workers use the random number seed value of the class and the
ID of the instance to initialize their random number streams. This means that each Transporter
and Worker will generate different failure times. When you run the simulation again with the same
random numbers variant of the EventController, the Transporter or Worker with the sameID will
generate the same random numbers.
You still have to enter the number of the random number stream as the first parameter into
the Distribution Functions, such as z_uniform, z_normal, etc.
The material flow objects do not use any of these streams, as each material flow object uses its
own random number stream.
You may, at times, wish to use the same random numbers for two objects. You might, for example,
want to compare two production lines, and you insert two identical Source objects, which are going
go create identical parts within identical intervals. To accomplish this, you need to set the random
number seed value for the affected material flow objects to the same value, i.e., assign the same
value to the attribute RandomSeed. When you create a new object, for example by inserting it
into a simulation model, Plant Simulation automatically assigns a unique random number seed
value to this object.
Plant Simulation uses the random number seed value together with the random numbers variant
of the EventController to initialize the random number streams of the object. If the object has more
than one random number stream, if for example the object has failure profiles, each random number
stream will automatically be initialized differently.
In addition, you can open the Random Number Seed Values table for the Distribution Functions, such
as z_uniform, z_normal, etc., under File > Options and change the values there. Identical seed
values mean that the associated streams create identical random numbers as long as the identical
distribution functions are called with the same parameters.
In addition, each user-defined attribute of data type randtime has its own random number seed
value. Plant Simulation assigns this value uniquely, but you can change it afterwards if need be.
Related Topics
RandomSeed of the material flow objects
Controls
For all material flow objects you can define controls on the Tab Controls which an arriving MU
triggers. When the part triggers an internal sensor, the object triggers the Method object you entered
as Entrance control or as Exit control. These user-defined controls will then replace the built-in
properties of the object.
For the length-oriented objects you can, in addition, define sensor controls anywhere on the object.
The Line, Turntable, Track, TwoLaneTrack, and the Transporter activate the Methods you assigned to
the sensor, when an MU passes the sensor. You can define and delete sensors in the dialog of the
Line, Turntable, Track, TwoLaneTrack on the tab Controls > Sensors or from within a Method object.
Related Topics
Tab Controls
Create Sensors
Create Entrance and Exit Controls
Capacity
The Capacity is the number of mobile objects (MUs, parts) which the material flow objects can hold
or process at any one time. Once the capacity is met, the material flow object does not accept
any additional MUs.
For the objects ParallelProc, Store, Exporter, PlaceBuffer, Buffer, and Sorter Plant Simulationdoes
not take the actual dimension/length of the objects or MUs for the capacity into consideration.
For the objects Line, Track, TwoLaneTrack, FootPath, Transporter Plant Simulation uses the actual
length of the object itself and of the length/dimension of the MU to determine how many parts the
material flow object or the MU can accommodate.
Note that the objects AngularConverter, SingleProc, Turnplate, and Turntablehave a fixed capacity of
1.
Related Topics
A material flow object, whose capacity is exhausted, will reject any MUs attempting to move onto
it. It then enters these MUs into its Forward Blocking List, its Backward Blocking List, or its Exit
Blocking List. The first MU entered in the list will also be the first to be processed after the blockage is
removed. The EventController informs the first MU in the list, when a processed MU exits a material
flow object and it thus is ready to receive the next one.
Related Topics
bwBlockList
exitBlockList
fwBlockList
Entrance locked
Exit locked
If an object has more than one successor, Plant Simulation cyclically moves the MUs on to each of
the succeeding stations in turn. If one of the successors is full, failed or paused, then it does not
move any MUs to this station until it is unblocked and ready to receive parts again.
You can change the standard transfer behavior on the Tab Exit of the material flow objects.
Related Topics
Use the Standard Transfer Behavior
Select an Exit Strategy
The material flow and the other objects share a number of dialog items and menus. To open the
dialog window of an object, double-click its icon.
After opening the dialog, Plant Simulation shows the current values. Enter new properties into the
text boxes or select them from the drop-down lists.
Click OK or Apply to accept changes you made and to update the dialog. Instead, you can also press
the F5 key to show the most current results of a simulation run on some of the tabs.
Related Topics
OK Tab Exit
Tab Importer
Sub-tab Processing
Context Menu of Text Boxes in Dialogs
Sub-tab Set-up
Sub-tab Failure
Inheritance
ParallelProc in Model2 is the ParallelProc in Model1. When we now change the value of an attribute
that inherits its value in the ParallelProc in Model1, the ParallelProc in Model2 also applies this value.
An orange button with a minus means that inheritance is not active. Values you select or enter only
apply to the selected object.
Note that the object might display the current value only after you click Apply.
To terminate inheritance relations of the selected object to the object from which it was derived,
right-click it and select Cut Inheritance on the context menu. Then, the object inherits its settings
from the origin of the origin. In case the origin does not have an origin, the object does not inherit
settings at all.
Related Topics
Cut Inheritance
Using Inheritance
Introducing Classes
Modeling Hierarchically
Class
A class provides the template for an Instance, which you insert into a Frame. All objects in the Class
Library, those we built-in as well as those you yourself define, are class objects. You can add more
detail to these classes and thus create new classes that inherit properties from the original classes.
By changing a property in the class object, you change that property for all derivatives of this
class. This is much less error-prone than having to change the same property for each and every
individual object.
• A class passes all of its properties on to an Instance you derive from it.
• A class passes those of its properties on to a Subclass you derive from it, for which you do
not deactivate inheritance.
Inheritance only works from class to subclass/instance, not the other way around!
SimTalk:
class
Related Topics
Open Class in the dialog of the objects
Go to Class in the dialog of the objects
Subclass
A subclass is an object in the Class Library, which inherits some, but not all, of its properties from
another Class. By deactivating Inheritance for certain dialog items, you can define properties that
only apply to this subclass.
Inheritance only works from class to subclass/instance, not the other way around!
An instance is an object you insert into your simulation model from the Class Library or the Toolbox
by dragging a class object to a Frame and dropping it there. An instance inherits its settings from its
class.
Inheritance only works from class to subclass/instance, not the other way around!
SimTalk:
childNo
NumChildren
Related Topics
Show Inheritance
Duplicate
Name
Enter a name of your choice for the object or accept the name that the program assigns. To change
the name, double-click and over type it.
You can enter any combination of letters, digits, and underscore (_) characters, for example
MyStation, MyStation1, My_Station_1. The name of an object can not start with a digit, i.e., you
can not enter 1Station.
In addition you can enter a Label to which these restrictions do not apply.
Plant Simulation shows the name when you click Show Object Names on the General ribbon tab
of the Frame. You can change the default setting under File > Preferences > Modeling > Show
object names.
You cannot change the name of the Eventcontroller and of the Connector.
SimTalk:
Name
Related Topics
Nameof the object in 3D
Captions in 3D
User-defined Names in SimTalk
Rename
Rename control
Label
Enter a term of your choice as the label of the object. You can type in letters, numbers, blanks,
and special characters.
You can, for example, use the label to display objects with the same functionality with the same
identifier in the Frame. The Name of the object, on the other hand, has to be unique!
Plant Simulation shows the label when you click Show Object Labels on the General ribbon tab
of the Frame. You can change the default setting under File > Preferences > Modeling > Show
object labels.
The program shows the label which you enter for the objects Report, Dialog, AttributeExplorer and
Chart in the title bar of their display windows. If you do not enter a label, the title bar shows the
name of the object.
The same applies to a toolbar you add to the Toolbox. Select New > Toolbar, then select the toolbar
in the structure, press F2 and enter a Label into the dialog Rename.
SimTalk:
Label
Related Topics
Captions in 3D
User-defined Names
Relabel control
Changing the Settings of the Objects in the Step-by-Step Help
Failed
To fail the object, select this. From then on, the object will not receive any parts. Parts can exit the
object though, when you program this in a Method.
The program stops processing and set-up processes until the end of the failure, i.e., it adds the
duration of the failure to these times.
When you manually fail a station, it remains Failed while any of the failure profiles you defined is
Active. It will change to not failed once the last failure (DisruptionEnd) of the last failure profile
ends or when you clear the checkbox .
When a station fails, and a pause takes place during the failure, the failure time of the
station will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap as pause time.
The object is failed when you activate this check box or when you activate one of its
failure profiles on the Tab Failures.
Plant Simulation resets failures when you click Reset Simulation the simulation model.
SimTalk:
Failed
Related Topics
Modeling Failures
Failedstate
Fail control of the material flow objects
Fail control of the Transporter
States and Icons of the Material Flow Objects
To not schedule it to work, select Unplanned. These are the times that are located outside of the
Working hours of the shifts, controlled by the ShiftCalendar, which apply to your plant.
To schedule it to work, select Planned. This is the processing time without counting the breaks
during the shifts that apply to your plant.
When the object is paused or unplanned, it will not receive any MUs. MUs can exit the object,
when you enter MU-path.move into a Method. The program stops processing and set-up processes
until the end of the pause or of the unplanned time. During the planned time, the object receives
and processes MUs.
When a station fails, and a pause occurs during the failure, the failure time of the station
will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap as pause time.
Plant Simulation only increments the counter for pauses and unplanned times when the duration
of the pause or shift pause is not 0.
Plant Simulation resets the pause, when you reset the EventController.
Click OK or Apply to accept your changes.
The LED of a paused station is blue .
The length-oriented objects do not display LEDs. Plant Simulationshows the border of a paused
length-oriented object blue .
The LED of an unplanned station is light blue .
SimTalk:
Pause
Paused
Unplanned
Related Topics
Paused state
Unplanned state
Pause control of the material flow objects
Pause control of the Transporter
Unplanned control
Paused Material Flow Objects
Paused Frames
States and Icons of the Material Flow Objects
Entrance locked
To close the entrance of the object, select this. The object will finish processing the MUs already
located on it, but does not accept any other MUs.
Processing starts again when you clear the checkbox. Note that the first MU in its Forward Blocking
List is going to be processed first.
Exit locked
To close the exit of the object, select this. The program prevents MUs from being moved onto the
successors in the material flow and enters them into the Exit Blocking List of this object.
Once the exit is unlocked again, the object moves the first MU in the Exit Blocking List to its successor.
This does not apply for the objects Store and Drain.
The Entity does not trigger the exit control, when you selected the check box Exit locked.
SimTalk:
ExitLocked
OK
To accept the changes you made and to close the dialog window, click OK. When you did not change
any settings, we recommend to not click OK, but to click Cancel to close the dialog window.
SimTalk:
closeDialog
Apply
To apply the changes you made and to leave the dialog window open, click Apply.
Cancel
To close the dialog window and to discard any changes you made, click Cancel.
SimTalk:
closeDialog
The most important commands for text boxes of material flow objects are also available on the
context menus that a click with the right mouse button opens.
Copy
Open Object
To open the dialog of the object, the name of which you enter into the text box, select this or click in
the text box and press the F2 key. Instead, you can also hold down the Shift key and double-click
into the text box.
Create Control
To create a control method, enter a meaningful name into the text box and select Create Control.
Plant Simulation then creates a user-defined attribute of data type method with this name, and
enters self.pre-defined name > into the text box.
Plant Simulation opens the Method, and you can enter the source code of this control into the Method
that opens. When the Method expects parameters, Plant Simulation automatically formats it correctly.
To delete this control, you have to delete the user-defined attribute; deleting the name from the text
box just deletes the name, but keeps the user-defined attribute.
Related Topic
Edit Controls
Cut
To cut the contents of the text box to the clipboard, select this.
Copy
To copy the contents of the text box to the clipboard, select this.
Paste
To paste the contents of the clipboard into the selected text box, select this.
Delete
Select All
To select the entire contents of the text box, select this. Or double-click into the text box to select the
entire contents.
Scroll to Tabs
Some objects have more tabs than they can show at the same time next to each other. Click the
buttons to scroll to the tab of your choice.
Tab Attributes
On the tab Attributes you can enter or select the settings controlling the behavior of the object. The
attributes depend on the class of the object, and are described in the sub-chapters of the objects.
Tab Times
Tab Times
On the tab Times you can select a distribution from the drop-down list and enter the values that the
distribution requires for the Processing time, the Set-up time, the Recovery time, when the Recovery
time starts, and the Cycle time.
Related Topics
Processing time
The processing time is the time during which the MU is located on the object to be processed. It
designates the interval between the time at which the material flow object was set-up for processing
this part type and the time at which the object moves the processed part on to its successor.
The successor is the object that is connected to the selected object with a Connector and that
succeeds it in the sequence of stations in the simulation model.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const). Or select to process the MU depending on its type (List(Type)). For the ParallelProc you
can select to process the MU depending on the station on which it is located (List(Place)). For the
Buffer and the PlaceBuffer you can only enter a constant processing time.
When you select Formula, you can enter a numeric expression or the name of a Method. You can
use the anonymous identifier @ to access the MU for which the processing time applies.
For a processing time of 0, Plant Simulation does not request a Worker. For this reason the
processing time will be calculated when the MU enters the station or when set-up is done.
If you would like to request a Worker in spite of a processing time of 0 enter a processing time
that is slightly greater than 0, for example 0.001.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started
> Example Models, and click Small Examples. Then, select the Category, the Topic, and the
Example in the dialog Examples Collection and click Open Model.
SimTalk:
ProcTime
Related Topics
Set-up time
The set-up time is the time it takes to set the object up for processing a different type of MU. An
identical name designates that parts are of the same type.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const). Or select to process the MU depending on its type (List(Type)). Or select the Matrix(Type)
distribution.
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the MU for which the set-up time applies.
When a set-up time of 0 results, Plant Simulation does not start setting the station up, in particular
it does not request any Workers. The part type, for which the station is being set up, is set to this
new part type immediately.
You can also arrange if the object sets-up automatically or if set-up will be started explicitly from within
a Method, compare the Tab Set-Up.
The LED of a station that is setting-up shows is brown .
SimTalk:
SetupTime,
RemainingSetUpTime
Related Topics
Times and Distributions States and Icons of the Material Flow Objects
Probability Distributions
Recovery time
The recovery time is the time which is required to set a station into a defined state before it can
start processing the next part. The recovery time is, for example, useful to model materials handling
equipment, such as a robot, which requires a certain time to insert work pieces into or remove
them from processing stations.
You can use the attribute EntranceOpen to check if the entrance is currently open. You can use the
attribute TimeUntilEntranceOpen to query the time at which the entrance will be open again.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const). When you select the Formula distribution, you can enter a numeric expression or the name
of a Method. You can use the anonymous identifier @ to access the MU for which the recovery
time applies.
For some stations you can also select, when the Recovery time starts.
SimTalk:
RecoveryTime
Related Topics
Times and Distributions States and Icons of the Material Flow Objects
Probability Distributions
For the SingleProc, the Assembly station, the DismantleStation, and the PickAndPlace robot, you can
select when the recovery time starts. The Recovery time is the time which is required to return a
station into a defined state before it can start processing the next part.
All other material flow objects just show this setting, you cannot select it.
Select when the recovery time of the station starts:
• When the part enters the station.
• When processing of the part is finished: The recovery time elapses after the part is processed,
no matter if the part is still located on the station or has left it.
• When the part exits the station: The recovery time elapses after the part is processed and
has left the station.
SimTalk:
RecoveryTimeMode
Cycle time
The cycle time is the time during which the second gate at the entrance of a material flow object
opens and closes cyclically, regardless of MUs entering the object. The cycle time is useful to model
chain conveyors with a fixed chain interval that only transport materials when a free hook is available.
You can use the attribute EntranceOpen to check if the entrance is currently open. You can use the
attribute TimeUntilEntranceOpen to query the time at which the entrance will be open again.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const). When you select the Formula distribution, you can enter a numeric expression or the name of
a Method. You can use the anonymous identifier @ to access the MU for which the cycle time applies.
Plant Simulation opens the entrance for a moment. When an MU is Waiting to enter at that time, it
may enter, if not, another cycle has to pass before it may enter.
When you enter 0 the entrance is always open. A value of 10 seconds for example means that the
gate opens every 10 seconds (compare Recovery time). The value 34, for example, means that MUs
can enter at the simulation times 0, 34, 68, 102, …
When you select a distributed time, then Plant Simulation computes the value for the cycle
time interval only once to arrive at equidistant intervals.
Note that recovery time and cycle time may overlap. Then, MUs may only enter the work stations if
both gates are open.
SimTalk:
CycleTime
Related Topics
Tab Set-Up
Tab Set-Up
On the tab Set-Up you can define how Plant Simulation sets the objects SingleProc, ParallelProc,
Assembly, DismantleStation, Drain, and DePortioner up.
Note that you enter the Set-up time on the tab Times.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started
> Example Models, and click Small Examples. Then, select the Category, the Topic, and the
Example in the dialog Examples Collection and click Open Model.
Related Topics
Setting-up for
Set-up for
The text box Set-up for shows for which type of MU the object is set up or is going to be set up for. If
the object has not been set up yet, it shows a hyphen -.
To tell one type of MU from the other, Plant Simulation uses the name of the MU or a user-defined
attribute of the MU, compare Set-up depends on.
Related Topics
IsSetUpFor
setUp
setUpFor
Automatic
• When you clear Automatic, you have to define the set-up process yourself, for example with
the Method setUpFor.
If the object cannot be set up at the current point in time, for example because it is
failed, Plant Simulation does not attempt to set the object up anew.
SimTalk:
AutomaticSetUp
setUpFor
To only start setting-up the material flow object for the next class of MU
when it is Empty, select this. MUs of the type for which the object is setting-up can only enter the
object, after the set-up process is finished.
To allow MUs tto enter the object although it has not been set-up for their type yet, clear the check box.
Their set-up time begins when all set-up processes which you specified are finished. MUs located on
the object will be processed with the settings for the MUclass for which the object was set-up before.
SimTalk:
SetUpOnlyWhenEmpty
After n parts
To set the material flow object up after a certain number of parts has been processed, select this.
Then, enter the number of parts after which you want the object to set up into the text box.
Enter the number of parts after which you want the object to set up.
• Select Before Next to set the object up after the n-plus-first part wants to move onto the station.
• Select After Last Part to set the object up immediately after the n-th part was processed.
The object also sets up and starts counting anew, starting from 1, when the part type changes before
the number you enter is reached. For this reason it may happen that the object does not reach the
number of parts of a certain type for which it is to set up.
If you do not want this, select the setting Off for Setup depends on. Then the station only sets up
after the selected number of parts.
The number of parts is the number of parts entering the station. These parts do not
necessarily have to be processed. Statistics also counts parts, which are removed from
the station before they have been processed, for example during the set-up process or
while the station is waiting for a service to be performed.
SimTalk
SetupAfterNumParts
SetupAfterNPartsMode
Related Topic
NumPartsSinceSetup
Set-up depends on
• The MU Name, meaning that the object sets up, when the name of the part changes.
• A user-defined attribute, meaning that the object sets up, when the value of this user-defined
attribute of the part changes. You have to enter the name of the attribute into the text box. This
user-defined attribute has to be of data type string.
Enter the name of a user-defined attribute of the part. The material flow object sets up, when a
part, whose user-defined attribute has a different value, moves onto the station.
The MUs might, for example, have a user-defined attribute named Color. Let us assume that
the station is set up for red. Now, a part with the user-defined attribute value blue moves on to
the station. For this reason it sets up for blue.
To change setting-up to MU Name via information flow, assign an empty string ("").
• Off: Deactivates setting the object up after changing the type to another MU. This means that the
station will only be set-up after the number of parts that you selected.
SimTalk:
SetupAttrName
SetupForType
Tab Failures
Tab Failures
On the tab Failures you can enter the settings for failures. In a real-world plant machines do fail
for unforeseeable reasons. Any current processing operations on the machines are interrupted for
the duration of the failure. Any upcoming production order can only be processed after the failure is
removed, i.e., the machine is repaired.
For planning production processes the description of the availability of machines or common
production resources, such as SingleProc, ParallelProc, Transporterand Worker, is critical. The
on-schedule completion of customer orders does, for example, strongly depend on unexpected
interruptions of the manufacturing process by failures of machines and by unavailable personnel.
The time interval between the end of the last failure and the beginning of the next failure is called the
MTBF (Mean Time Between Failures). The duration of a failure is called the MTTR (Mean Time To
Repair) although the duration of a failure does, generally speaking, not only contain the repair time.
In practice both times, MTBF and MTBF, are random numbers.
In a real-world plant production resources may fail for a number of reasons, which differ in their
frequency and in the required repair time. Failures might be
• the breakage of a tool
The different failure reasons lead to different time intervals between failures (MTBF), while the
duration of the failure naturally depends on its cause.
For simulating different failure causes you can define several failure profiles for a production
resource. For some failure reasons the MTBF is extended because the machine is not used during
pauses or during repair times. A tool does not wear out for example, when the machine is not
Working. The machine still corrodes though, even if it is not working.
Failures caused by power outages or by thunderstorms naturally relate to the simulation time. These
failures also occur, when the machine is not working, they take place independent of each other. A
failure reason based on the simulation time do not allow us to draw a conclusion about the occurrence
of additional failure reasons based on the simulation time.
When a machine has two failure reasons based on the operating time or the processing time, the
time between two failures of the first reason is extended by the repair time for a failure of the second
reason. Beginning and end of the failures caused by different reasons are no longer independent of
each other. Thus the repair times of failure reasons based on the operating time or the processing
time can not overlap.
When we compare a machine with two simulation-time or the operating-time-based failure reasons,
which will not be paused, we’ll detect that each failure reason has an availability of 50 percent.
• In the first case the resulting availability is 25 percent as both failure reasons occur independent
of each other.
The mean times to repair (MTTR) and failure intervals (MTBF) of both failure reasons are four
identical time values. While the times of the failure durations never can overlap, the time of the failure
intervals, namely of the operating time, of both failure profiles passes simultaneously. For this
reason the resource is ready for use during a third of the time.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
You can fail a failure profile by assigning true to the attribute Failed.
The object is failed when you activate one of its failure profiles or when you activate the check
box Failed.
Related Topics
endFailure GetDisruptionEndTime
endFailureIn startFailure
eraseFailureEvents startFailureIn
GetDisruptionBeginTime
Active
To activate failures of the object in general, select this. To deactivate them, clear the check box
.
The failure of the object is only active, when you activate this and the check box Active of the
corresponding failure profile!
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
SimTalk:
FailureActive
New
New
Enter the Name of the failure profile and select if it is Failed and if it is Active or not. You can define
the Start time and the Stop time, the Interval and the Duration of this failure profile. You can also
select the time which the Failure relates to.
The Lognormal distribution, the Erlang distribution and the Negative exponential distribution are
especially suited for modeling failures.
When you select the check box Availability, Plant Simulation grays the dialog items Interval and
Duration out, and you can enter the Availability and the MTTR instead. You can also select if the
failure relates to the simulation time, the operating time or the processing time.
SimTalk:
Failures.getTable
Failures.setTable
Failures.createFailure
Failures.deleteFailure
Failures.getFailure
Related Topic
Name
Enter the name of this failure profile, for example the reason why the machine fails.
SimTalk:
Failures.NameOfFailureProfile.Name
Failed
To fail this failure profile select this. To not fail this failure profile, clear the check box. The
setting/attribute is observable and Plant Simulation can call a control. The row of a failed failure
profile is shown in red in the List of Failure Profiles.
SimTalk:
Failures.NameOfFailureProfile.Failed
Active
To activate this failure profile, select this. To deactivate it, clear the checkbox.
The failure of the object is only active when you activate this, i.e., the failure profile itself, and the
checkbox Active on the tab Failures!
SimTalk:
Failures.NameOfFailureProfile.Active
Start
Select a distribution for the time at which the first failure of this failure profile will take place. Enter
the values, which that distribution requires, into the text box. Plant Simulation shows these values
above the list of distributions which you can select.
You can also enter a Formula in which you can access the anonymous identifier @.
When you enter 0, Plant Simulation uses the failure Interval to set the point in time of
the first failure.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
SimTalk:
Failures.NameOfFailureProfile.Start
Related Topics
Stop
Select a distribution for the time at which the last failure of this failure profile will take place. Enter
the values, which that distribution requires, into the text box. Plant Simulation shows these values
above the list of distributions which you can select.
You can also enter a Formula in which you can access the anonymous identifier @. When the object
is still failed when the program reaches the Stop time, the failure will last for the Duration you selected.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
SimTalk:
Failures.NameOfFailureProfile.Stop
Related Topics
Interval
Select a distribution for the time between the end of the last failure and the start of the next
oneof this failure profile. Enter the values, which that distribution requires, into the text box. Plant
Simulationshows these values above the list of distributions which you can select.
You can also enter a Formula in which you can access the anonymous identifier @. The value 0 for
the Interval and a value greater than 0 for the Duration will produce a single failure.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
When you select the check box Availability, Plant Simulation hides the dialog items Interval
and Duration, and you can enter the Availability and the MTTR instead.
SimTalk:
Failures.NameOfFailureProfile.Interval
Related Topics
Duration
Select a distribution fo rthe duration of the failureof this failure profile. Enter the values, which
that distribution requires, into the text box. Plant Simulationshows these values above the list of
distributions which you can select.
You can also enter a Formulain which you can access the anonymous identifier @.
After the time you entered for the failure has elapsed, the program returns the object to the not failed
state. When you enter 0, no failures at all will take place.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
When you select the check box Availability, Plant Simulation hides the dialog items Interval
and Duration, and you can enter the Availability and the MTTR instead.
When a station fails, and a pause occurs during the failure, the failure time of the station
will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap as pause time.
SimTalk:
Failures.NameOfFailureProfile.Duration
Related Topics
Availability
To activate the text boxes Availability and MTTR, select this. Then, enter the availability and the mean
time to repair of the station instead of the Duration and the Interval of the failure.
Using Availability in percent and MTTR is just another kind of displaying the values for the Duration
and the Interval of a failure. When you enter values for Availability and MTTR and click Apply,
Plant Simulation computes the values for the Duration and the Interval and enters them into the text
boxes. It also selects the Erlang-distribution for the Duration and the NegExp-distribution for the
Interval, Plant Simulation shows them in the dialog, when you clear the check box Availability.
An availability of 100 percent has an MTTR of 0, as the machine is available and does not have to
be repaired. Plant Simulation uses the values in that view of the dialog where you clicked Apply.
The object only inherits the values for the Availability (%) and the MTTR, when it also inherits the
Availability as such from the parent dialog, i.e., when the inheritance button next to the check
box looks like this !
When you set an availability of 100 percent, meaning that the station will never fail, and
subsequently change the availability to a more realistic value, say 50 percent, Plant
Simulation will not apply this new setting unless you clear the check box Active, click
Apply, and then select Active again.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
SimTalk:
Failures.NameOfFailureProfile.AvailabilityOn
Availability
Enter the availability of the machine. This is a value between 0 and 100percent. The availability
designates the proportion of time during which a machine is in an operable state. Availability is
based on a combination of MTBF and MTTR.
MTBF is the Mean Time Between Failures, a measure of reliability. It is the time in hours that
represents the average amount of time that passes between random failures of a machine.
The object only inherits the values for the Availability (%) and the MTTR, when it also inherits
the Availability as such from the parent dialog, i.e., when the inheritance button next to the check
box looks like this !
Note that you cannot always set the availability and the MTTR independently of each other. If the
availability is 100 percent, the MTTR has to be 0, as no failures can take place. On the other hand an
MTTR of more than 0 automatically results in an availability of less than 100 percent.
When you set these two values via information flow with these attributes, the following assignments
MySingleProc.Failures.MyFailureProfile1.MTTR := 60
MySingleProc.Failures.MyFailureProfile1.Availability := 100
result in an MTTR of 0, i.e., the SingleProc will not fail during the simulation.
The following sequence of assignments
MySingleProc.Failures.MyFailureProfile1.Availability := 100
MySingleProc.Failures.MyFailureProfile1.MTTR := 60
automatically result in an availability of the SingleProc of 95 percent. This is a typical value for the
availability of a machine. For these settings the SingleProc will fail during the simulation.
When you set an availability of 100 percent, meaning that the station will never fail, and
subsequently change the availability to a more realistic value, say 50 percent, Plant
Simulation will not apply this new setting unless you clear the check box Active, click
Apply, and then select Active again.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
SimTalk:
Failures.NameOfFailureProfile.Availability
Related Topics
Failures.NameOfFailureProfile.MTTR
Failures.NameOfFailureProfile.AvailabilityOn
MTTR
Enter the Mean Time To Repair (MTTR) of the machine. Optionally you can also enter the lower bound
and upper bound for the Erlang-distribution. Plant Simulation hen computes the Erlang-distribution
and the negative exponential distribution from these values. When you enter the lower bound and
the upper bound for the Erlang-distribution, Plant Simulation computes the MTTR.
The mean time to repair is a measure of maintainability. It is the average time required to repair
this machine.
For simulating repair times during the duration of a failure Plant Simulation uses the Erlang-distribution.
This Erlang-distribution is the sum of two independent exponentially distributed random numbers with
the same parameter β. The used Erlang-distribution also has the property .
The picture of the probability density function of this random number shows that very short and
very long repair times occur very rarely. Repair times that are located around the value µ/2 are
most common.
Figure 6-1. Density function of the distribution for repair times with a mean value of μ= 10
The object only inherits the values for the Availability and the MTTR, when it also inherits the
Availability as such from the parent dialog, i.e., when the inheritance button next to the check box
looks like this !
When you set these two values via information flow with these attributes, the following assignments
MySingleProc.Failures.MyFailureProfile1.MTTR := 60
MySingleProc.Failures.MyFailureProfile1.Availability := 100
result in an MTTR of 0, i.e., the SingleProc will not fail during the simulation.
The following sequence of assignments
MySingleProc.Failures.MyFailureProfile1.Availability := 100
MySingleProc.Failures.MyFailureProfile1.MTTR := 60
result in an availability of the SingleProc of 95 percent. This is a typical value for the availability of a
machine. For these settings the SingleProc will fail during the simulation.
When you set the MTTR to 0, meaning that the station will never fail, and subsequently
change the MTTR to a more realistic value, say 60 seconds, Plant Simulation will not
apply this new setting unless you clear the check box Active, click Apply, and then select
Active again.
When you change failure settings, we recommend to first clear the check box Active and
to then click Apply. Then, change your settings, apply them, and select the check box
Active again. This ensures that the next failure event (DisruptionBegin/DisruptionEnd)
will be calculated with a complete valid set of parameters.
SimTalk:
Failures.NameOfFailureProfile.MTTR
Failures.NameOfFailureProfile.Availability
Related Topic
Change Failure Settings During the Simulation Run
Failure relates to
Select the time to which the failures of this failure profile relate:
consumes the time you entered for the failure Interval, regardless of the state the object is in.
The Simulation Time is the time between the beginning of the simulation run (Reset Simulation,
Start/Stop Simulation) and its end.
The operating time
consumes the time you entered for the failure interval only when the object is operational. The
Operating Time will be interrupted by pauses and failures.
The processing time
consumes the time you entered for the failure interval while the object is processing the part.
For point-oriented objects the Processing Time is the time during which a part is located on a
material flow object and is being processed by it.
For conveying objects, such as the Line, the Processing Time is the time during which its speed is
not 0. It can also be working, when the conveyor is moving and does not transport a part.
For additional information about the Processing Time, consult the topic Working.
For processing time based failures of a ParallelProc the simulated MTBF is reduced, when the
number of parallel processing operations of parts on the ParallelProc increases. This means that
the more parts are processed simultaneously, the sooner the failure occurs, and the smaller the
availability becomes. This then causes the availability you entered into the dialog to not be reached.
When a station fails, and a pause takes place during the failure, the failure time of the
station will still be consumed, although the station is paused. The DisruptionEnd event
will not be changed.
When a station, which fails based on the processing time or the operating time and which is
interrupted by a pause or failure, the processing time or the operating time of the station for simulating
the MTBF will not be consumed. The points in time for the DisruptionBegin event will be moved
forward into the future.
Statistics counts the times during which these two states overlap as pause time.
Compare the sample models for processing time related failures of the ParallelProc: Click the
Window ribbon tab, click Start Page > Getting Started > Example Models, and click Small
Examples. Then, select the Category, the Topic, and the Example in the dialog Examples
Collection and click Open Model.
SimTalk:
Failures.NameOfFailureProfile.Mode
Related Topic
State Working
Edit
To edit the failure, which you selected in the List of Failure Profiles, click Edit.
Instead, you can also double-click the name of the failure in the list.
Delete
To delete the failure, which you selected in the List of Failure Profiles, click Delete.
The list shows all failure profiles which you defined for the object. Each row in the list contains the
parameters of a specific failure profile. The row of a failed failure profile is shown in red.
You can activate or deactivate a failure profile by checking or clearing the check box Active and by
then clicking Apply or OK. To edit any of its parameters, double-click the respective row and change
them in the dialog that opens.
SimTalk:
Failures.getTable
Failures.setTable
Failures.createFailure
Failures.count
Failures.getFailure
Tab Controls
Tab Controls
For all material flow objects you can define controls which an arriving MU triggers. When the part
triggers an internal sensor, the object triggers the Method object you entered as the control. These
user-defined controls will then replace the built-in properties of the object.
For the length-oriented objects you can, in addition, define sensor controls anywhere on the object.
They activate the Methods, which you assigned to the sensor, when an MU passes the sensor. You
can define and delete sensors in the dialog of the Track, the TwoLaneTrack or the Line on the tab
Controls > Sensors or from within a Methodobject.
You can use control methods in a number of ways. You might, for example, count the number of
incoming MUs and then, after a specified number has been reached, move the following MUs to
a different successor.
You can only use Methods as controls. Either enter the name_of_the_Method, to call a
Method in the Frame into which you inserted the object or enter self .name_of_the_Method,
to call a user-defined attribute of data type method.
• Select or enter the Backward entrance control for the length-oriented objects Line, Track, and
TwoLaneTrack.
• Select or enter the Backward exit control for the length-oriented objects Line, Track, and
TwoLaneTrack.
• Select or enter the name of the Shift calendar, which controls the shifts during which the object
works. Define the shifts in the object ShiftCalendar.
• Create and insert Sensors for the length-oriented objects Line, Turntable, Track, and
TwoLaneTrack.
The button in the text box of the control provides three commands:
• Click Select Object and select a Method object in the dialog. This Method object contains the
source code of the respective control.
• Click Create Control to create the control as a user-defined attribute of the object itself.
• Click Open Object after you created the controls as a user-defined attribute of the object
to open this control.
To open the dialog of the object, whose name you entered into the text box, click in the text
box, and press the F2 key.
Once you enter a control, either here or under Tools > Edit Controls, the context menu of the
object in the Frame shows the command Controls. You can then select the name of the control on
the submenu to edit it.
Entrance control
You can modify the built-in behavior of the material flow objects with an entrance control in which
you can program the actions that you want to execute. The object calls the Method you entered
as soon as an MU intends to enter the object.
You can use control methods in a number of ways. You might, for example, count the number of
incoming MUs and then, after a specified number has been reached, move the following MUs to
a different successor.
Click and select a Method object into which you entered the source code of the entrance control.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
is
do
inspect @.Name
when "PartA" then
?.ProcTime := str_to_time("10:0"); -- PartA will be processed for 10 minute
when "PartB" then
?.ProcTime := str_to_time("2:0"); -- PartB will be processed for 2 minutes
end;
end;
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
• When the Front or the Rear of the part enters a length-oriented object, such as the Line, or
Track or a TwoLaneTrack.
Remember that a part, for which you entered a length, does not enter these objects all at once,
but continually. Depending on the length and the speed of the part, there will a delay between the
time the front and the time the rear of the part enters the object.
Select Front to activate the control as soon as the front of the part enters, i.e., is located on the
object. This means that changing the processing time in the entrance control does not affect
the part that already entered the object. To set the processing time depending on the part that
arrives, define the processing time in a formula.
The Front of the part always moves towards the end of the length-oriented object into
the direction with which you inserted it along the direction of motion of the material
flow. When you insert a length-oriented object, for example a Line, from left to right,
the Front of the part is located on the right-hand side and moves towards the right.
When you insert a length-oriented object from right to left, the Front of the part is
located on the left-hand side and moves towards the left.
This also applies to parts which move backwards when you select the check box
Backwards of the Lineor the Transporter! The Front of the part keeps on pointing
towards the end of the length-oriented object into the direction with which you inserted
it along the direction of motion of the material flow.
Select Rear to activate the control as soon as the rear of the part enters the object.
You can also select both Front and Rear. The part then executes the control as soon as the
front or the rear of the part enters the object.
To activate the entrance control of the point-oriented objects before the standard actions are
started, when a part enters the object, select Before actions. Standard actions are, for example,
starting the processing time or the set-up time, requesting services through the importer, or
changing the assembly table of the Assembly station. Then, you can, for example, change the
processing time in the entrance control, which then affects processing of the part that is already
located on the object.
To activate the entrance control after the standard action has been executed, clear the check box.
Also compare the video Creating an Exit Control, which you can open under the Window ribbon
tab > Start Page > Getting Started > Videos.
SimTalk:
EntranceCtrl
EntranceCtrlFront
EntranceCtrlRear
EntranceCtrlBeforeActions
Related Topics
Create Entrance and Exit Controls
Change the Processing Time in the Entrance Control
Change the Services of the Importer in the Entrance Control
Change the Assembly List in the Entrance Control
FwDestList
Sensors
Exit control
You can modify the built-in behavior of the material flow objects with an exit control. The object calls
the Method you entered as soon as an MU intends to exit the respective object.
You can use control methods in a number of ways. You might, for example, count the number of
incoming MUs and then, after a specified number has been reached, move the following MUs to
a different successor.
You can only use Methods as controls. Either enter the name_of_the_Method, to call a
Method in the Frame into which you inserted the object or enter self .name_of_the_Method,
to call a user-defined attribute of data type method.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Click and select a Method object into which you entered the source code of the exit control.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Controlon the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
local n : integer;
n := SingleProc.StatNumIn;
if n = 100 then
@.move(SingleProc1);
elseif n = 300 then
@.move(SingleProc2);
else
@.move(SingleProc3);
end;
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Plant Simulation activates the exit control, when a part intends to exit the object. The check boxes
Front and Rear set when the part triggers the Methods. When you entered an exit control, and the
control is Front-triggered, the control has to transfer the part,for example with the method move.
When you programmed an exit control and an importer release control, the importer release
control is called first and then the exit control is called.
When the MU is a Transporter with a destination control, the destination control will
not be called.
The exit control can have an optional parameter of data type object. When the Method
has this parameter, then the successor object, which pulls the part because the part was
contained in the blocking list of the object, will be assigned to this parameter. The part
will be pulled, for example, when the successor becomes available again or when its
entrance is opened.
Front
Select Front to activate the control as soon as the part is ready to exit the object. The exit control
then has to move the part to another object, as the built-in behavior of the material flow object, i.e.,
moving the part onto the successors along the Connectors, has been overridden by the exit control.
The same partcan call the Front-triggered exit control more than once, if that part could
not exit the object and entered itself into the Blocking List of the target object. As soon as
the target object is ready to receive the part, the part is assigned a new Out even, which
triggers the Front- triggered exit control again. This only applies when you cleared
the check box Exit control once.
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of the
part is located on the right-hand side and moves towards the right. When you insert a
length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box
Backwards of the Line or the Transporter! The Front of the part keeps on pointing towards
the end of the length-oriented object into the direction with which you inserted it along
the direction of motion of the material flow.
Rear
Select Rear to activate the control as soon as the rear of the part has completely exited the object.
This control does not override the built-in behavior of how MUs move to the successor of the current
object.
Compare the Out, OutEndand Reference events in the List of scheduled events.
You can also select both Front and Rear. The part then triggers the control as soon as the front or
the rear of the part exits the object.
Exit control once
Select Exit control once to call the exit control only once when the part intends to exit the object.
Clear the check box to call the exit control again when the part is unblocked.
If the target station cannot receive the part, the part is entered into the entrance blocking list of the
target station. As soon as the target station becomes available again, the part is unblocked. If you
would like to call the exit control again now, clear the check box.
When the station is failed or paused, all transfer processes are canceled and the parts are
removed from the entrance blocking lists of the succeeding stations. When the station
becomes operational again, the fully processed parts get a new Out event and the exit
control is called again independent of this setting.
Also compare the video Creating an Exit Control, which you can open under the Window ribbon
tab > Start Page > Getting Started > Videos.
SimTalk:
ExitCtrl
ExitCtrlFront
ExitCtrlRear
ExitCtrlOnce
Related Topics
Create Entrance and Exit Controls
Distribute Parts with an Exit Control
Program the Exit Control
FwDestList
Sensors
In addition to the forward Entrance control, the Line, the Track, the TwoLaneTrack, and the loading
space of the Transporter provide the backward entrance control that Plant Simulation activates
when the MU enters the objects via their exit and/or when it moves towards their entrance after
entering.
The Transporter backs up on the Track, it does not turn around. This means that it moves
in reverse with its front end still pointing in the direction of the material flow!
Click this and select a Method object into which you entered the source code of the backward
entrance control.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type methodof this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Plant Simulation activates the backward entrance control when the MU enters the length-oriented
objects Track, TwoLaneTrack or Line via their exit and/or when it moves towards their entrance after
entering. The check boxes Front and Rear set, when the MU triggers the Methods.
Remember that an MU, for which you entered a length, does not move onto these objects all at once
while backing up, but continually. Depending on the length there will a delay between the time the
back and the time the front of the MU is located on the object:
Select Rear to activate the control as soon as the rear of the MU enters the object.
Select Front to activate the control as soon as the front of the MU enters the object.
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of
the part is located on the right-hand side and moves towards the right. When you insert
a length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box Backwards of the
Line or the Transporter! The Front of the part keeps on pointing towards the end of the length-oriented
object into the direction with which you inserted it along the direction of motion of the material flow.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
BwEntranceCtrl
BwEntranceCtrlRear
BwEntranceCtrlFront
Related Topics
Define Controls for Point-Oriented Objects
Define Controls for Length-Oriented Objects
BwDestList
Sensors
In addition to the forward Exit control, the Line, the Track, and the TwoLaneTrack provide a backward
exit control that Plant Simulation activates when the MU exits the objects via their entrance and/or
when it moves towards their entrance when exiting.
The Transporter backs up on the Track, it does not turn around. This means that it moves
in reverse with its front end still pointing in the direction of the material flow!
Click this and select a Method object into which you entered the source code of the backward
exit control.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Plant Simulation activates the backward exit control when the MU exits the length-oriented
objects Track, TwoLaneTrack or Line the objects via their entrance and/or when it moves towards
their entrance when exiting. The check boxes Front and Rear set, when the MU triggers the Methods.
Select Rear to activate the control as soon as the back of the MU exits the object at its entrance.
Select Front to activate the control as soon as the front of the MU exits the object at its entrance.
The exit control then has to move the part to another object, as the built-in behavior of the material
flow object, i.e., moving the part on to the successors along the Connectors,has been overridden by
the exit control.
The same part can call the Front-activated exit control more than once, if that part could
not exit the object and entered itself into the Blocking List of the target object. As soon
as the target object is ready to receive the part, the part is assigned a new Out even,
which triggers the Front -activated exit control again. This only applies when you cleared
the check box Exit control once.
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of
the part is located on the right-hand side and moves towards the right. When you insert
a length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box Backwards of the
Line or the Transporter! The Front of the part keeps on pointing towards the end of the length-oriented
object into the direction with which you inserted it along the direction of motion of the material flow.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
BwExitCtrl
BwExitCtrlRear
BwExitCtrlFront
Related Topics
Define Controls for Point-Oriented Objects
Define Controls for Length-Oriented Objects
BwDestList
Sensors
Set-up control
Click this and select a Method object into which you entered the source code of the set-up
control. Plant Simulation activates it, whenever a set-up process starts or ends. The control will also
be called, when set up is interrupted.
Parameter
The optional parameter SetupStart of data type boolean shows the user if setting-up starts or ends.
The standard set-up control looks like this:
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.SetUpControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Enter the name_of_the_Method, to call a Method in the Frame into which you inserted
the object. Enter self .name_of_the_Method, to call a user-defined attribute of data
type method.
SimTalk:
SetupCtrl
Pull control
Click this and select a Method object into which you entered the source code of the pull control.
Plant Simulation activates it, whenever the object is ready to accept a new part or when it is ready,
when a new part is Waiting at its entrance. In the pull control you can determine which of the MUs,
which intend to move onto the object, the object will actually accept. For this you have to get the
forward blocking list of the object with the method fwBlockList and unblock a part in that list with
the method unblock.
Let us assume that red parts are especially important and thus have to priority for being processed.
Then you can always pull red parts first from the predecessors and only then pull parts in other colors.
For the objects Line, Track, and TwoLaneTrack the pull control only applies to MUsmoving
in the forward direction, i.e., to objects, which move onto them at their entrance and exit
them at their exit. It does not apply to MUs moving onto them backwards at their exit !
For the Converter the pull control also applies for parts that move onto it backwards
at its exit.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.SetUpControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Enter the name_of_the_Method, to call a Methodin the Frameinto which you inserted
the object. Enter self .name_of_the_Method, to call a user-defined attribute of data
type method.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started
> Example Models, and click Small Examples. Then, select the Category, the Topic, and the
Example in the dialog Examples Collection and click Open Model.
SimTalk:
PullCtrl
Shift calendar
Click this and select the ShiftCalendar.This ShiftCalendar object contains the data of the shifts in
your installation and controls during which shifts the object works.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
This automatically enters the object into the list of Objects on the tab Resources of the ShiftCalendar.
SimTalk:
ShiftCalendarObject
Related Topic
Assigned Shift Calendar
Sensors
Sensors
In addition to entrance and exit controls, you can define sensors for the length-oriented objects
Line, Turntable, Track, TwoLaneTrack, and for the Transporter. The sensor can be located at any
point on the length-oriented object. Plant Simulation calls the control methods as soon as an MU
passes the sensor.
To create a new sensor, click the position at which you would like to insert the sensor with the right
mouse button and select Create Sensor on the context menu. Enter the data defining to the sensor
into the dialog that opens.
To open the Sensor List, click Sensors. Instead, you can also double-click the name of a sensor
in the open sensor list. A Sensor is defined by its Sensor-ID, its Position, its length unit, and the
Method object triggering it. You can set the position in relation to the length of the object or as an
absolute length.
Or, you can right-click the sensor in the Frame and select Open Sensor on the context menu.
The list shows all sensors which you already defined. You can edit or delete existing sensors and add
new sensors. The list shows the ID, the position on the length-oriented object, if it is front-triggered
or rear-triggered, the path of the control that is executed, and if the sensor was created in the
present instance of the object.
Line, Track, Turntable, and TwoLaneTrack show the button on the tab Controls. The Transporter
shows the button Sensors on the tab Load Bay, when you select the Type Line or Track. Here
you have to click Apply to activate the button.
A Sensor is defined by its Sensor-ID, its Position, its length unit and the Method object triggering it.
You can set the position in relation to the length of the object or as an absolute length:
• For the setting Relative enter a value between 0 and 1, that is between 0 percent and 100
percent. Plant Simulation displays 0..1 to the right of the text box.
• For the setting Length enter a value between 0 and the length of the object. Plant Simulation
uses the length unit you selected under File > Model Settings/Preferences > Units > Length.
In our example, the asterisk * in the column Created here designates that the sensor was created in
the present instance of the object. If the sensor inherits values from a parent object, the list displays
(i). 1 stands for the number of the sensor, and 2m stands for the position of the sensor. In the column
Path, Plant Simulationshows the name of the Method which the sensor activates.
Plant Simulation places a question mark ? in front of an invalid position; that sensor will be inactive
during a simulation run.
To create a new sensor, click New.
To edit the sensor, which you selected in the list, click Edit.
To delete the sensor, which you selected in the list, click Delete.
To open the sensor that Plant Simulation inserts as a red line into the icon of the object,
Alt+double-click the red line and change the settings in the dialog that opens.
To show a tooltip with vital information about the sensor, drag the mouse over the red line designating
the sensor on the object.
When you click the Close button, Plant Simulation updates and shows the Number of Sensors
on the button Sensors on the tab Controls of the Track, the TwoLaneTrack, the Turntable, and the
Line and on the tab Attributes of the Transporter.
You will make extensive use of sensors when Modeling Transport Systems. We used them in our
sample applications for loading and unloading a cross sliding carand a tugger train.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started
> Example Models, and click Small Examples. Then, select the Category, the Topic, and the
Example in the dialog Examples Collectionand click Open Model.
SimTalk:
createSensor
deleteSensor
Related Topics
createSensor _3D.ShowSensors
deleteSensor
New
To create a new sensor and open the dialog Sensor, click New. The settings for activating the
sensor and for the destination are only available, when you define a sensor for the objects Track and
TwoLaneTrack.
Sensor-ID
Shows the number that Plant Simulation automatically assigns to the sensor, when it creates it. You
can use the ID, which is a unique identifier, to access that sensor from within Methods.
Position
Select the type of the position, Relative or Length, from the drop-down list. Then, enter the position
of the sensor.
When you select Length, you can enter a value between 0 and the length of the object.
When you select Relative, you can enter a value between 0 and 1, i.e., between 0 percent and 100
percent. The program then shows 0..1 to the right of the text box.
The program uses the length unit you selected under File > ModelSettings/Preferences > Units >
Length. When you enter an invalid value, the program changes the color of the text box to red.
Enter how far along the length of the object, starting from the beginning of the Line, the Track, the
Turntable or on lane A of the TwoLaneTrack, the sensor is located.
Enter how far along the length of lane B of the TwoLaneTrack the sensor is located. When you
select Lanes > BothLanes, the program computes the position of the sensor on lane B according
to the position, which you entered for lane A.
To make the Front of the part activate the sensor on the Line, the Track or on lane A of the
TwoLaneTrack, select this. You can also select Front and Rear. Then both the front and the rear of
the part activate the Method.
To make the Front of the part activate the sensor/ Method on lane B, select this. You can also select
Front and Rear. Then both the front and the rear of the part activate the Method.
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of the
part is located on the right-hand side and moves towards the right. When you insert a
length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box Backwards of the
Line or the Transporter! The Front of the part keeps on pointing towards the end of the length-oriented
object into the direction with which you inserted it along the direction of motion of the material flow.
Light barrier mode
To activate light barrier mode when the Line or the Transporter move backwards, select this. When
you select Front , the front of the MU/Transporter in the direction of motion triggers the
sensor just like a part does that breaks a light barrier on a conveyor. The light barrier sensor is also
triggered when you drop a part on the sensor or when you remove it from it.
The sensors on the Tab Load Bay of the Transporter only apply to the loading space. In this case light
barrier mode applies to the parts that move on the loading space.
Rear
To make the Rear of the part activate the sensor on lane A, select this. You can also select Front
and Rear. Then both the front and the rear of the part activate the Method.
To make the Rear of the part activate the sensor/Method on lane B, select this. You can also select
Front and Rear. Then both the front and the rear of the part activate the Method
Lanes
Select on which lane of the TwoLaneTrack you want to insert the sensor. On both lanes, or on
lane A only, or on lane B only.
Activate
When you create a sensor for a Track, you can select, when a Transporter passing over it triggers the
sensor: Always, independent of the destination of the Transporter. Or Only when the Transporter
has the same destination as the one, which you entered into the sensor.
The Transporter’s Automatic routing feature also includes this destination object. When you assign
a Destination to the Transporter while automatic routing is active, it drives to the sensor. There it
activates the sensor control and a destination control which you defined for the Transporter. The
same destination object can be defined in several sensors. It may also be directly reached via
different Tracks. Even when a direct route leads to the destination object, the Transporter drives to the
nearest sensor, when this sensor can be reached on a shorter route than the destination object itself.
Destination
Enter the name of the destination object to which the Transporterdrives.
The Transporter’s automatic routing feature also includes this destination object. When you assign
a Destinationto the Transporterwhile automatic routing is active, it drives to the sensor. There it
activates the sensor control and a destination control which you defined for the Transporter. The
same destination object can be defined in several sensors. It may also be directly reached via
different Tracks. Even when a direct route leads to the destination object, the Transporter drives to the
nearest sensor, when this sensor can be reached on a shorter route than the destination object itself.
Control
Click this and select the Method object, which the sensor calls. To open the dialog of the object,
whose name you entered into the text box, click in the text box, and press the F2 key.
As soon as the sensor calls this Method, it passes the Sensor-ID as an optional parameter. When the
Method expects a parameter of data type integer, the sensor passes the Sensor-ID to the Method; if
you do not enter an integer parameter, the Method will be called without a parameter. The second
optional parameter of data type boolean shows the user if the front or the rear of the part triggers
the control.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu
to create a control method:
• Enter a meaningful name into the text box and select Create Control. Plant Simulationthen
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
Once you enter a sensor control, the context menu of the object in the Frame shows the
command Controls. You can then select the name of the sensor control on the submenu to edit it.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk
Activate Lanes
createSensor Lightbarriermode
Ctrl Position
Destination PositionType
Front Rear
ID sensorID
Edit
To edit the settings of the sensor and to open the dialog Sensor, click this or double-click the name of
the sensor in the sensor list.
Delete
To delete the sensor, which you selected in the list of sensors, click this.
Related Topic
deleteSensor
Tab Exit
Tab Exit
Select the strategy from the drop-down list Strategy according to which the object moves the part
on to one of its successor.
As a rule you will use an exit strategy, which distributes the flow of materials, when the sequence of
operations does not uniquely designate the next object that processes the part.
Your objective will be to make a choice that is close to optimal in some respect, say cost or time.
To show the items belonging to the new strategy, click Apply after you selected another
strategy.
Plant Simulation only takes the exit strategy for length-oriented objects into account, when
the part moves in the forward direction.
Also compare the video Using an Exit Strategy, which you can open under the Window ribbon
tab > Start Page > Getting Started > Videos.
SimTalk:
ExitStrategy
Related Topics
Blocking
Strategy
Use the Standard Transfer Behavior
Select an Exit Strategy
Attributes for Setting the Exit Strategy of the Material Flow Objects
Data Held in Tabular Form in Attributes
Blocking
• When you select Blocking, the material flow object always moves the part to the designated
successor. If that successor is not ready to receive it, the part will be blocked.
When moving the part fails, Plant Simulation enters the part into the Forward Blocking List of
the designated successor.
• When you clear the check box, the material flow object moves the part on when any of its
successors can receive it.
When none of the successors can receive the part, Plant Simulation enters it into the forward
blocking list of all successors.
The non-blocking strategy of the exit strategy > MU Attribute moves the part on when
any of the desired successors can receive it.
SimTalk:
ExitStrategyBlocking
Strategy
Strategy
Select the strategy according to which the material flow object moves the part to its successors.
Plant Simulation only takes the exit strategy for length-oriented objects into account, when
the part moves in the forward direction.
• To make the Worker carry the part to the target object, select Carry part away.
• To move the MUs cyclically to the next successor in line, select Cyclic.
• To cyclically move the part to the object’s successor according to the sequence of successors,
which you entered into the list, select Cyclic sequence.
• To move the MUs on to the successor that has been Waiting the longest for a part, select Least
recent demand.
• To move the MUs on to the material flow object's successor in a linear fashion, according to the
sequence of successors, which you entered into the list, select Linear sequence.
• To move the MUs on to the successor that contains the greatest number of MUs, select Max.
contents.
• To move the MUs on to the successor that received the most MUs, select Max. num. in.
• To move the MUs on to the successor with the longest processing time, select Max. proc. time.
• To move the MUs on to the successor with the highest relative occupancy, select Max. rel. occu..
• To move the MUs on to the successor with the longest set-up time, select Max. set-up time.
• To move the MUs on to the successor that contains the smallest number of MUs, select Min.
contents.
• To move the MUs on to the successor that received the smallest number of MUs, select Min.
num. in.
• To move the MUs on to the successor with the shortest processing time, select Min. proc. time.
• To move the MUs on to the successor with the lowest relative occupancy, select Min. rel. occu.
• To move the MUs on to the successor with the shortest set-up time, select Min. set-up time.
• To move the MUs on to the successor that has been Waiting the least amount of time for a
part, select Most recent demand.
• To move the MUs on to the successor according to an attribute of the part, select MU Attribute.
• To move the MUs on to the successors according to a percentage distribution, select Percentage.
• To always move the part to the object’s successor with the number 1, select Start at successor 1.
Click Apply to apply your settings and to show additional dialog items which certain
exit strategies require.
SimTalk:
ExitStrategy
Related Topic
Data Held in Tabular Form in Attributes
Only the point-oriented material flow objects, which provide importers and exit strategies,
offer the strategy carry part away.
To make theWorker pick up and carry parts, which are ready to leave the station, to the destination
object, select Carry part away from the drop-down list. If you would like to define a Loading time
and/or an Unloading time, you can enter them in the Workplace attached to the station.
Select the Broker, select if the Worker Can be interrupted and drawn off, enter the required Services
into the services list, and enter the Priority with which the importer provides these services. To
prevent the Worker from waiting for too long for additional parts to arrive, enter the Maximum dwell
time. After it has passed, he walks to the target station, the MU target, and puts the part down.
The Worker evaluates the part targets and walks to the closest one first. At the target station, he
places all parts destined for this station. If he carries additional parts, he evaluates the next target
and walks to the closest one.
At the end of his shift the Worker walks back to his WorkerPool and deposits the parts he could not
deliver into the Parts buffer, which you assigned to the WorkerPool. If you did not assign a Buffer to
the Workerpool, Plant Simulation shows a warning and stops the simulation. When a new shift starts,
Plant Simulation treats the parts in the Buffer according to the exit strategy you selected there. When
you select Carry part away, the carrying Worker requests the service, which you entered.
To send a Worker to a specific station, you can use the methods goTo and goToPool. To change the
services for an available Worker, you can use the method services.
Related Topics
ExitStrategyBlocking
ExitStrategy
Services
To open a list, into which you enter the names of one ore several services, click this. When a part
it to be carried away from the station, it requests a Worker who provides this service or one of the
services you entered. When you entered several services, the station searches for the Worker in the
order in which you entered the services into the list. Worker in the order in which you entered the
services into the list.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive
string point to the same string in main memory. The visible and unexpected result is that
the first occurrence of the string defines how the string is written in terms of upper- and
lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the ~= operator,
compare Relational Operators.
If you want the Worker to provide additional services, you can enter these services into the Creation
Table.
Click to deactivate Inheritance . Only then you can enter data into the list.
SimTalk:
transportImp.getServices
transportImp.setServices
Related Topic
To allow importers with a higher priority to withdraw resources, i.e., Workers or Exporters from this
importer, select Interruptible. The Worker then abandons the current task and takes care of the
task that is more important.
When an importer with higher priority requests services, which the freely available resources cannot
fulfill, and when sufficient interruptible importers with lower priority are available, to which the required
services are brokered at the moment, then as many interruptible importers are interrupted as required
to satisfy the importer with higher priority. The tasks (processing/setting-up/repair/transport),
which process the interrupted importer, will then be interrupted and the resources are brokered to the
importer with higher priority.
SimTalk:
transportImp.Interruptible
Priority
Enter an integer value for the Priority. The higher the value that you enter, the higher is the priority,
i.e., the sooner the job will get done. This means that the program processes a service with priority
10 before it processes a service with priority 1.
SimTalk:
transportImp.Priority
Broker
Click this and select the Broker, who assigns the services to the Worker, in the dialog Select
Object.
SimTalk:
transportImp.BrokerPath
MU target
Click this and select the MU target to which the Worker carries the part in the dialog Select
Object. The MU target is either the Workplace attached to the work station, which processes the
part next, or the work station itself.
SimTalk:
MUTarget
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values below the text box. You can also enter a constant time (Const). When
you select the Formula distribution, you can enter a numeric expression or the name of a Method. You
can use the anonymous identifier @ to access the Worker for whom the maximum dwell time applies
The maximum dwelling time is the time during which the Worker waits for the parts which he is to
carry to the target station. Once this time has passed, he walks to the target station, no matter if
his carrying capacity is met or not.
The Worker picks up the parts which the station finished processing within the maximum dwelling
time.
If you want the Worker to wait until he can pick up all parts up to his carrying capacity,
enter a very long time.
The maximum dwell time only applies to the objects, which provide a transport-importer ,
i.e., for the SingleProc, the ParallelProc, the Assembly Station, the DismantleStation,
the Sorter, the Buffer, and the PlaceBuffer.
SimTalk:
MaxDwellTime
Cyclic
To move the MUs cyclically to the next successor in line, select Cyclic from the drop-down list.
• When you select Blocking , the object moves the MU onto the object, which in
sequence of successors immediately follows on the object onto which an MU was last transferred.
• When you clear Blocking , the object moves the MU to the next object in the
sequence of successors, which can receive a part.
Once the object reaches the end of the sequence of successors, it continues the search for the
successor at the beginning of the sequence and terminates the search when it reaches the successor
from the previous search.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
Cyclic sequence
To cyclically move the MUs to the material flow object’s successor according to the sequence of
successors, which you entered into the list, select Cyclic sequence from the drop-down list.
Click Apply, to apply your settings, and to display the button Open List.
Click Open List and enter the data into the list, which the exit strategies Cyclic sequence,
MU Attribute, Percentage,and Random require. SimTalk: ExitStrategySequence,
ExitStrategyMUAttributeList, or ExitStrategyPercentageValues respectively.
For the Cyclic sequence you will enter the number of the succeeding object into the corresponding
cell of the list. When you enter 3 into the cell in row 1, the object first moves the MU to the successor
with the number 3.
The successor to which the object moves the MU is the next one in line that can receive it in the
sequence, which you entered into the list. When the object arrives at the last entry in the list (last
object in the sequence), it returns to the first entry and processes the list again.
Note that the same successor object may be contained several times, one after the other, in the list.
Then the object attempts to move the MU to this same successor as often as it is contained in the list.
• When you select Blocking , the object only moves the MU, when the designated
successor is ready to receive it.
• When you clear Blocking , the object attempts to move the MU to the corresponding
successor, beginning with the active entry of the list. When the object arrives at the last entry in
the list (last object in the sequence), it returns to the first entry and processes the list again.
Related Topics
ExitStrategyBlocking
ExitStrategy
ExitStrategySequence
Select an Exit Strategy
To move the MUs on to the successor, which has been Waiting the longest time for an MU, select
Least recent demand from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
Linear sequence
To move the MUs on to the successor in a linear fashion, according to the sequence of successors,
which you entered into the list, select Linear sequence from the drop-down list.
Click Apply, to apply your settings, and to display the button Open List.
Click Open List and enter the number of the succeeding object into the corresponding cell of the
list. When you enter 3 into the cell in row 1, the object first moves the MU to the successor with the
number 3.
The successor to which the object moves the MU is the first one in line that can receive it in the
sequence, which you entered into the list.
• When you select Blocking , the object only moves the MU to the first successor in
the list of successors.
• When you clear Blocking , the object moves the MU to the first available successor in
the list of successors.
Related Topics
ExitStrategyBlocking
ExitStrategy
ExitStrategySequence
Max. contents
To move the MUs on to the successor that contains the greatest number of MUs, select Max.
contents from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
Max. num. in
To move the MUs on to the successor that received the most MUs, select Max. num. in from the
drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
To move the MUs on to the successor with the longest processing time, select Max. proc. time
from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
To move the MUs on to the successor with the highest relative occupancy, select Max. rel. occu.
from the drop-down list. This is the capacity-based ratio of the time during which the object was
occupied, not paused and not failed to the time the object was not paused and not failed.
This only works correctly, when resource statistics of the successor or of the predecessor
is active
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
To move the MUs on to the successor with the longest set-up time, select Max. set-up. time from the
drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
For successors, which are already set up for the part, Plant Simulation assumes 0 as the set-up time.
Related Topics
ExitStrategyBlocking
ExitStrategy
Min. contents
To move the MUs on to the successor that contains the smallest number of MUs, select Min.
contents from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
Min. num. in
To move the MUs on to the successor that received the smallest number of MUs, select Min. num.
in from the drop-down list.
This only works correctly, when resource statistics of the successor or of the predecessor
is active
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
To move the MUs on to the successor with the shortest processing time, select Min. proc. time
from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
This only works correctly, when resource statistics of the successor or of the predecessor
is active
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
To move the MUs on to the successor with the shortest set-up time, select Min. set-up time from the
drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
For successors, which are already set up for the part, Plant Simulation assumes 0 as the set-up time .
Related Topics
ExitStrategyBlocking
ExitStrategy
To move the MUs on to the successor that has been Waiting the least amount of time for an MU,
select Most recent demand from the drop-down list.
• When you select Blocking , the object moves the MU to the next successor.
• When you clear Blocking , the object moves the MU to the next successor, which
can receive the MU.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
MU Attribute
To move the MUs on to a successor according to the value of an attribute of the MU, select MU
Attribute from the drop-down list.
• When you select Blocking, the material flow object always moves the part to the designated
successor. If that successor is not ready to receive it, the part will be blocked.
• When you clear the check box, the material flow object moves the part on when any of its
successors can receive it. In this case enter the desired numbers of the successors into the
attribute list for each attribute value.
Click Open List to open a table, into which you can enter the names of the user-defined or the
built-in attributes, their values, and the numbers of the successors. The object searches the
table from top to bottom until it finds an attribute with the value you entered. It then moves the
MU on to that successor.
Create the user-defined attributes for the MUs on the Tab User-defined.
• Default Successor
Enter the number of the default successor. This is the successor to which the object moves the
MU, when this MU does not have an attribute with the Value you entered into the TableFile.
To not move a part, which does not meet one of the conditions on the table, enter 0.
To show a message, when a part is to be moved which does not meet any of the conditions in the
TableFile, enter a negative number. SimTalk: DefaultSuccessor.
• Attribute Type
Select the data type of the attribute from this drop-down list, compare Data Types. SimTalk:
AttributeType.
Related Topics
ExitStrategyBlocking
ExitStrategy
ExitStrategyMUAttributeList
Select an Exit Strategy
Show Successors
Data Held in Tabular Form in Attributes
Percentage
To move the MUs on to the successors according to a percentage distribution, select Percentage
from the drop-down list.
Click Apply, to apply your settings, and to display the button Open List.
Click Open List and enter the percentages in the list that opens. The n-th row on the table defines
the n-th successor’s portion: When you enter 20 in row 1, for example, the object moves 20 percent
of the MUs it received to the successor with the number 1, etc.
When you enter 0 into the table, the successor of the material flow object will not receive
an MU.
The object always moves the MU to the successor with the greatest difference between the rated
value and the current value.
• When you select Blocking , it moves the MU to the successor with the highest
deviation from the nominal percentage.
• When you clear Blocking , it moves the MU to the successor, which can receive the
MU and which has the highest deviation from the nominal percentage.
Note that the actual percentages reached may differ from the nominal ones due to a low number of
total transfers and to the Blocking-state of successors.
Note that any previous transfers of MUs affect the Percentage strategy, as they alter the deviation
from the nominal transfer frequencies.
Plant Simulation sums up the values you entered into the list of nominal percentages to obtain the
value that corresponds to 100 percent. The distribution pattern only depends on the relative size of
the values, not on their magnitude. This way you can, for example, either enter [1;2] or [0.3333…;
0.6666…], the result will be the same.
If the distribution pattern is periodic, then it is so right from the beginning. This means that the
distribution pattern at the start of a simulation run does not differ from the distribution pattern at a later
point in time. These examples demonstrate, how nicely the values are balanced:
• If you assign the values 1 and 2 to the exits 1 and 2 respectively; Plant Simulation generates
this sequence of exits:
212212212212212
• If you assign 2 and 3 to the exits 1 and 2, Plant Simulation generates this sequence of exits:
212122121221212
• If you assign the values 1, 2, 4 and 8 to the exits 1, 2, 3, and 4, Plant Simulation generates
this sequence of exits:
434243414342434434243414342434
Related Topics
ExitStrategyBlocking
ExitStrategy
ExitStrategyPercentageValues
Select an Exit Strategy
Data Held in Tabular Form in Attributes
Random
To move the MUs on to the successors in a random fashion, select Random from the drop-down list.
Click Open List and enter the percentages in the list that opens. The n-th row on the table defines
the n-th successor’s portion: When you enter 20 in row 1, for example, the object moves 20 percent
of the MUs it received to the successor with the number 1, etc.
• When you select Blocking , the object determines the successor using the
random-number generator.
• When you clear Blocking , the object determines the successor using the
random-number generator until it either computes a successor, which can receive the MU, or
the object has iterated through all successors.
Note that a previous call to the random number generator does affect the Random strategy. The
order in which the successors are iterated through is not predictable.
Related Topics
ExitStrategyBlocking
ExitStrategy
ExitStrategyPercentageValues
Select an Exit Strategy
Data Held in Tabular Form in Attributes
Start at successor 1
To always move the MU to the material flow object’s successor with the number 1, select Start at
successor 1 from the drop-down list.
• When you select Blocking , the object moves the MU to the first successor in the
sequence of successors.
• When you clear Blocking , the object moves the MUto the first successor in the
sequence of successors, which can receive the MU.
Note that a previous search for a successor does not affect the strategy Start at successor 1.
Related Topics
ExitStrategyBlocking
ExitStrategy
Select an Exit Strategy
Tab Statistics
Tab Statistics
The material flow objects show the most important statistical data on the tab Statistics when
you select the check box Resource statistics and click Apply. Note that the
values for Waiting, Working, Blocked, Setting-Up, Failed, Powering up/down, Stopped, Paused
and Unplanned should add up to 100 percent.
To view more detailed statistics of the material flow object in the Statistics Report, click the object
in the Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on the Home
ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
You can also show energy statistics values by clicking Energy Statistics .
Related Topics
Resource statistics
To collect statistics data during a simulation run and to show the most important values on the tab,
select this. To deactivate the collection of statistics data, clear the check box.
In this context, resources are any of the material flow objects, for which you can select a
Resource type.
The statistical data is described under Resource Statistics. Note that Plant Simulation does not
dynamically update the values during a simulation run when the dialog window is open. To accomplish
this, select Refresh on the View menu of the object or press F5.
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in the
Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
SimTalk:
ResStatOn
InitStat
statistics
updateDialog
Resource type
Select the type of the material flow resource. This only affects collecting statistics values of those
MUs which are located on the material flow object.
• Production resources are Source, Drain, SingleProc, ParallelProc, Assembly station, and
DismantleStation, which transport parts between stations.
• Storage is the default setting for the Store, which stores parts.
SimTalk:
ResourceType
Related Topics
Statistics Values of the Container
Statistics Values of the Entity
Product Statistics Values of the Transporter
Energy Statistics
To show the energy statistics values which the object collected, click this.
The energy states of the material flow objects differ from the resource states with the same
name. The values for the resource states refer to the statistics collection period, while the
values for the energy states refer to the total energy consumption.
To view Energy Statistics - Energy Statistics in the Statistics Report, click the object in the Frame, and
press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
Related Topics
Tab Energy
Simulating the Power Consumption in Your Facility
Methods for Querying Energy Consumption Statistics of the Material Flow Objects
Viewing Statistics in the Dialogs of the Objects
Tab Curve
Tab Curve
On the tab Curve you can model a curved Line, Track, TwoLaneTrack, FootPath, or Pipe. By
inserting a sequence of curved (arc) segments and straight segments, you can realistically model
conveyor systems and tracks with curves on which the mobile objects Entity, Container, Transporter,
and Worker move to their destination, either to the Workplace or directly to the material flow object.
The AngularConverter, the Converter, the Turnplate, and the Turntable also use curve settings.
Plant Simulation uses the length of polygonal and curved objects during the simulation. The Scaling
Factor, which you select in the Frame, controls how Plant Simulation computes the length. Plant
Simulation automatically animates and aligns mobile objects along the polygon or the curve.
To open a sensor that you defined and that Plant Simulation inserts as a red line into the icon of the
object, Alt +double-click the red line . Then, change the settings in the dialog
that opens.
The illustration shows the most important items of the curve that you can define:
When you start inserting curved objects, Plant Simulation opens the dialog below. Working with
Curved Objects describes the setting you can select.
For straight and curved segments you can enter an anchor point height. It determines the height,
i.e., the distance from the floor, of the next anchor point. It is especially useful when you model
material handling equipment with different elevations.
Active
To activate Curve mode, select this, and click OK or Apply. Then, you can insert the length-oriented
objects that contain curves into your simulation model. Select how often the MUs are animated on the
length-oriented objects under Animate every x-th pixel .
When you select Rotate movables , Plant Simulation also activates the
check box Active.
To insert the length-oriented object with its icon , clear the check box. Then the program
animates the MUs on them using the number of animation events, which you entered in the icon
editor with the command Set Animation Events.
SimTalk:
CurveActive
Curve width
Enter the width of the length-oriented curved objects in the Frame. This can be a number between 1
and 500 pixels.
The text box curve width will only be displayed when you deactivate Transfer length.
When you activate it, Plant Simulation computes the width in meters.
SimTalk:
CurveWidth if you want to enter the width in pixels
Width if you want to enter the width in meters
Pen width
Enter the line width of the outline around the border of the length-oriented curved objects. This can
be a value between -1 and 100. The value -1 makes the outline invisible. The value 0 stands for a
pen width of 1 pixel. The value 1 stands for a stroke weight of 1. This affects zooming in the Frame.
The 3D Viewer does not use this setting.
SimTalk:
PenWidth
Color
To select the color of the length-oriented curved objects proper, click the field next to Color.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
SimTalk:
Color
Pen color
To select the color of the outline around the border of the picture of the curved object, click the
field next to Color.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
SimTalk:
PenColor
Midline style
Select a style for the line in the middle of the curved object. The icons of the MUs move on this
line across your tracks or conveyors.
SimTalk:
MidLine
SimTalk:
AnimateOnEveryXthPixel
Segments
To open the Segments table,which shows information about the starting point and the curved and
straight segments of the curved object, which you inserted, click this.
You can edit the tangential angle, the length, the curve angle, the radius, the vertical curve and
the z-difference of a segment, while Plant Simulation computes the remaining, grayed out values.
If the curved object is an animation polycurve in 3D, you can define a tangential angle and a length in
addition to also place this starting point outside of the zero point of the object in the x-direction and
the y-direction.
You can view how the table has to be formatted, which you can assign with the method
setCurveSegments.
The definition of the segments table always shows the original orientation of the segments without
a possible rotation or mirroring. The rotation is stored in the attribute ObjectAngle and mirroring is
stored in the attribute ObjectMirrored. This allows to keep inheritance of the definition of the segments
even when one or more segments are rotated or mirrored.
The first row shows the additional offset in the z-direction to the Base height in order to define the
starting point of the curved object. Enter a different value to increase the distance of the feet of a
conveyor from the floor of the plant.
A button that looks like this means that inheritance is active. Then, the object inherits, i.e., uses,
the shape of the origin object from which you derived it. When you modify the value of the origin
object, the program also modifies the value of the derived object.
A button that looks like this means that inheritance is not active. The values only apply to the
selected object.
The segments table shows absolute coordinates, while Plant Simulation stores the anchor
points as relative coordinates, which relate to the first anchor point. The position of the
curved object in the Frame is determined by the attributes xPos and yPos, which are the
respective coordinates of the first anchor point. If the segments table is inherited this
means that the relative coordinates of the anchor points are inherited.
For this reason it may happen that an inherited segments table shows other coordinates than the
original curved object when the xPos and/or yPos of the curved object has changed. Inheritance
relates to the shape of the curved object, not to the position at which it is inserted in the Frame!
SimTalk:
getCurveSegments
setCurveSegments
Related Topics
Segments table in 3D
Base height
Context Menu of Curved Objects
Import Settings of a Curved Object from Another Simulation Model
Rotate movables
To rotate the part on the length-oriented curved objects in the direction of motion when the part
turns in a curve, select this.
We advise to not deactivate Rotate movables as this setting does not influence the
behavior in the 3D Viewer.
A rotation triggered by the setting Rotate MUs on a length-oriented object only has an
effect as long as the part is located on this object. When leaving the object the part again
assumes the rotation it had before. When entering a new object, the part considers the
rotation of this new object when Rotate MUs is active.
When Plant Simulation shows the object as an icon , Plant Simulation evaluates the setting
Same as the Object (RotateMUs).
SimTalk:
RotateMovables
Transfer length
To use the length of the curve in the layout within the Frame as the length of the curved objects,
select this. When the dialog of the object is open, the program enters this value into the text box
length. When you clear transfer length, you can change the shape of the object in the Frame at
will, while the object uses the length which you manually entered.
When you select transfer length, the program adapts the length of the graphic, when you change
the length if the object only consists of a single straight segment.
When the length cannot be exactly displayed in pixels, the program adapts the length of the graphic.
If you need to use the exact length, clear transfer length.
You can only enter the length of the length-oriented objects, when you deactivate transfer length
or when the object consists of a single straight segment.
SimTalk:
TransferLengthToObject
Related Topics
Transparent
To make the inside of the curved object transparent, so that the background color of the Frame shines
through, select this. The border of the object remains as it is, i.e. non-transparent. To completely
hide the curved object, enter a value less than 0 for the Pen width.
SimTalk:
Transparent
Base height
Enter the base height here. The base height defines the distance of the legs of a conveyor from the
floor.
The base height can be inherited, meaning that you can define it once in the class instead of having
to define it individually for each instance. It is mainly used in the 3D Viewer. Here the z-coordinate
defines the floor of the installation and the base height defines the distance of the legs from the floor.
By changing the setting ΔZ in the Segments table, you can add an additional offset. The setting ΔZ
also effects the simulation time in Plant Simulation 2D.
SimTalk:
BaseHeight
Related Topics
Segments
Base heightin 3D
Insert Curved and Straight Segments > anchor point height
The context menu of length-oriented curved objects provides these commands to work with
segments:
Edit Segments
Append Segments
To append one ore more anchor points to the end of the curved object, right-click the object, select
this command and click in the Frame window on the locations at which you would like to add the new
points/segments. Hold down the Ctrl key to append a curved line. Plant Simulation then connects the
previous anchor point with the one you just appended.
Related Topics
Change the Shape of a Segment
Context Menu of the Selected Object in the Frame
Edit Segments
To edit the segments of the curved object, right-click it and select this command. Then edit the
settings of the curve in the dialog that opens.
Delete Point
To delete an anchor point from a curved object, right-click it and select this command. Plant
Simulation then removes the anchor point and connects the point in front of the deleted anchor point
with the anchor point, which follows the deleted point.
Related Topics
Change the Shape of a Segment
Context Menu of the Selected Object in the Frame
Insert Point
To insert an anchor point between two existing anchor points, right-click the location between those
points and select this command.
Related Topics
Change the Shape of a Segment
Context Menu of the Selected Object in the Frame
Reverse Segments
To change the direction of motion of the curved object, i.e., to make the last point of the object the first
point, right-click the object and select this command.
This is especially handy if you want to mirror the layout of a production line by copying it and then
reversing the direction of motion of the mirrored line to ensure a circular flow of materials.
Related Topics
Change the Shape of a Segment
Context Menu of the Selected Object in the Frame
Tab Importer
Tab Importer
On the tab Importer you can select and enter settings for:
• Requesting services for processing parts on the Sub-tab Processing.
• Setting up the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation,
the Mixer, the Portioner, and the Tank on the Sub-tab Set-up.
• Requesting services for repairing the failures of the station on the Sub-tab Failure.
When the importer requests several services at the same time, all of these services
have to be available at the same time, before the Broker assigns them to the station.
The importer works with the Broker and the Exporter to assign services to the individual
stations.
• When you select the check box Common resources the processing-importer
requests Exporters for setting-up and for processing. This deactivates all settings on the Sub-tab
Set-up.
• When you clear the check box and click Apply, it requests the Exporters
from the time, at which processing starts to the time, at which it ends. Plant Simulation releases
the Exporter after processing ends, unless other MUs are located on the station, which still
need the Exporter.
The setup-importer requests Exporters, when the station has to be set up. Plant Simulation releases
the Exporterafter setting-up is finished.
To show Importer Statistics, select View > Show Statistics Report in the dialog of the object. You
can also click the object with the right mouse button in the Frameand select Show Statistics
Report or press F6.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Sub-tab Processing
Sub-tab Processing
On the sub-tab Processing you can select and enter settings for requesting services for processing
parts.
Related Topics
Model Workers with Importer, Broker and Release all services when one of them is failed,
Exporter ReleaseAllServices
Active
To activate the importer, select this. The SingleProc, the ParallelProc, the Assembly Station, and the
DismantleStation, the Mixer, the Portioner, and the Tank can then import services for setting them up
or for processing the parts on them respectively. To deactivate the importer, clear the check box.
SimTalk:
Active
To enter groups of services for processing parts, click this. Each of these services represents an
alternative.
To execute the set-up, processing, or repair jobs, the importer always needs all services of an
Alternative. When, for example, the importer does not have all services of Alternative1, he attempts
to get all services of Alternative2, etc. Note that for successive services on the table, which all belong
to the same alternative, the name of the alternative only appears after the first service on the table.
The set-up-importer requests Exporters before setting-up. By default the object releases the
Exporters when set-up is finished and the object is not in the process of setting-up for a part.
The processing-importer requests Exporters from the beginning of the processing time to the end
of the processing time. By default the material flow object releases the Exporters when processing
is finished.
• First, click the button to deactivate Inheritance . Only then you can enter data into the list.
The toggle button activates or deactivates inheritance.
o A green button means that inheritance is active. Then, the object inherits, i.e., uses, the
value from the parent object from which it was derived. When you modify the value of the
parent object, the program also modifies the value of the child object.
o An orange button with a minus means that inheritance is not active. Values you select
or enter only apply to the selected object.
• Enter the name of the service to be imported into the cells of the column Service.
• Enter the amount, i.e., the number of services to be imported, into the cells of the column Amount.
• Enter the name of the alternative service, which the importer provides if it cannot meet the
previous service, into the cells of the column Alternative. When you want to add a service to an
alternative at a later point in time, you can type this service and the name of the Alternative into
the last row of the table. When you click Apply here, and in the dialog of the material flow object,
Plant Simulationsorts the list anew and places this service below the respective alternative.
When you enter several services with the same name, which belong to the same
alternative, Plant Simulationonly considers the first entry of the services into the table, and
deletes the other services from the table. For this reason you have to enter the correct
Amount of the respective service instead of distributing the service onto several lines.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive
string point to the same string in main memory. The visible and unexpected result is that
the first occurrence of the string defines how the string is written in terms of upper- and
lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
Plant Simulation enters these services into the list of offered services of the Broker: To view them,
select View > Offered Services.
SimTalk
imp.setServices
imp.getServices
Related Topics
Context Menu of Embedded Lists
Change the Services of the Importer in the Entrance Control
To allow importers with a higher priority to withdraw resources, i.e., Workers or Exporters from this
importer, select Interruptible.
When an importer with higher priority requests services, which the freely available resources cannot
fulfill, and when sufficient interruptible importers with lower priority are available, to which the required
services are brokered at the moment, then as many interruptible importers are interrupted as required
to satisfy the importer with higher priority. The tasks (processing/setting-up/repair/transport),
which process the interrupted importer, will then be interrupted and the resources are brokered to the
importer with higher priority.
SimTalk:
imp.Interruptible
To make the material flow object release all processing services or set-up services respectively,
when one or more of these services is failed, paused, or interrupted, select this. To only release
the failed services, clear it.
This only works, when you also select Fail services in the dialog of the Exporter.
SimTalk:
imp.ReleaseAllServices
Priority
Enter an integer value for the Priority. The higher the value that you enter, the higher is the priority,
i.e., the sooner the job will get done. This means that the program processes a setup service or a
processing service with priority 10 before it processes a service with priority 1.
SimTalk:
imp.Priority
Broker
Click this and select the Broker, which assigns the setup service or the processing service
respectively.
Or you can select the Broker in a Frame, drag it to the text box and drop it there.
For Broker hierarchies Plant Simulation only calls the control of this Broker, not the controls
of any existing sub-Brokers.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
imp.BrokerPath
Request control
Click this and select a Method object. It controls how the object requests MUs. The material flow
object calls the control, when the importers by default send a request to the Broker.
The request control, the receive control, and the release control are not called when you reset
the simulation.
The standard request control looks like this:
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
imp.RequestCtrl
Receive control
Click this and select a Method object. It controls how the object receives MUs. The material flow
object calls the control, when the importer was assigned an Exporter.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type methodof this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
imp.ReceiveCtrl
Release control
Click this and select a Method object. It controls how the object releases the Exporters. The
material flow object calls the control, when the Exporters would be released by default.
When you programmed an exit control and an importer release control, the importer release
control is called first and then the exit control is called.
The request control, the receive control, and the release control are not called when you reset
the simulation.
The standard release control looks like this:
Or you can select the Methodin a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Controlon the context menu to create a
control method, which is a user-defined attribute of data type methodof this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
imp.ReleaseCtrl
Sub-tab Set-up
Sub-tab Set-up
On the sub-tab Set-up you can select and enter settings for requesting services for setting up
the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank.
Related Topics
Model Workers with Importer, Broker and Release all services when one of them is failed,
Exporter ReleaseAllServices
Active
To activate the importer, select this. The SingleProc, the ParallelProc, the Assembly Station, and the
DismantleStation, the Mixer, the Portioner, and the Tank can then import services for setting them up
for specific part types. To deactivate the importer, clear the check box.
SimTalk:
Active
Common resources
Common resources
To use one set of services for setting the station up for a new part and for processing that part,
select this. The station then deactivates the settings for the set-up-importer. The processing-importer
requests an Exporter when set-up starts and releases it after processing is finished. You can then
define the services and the other setting on the Sub-tab Processing.
SimTalk:
setUpImp.Common
To use separate Services for Setting-Up and Services for Processing, clear Common resources
and click Apply. This activate the settings on the tab Set-up. All of the settings on the tab then
apply to the services for setting-up.
When you clear the check box, Plant Simulation duplicates all default settings on the Sub-tab
Processing, such as the services table, the controls, etc., and provides them for setting-up and for
processing each. Then, you can edit the settings for setting-up or for processing separately. If you
do not need any services for setting-up or for processing, you have delete the existing services
from the services table.
To enter groups of services for setting the station up for parts, click this. Each of these services
represents an alternative.
To execute the set-up, processing, or repair jobs, the importer always needs all services of an
Alternative. When, for example, the importer does not have all services of Alternative 1, he attempts
to get all services of Alternative2, etc. Note that for successive services on the table, which all belong
to the same alternative, the name of the alternative only appears after the first service on the table.
The set-up-importer requests Exporters before setting-up. By default the object releases the
Exporters when set-up is finished and the object is not in the process of setting-up for a part.
The processing-importer requests Exporters from the beginning of the processing time to the end
of the processing time. By default the material flow object releases the Exporters when processing
is finished.
• First, click the button to deactivate Inheritance . Only then you can enter data into the list.
The toggle button activates or deactivates inheritance.
o A green button means that inheritance is active. Then, the object inherits, i.e., uses, the
value from the parent object from which it was derived. When you modify the value of the
parent object, the program also modifies the value of the child object.
o An orange button with a minus means that inheritance is not active. Values you select
or enter only apply to the selected object.
• Enter the name of the service to be imported into the cells of the column Service.
• Enter the amount, i.e., the number of services to be imported, into the cells of the column Amount.
• Enter the name of the alternative service, which the importer provides if it cannot meet the
previous service, into the cells of the column Alternative. When you want to add a service to an
alternative at a later point in time, you can type this service and the name of the Alternative into
the last row of the table. When you click Apply here, and in the dialog of the material flow object,
Plant Simulation sorts the list anew and places this service below the respective alternative.
When you enter several services with the same name, which belong to the same
alternative, Plant Simulation only considers the first entry of the services into the table, and
deletes the other services from the table. For this reason you have to enter the correct
Amount of the respective service instead of distributing the service onto several lines.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive
string point to the same string in main memory. The visible and unexpected result is that
the first occurrence of the string defines how the string is written in terms of upper- and
lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
Plant Simulation enters these services into the list of offered services of the Broker: To view them,
select View > Offered Services.
SimTalk
setUpImp.setServices
setUpImp.getServices
To allow importers with a higher priority to withdraw resources, i.e., Workers or Exporters from this
importer, select Interruptible.
When an importer with higher priority requests services, which the freely available resources cannot
fulfill, and when sufficient interruptible importers with lower priority are available, to which the required
services are brokered at the moment, then as many interruptible importers are interrupted as required
to satisfy the importer with higher priority. The tasks ( processing/setting-up/repair/transport),
which process the interrupted importer, will then be interrupted and the resources are brokered to the
importer with higher priority.
SimTalk:
setUpImp.Interruptible
To make the material flow object release all set-up services, when one or more of these services is
failed, paused, or interrupted, select this. To only release the failed services, clear it.
This only works, when you also select Fail services in the dialog of the Exporter.
SimTalk:
setUpImp.ReleaseAllServices
Priority
Enter an integer value for the Priority. The higher the value that you enter, the higher is the priority,
i.e., the sooner the job will get done. This means that the program processes a setup service or a
processing service with priority 10 before it processes a service with priority 1.
SimTalk:
setUpImp.Priority
Broker
Click this and select the Broker, which assigns the setup service or the processing service.
Or you can select the Broker in a Frame, drag it to the text box and drop it there.
For Broker hierarchies Plant Simulation only calls the control of this Broker, not the controls
of any existing sub-Brokers.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
setUpImp.BrokerPath
Request control
Click this and select a Method object. It controls how the object requests MUs. The material flow
object calls the control, when the importers by default send a request to the Broker.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Methodthat opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
setUpImp.RequestCtrl
Receive control
Click this and select a Method object. It controls how the object receives MUs.The material flow
object calls the control, when the importer was assigned an Exporter.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
setUpImp.ReceiveCtrl
Release control
Click this and select a Method object. It controls how the object releases the Exporters. The
material flow object calls the control, when the Exporters would be released by default.
When you programmed an exit control and an importer release control, the importer release
control is called first and then the exit control is called.
The request control, the receive control, and the release control are not called when you reset
the simulation.
The standard release control looks like this:
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
setUpImp.ReleaseCtrl
Sub-tab Failure
Sub-tab Failure
On the sub-tab Failure you can select and enter settings for repairing failures, which prevent the
objects from processing arriving parts. Note that only the SingleProc, the ParallelProc, the Assembly
Station, and the DismantleStation provide the failure importer.
When the importer requests several services at the same time, all of these services have
to be available at the same time, before the Broker assigns them to the station.
The importer works together with the Broker and the Exporter to assign services to the
individual stations.
To show Importer Statistics, select View > Show Statistics Report in the dialog of the object. You
can also click the object with the right mouse button in the Frame and select Show Statistics
Report or press F6.
Related Topics
Active
To activate the failure-importer, select this. The SingleProc, the ParallelProc, the Assembly Station,
and the DismantleStation, the Mixer, the Portioner, and the Tank can then import services for
repairing failures. To deactivate the failure-importer, clear the check box.
SimTalk:
Active
To open a table into which you enter the names of groups of the different repair services, click this.
Each of these services represents an alternative.
To execute the task repairing, the importer always requires all services of an Alternative . When,
for example, the importer does not have all services of Alternative1, he attempts to get all services
of Alternative2, etc. Note that for successive services on the table, which all belong to the same
alternative, the name of the alternative only appears after the first service on the table.
• First, click the button to deactivate Inheritance . Only then you can enter data into the list.
The toggle button activates or deactivates inheritance.
o A green button means that inheritance is active. Then, the object inherits, i.e., uses, the
value from the parent object from which it was derived. When you modify the value of the
parent object, the program also modifies the value of the child object.
o An orange button with a minus means that inheritance is not active. Values you select
or enter only apply to the selected object.
• Enter the name of the service to be imported into the cells of the column Service.
• Enter the amount, i.e., the number of services to be imported, into the cells of the column Amount.
• Enter the name of the alternative service, which the importer provides if it cannot meet the
previous service, into the cells of the column Alternative. When you want to add a service to an
alternative at a later point in time, you can type this service and the name of the Alternative into
the last row of the table. When you click Apply, Plant Simulationsorts the list anew and places
this service below the respective alternative.
The name of the service is not case-sensitive, just like the names of attributes and
methods of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an
case-insensitive string point to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is
written in terms of upper- and lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
SimTalk
failImp.getServices
failImp.setServices
Related Topic
Context Menu of Embedded Lists
To allow importerswith a higher priority to withdraw resources, i.e., Workers or Exporters from this
importer, select Interruptible.
When an importer with higher priority requests services, which the freely available resources
cannot fulfill, and when sufficient interruptible importers with lower priority are available,
to which the required services are brokered at the moment, then as many interruptible
importers are interrupted as required to satisfy the importer with higher priority. The tasks
(processing/setting-up/repairing/transporting), which process the interrupted importer, will then
be interrupted and the resources are brokered to the importer with higher priority.
SimTalk:
failImp.Interruptible
To make the material flow object release all repair services, when one or more of the services is
failed, paused, or interrupted, select All. To only release the failed services, clear it.
This only works, when you also select Fail services of the Exporter.
SimTalk:
failImp.ReleaseAllServices
Priority
Enter an integer value for the Priority. The higher the value that you enter, the higher is the priority,
i.e., the sooner the job will get done. This means that the program processes a repair service with
priority 10 before it processes a service with priority 1.
SimTalk:
failImp.Priority
Broker
Click and select the Broker, which assigns the repair service.
For Broker hierarchies Plant Simulation only calls the control of this Broker, not the controls
of any existing sub Brokers.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Broker in a Frame, drag it to the text box and drop it there.
SimTalk:
failImp.BrokerPath
Request control
Click and select a Method object in which you programmed how the material flow object requests
Exporters or Workers. The material flow object calls the control, when the object changes to the
Failed state. When you entered the control, with in the control you have to make sure that the
required Exporters or Workers are imported.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
failImp.RequestCtrl
Related Topics
failImp.import
failImp.startProcessing
failImp.stopProcessing
Receive control
Click and select a Method in which you programmed how the material flow object receives
Exporters or Workers. The material flow object calls the control, when the failure-importer was
assigned an Exporter or Worker.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
failImp.ReceiveCtrl
Related Topics
failImp.startProcessing
failImp.stopProcessing
Release control
Click and select a Method object in which you programmed how the material flow object releases
the Exporters. The material flow object calls the control, when the Exporters would be released
by default.
The request control, the receive control, and the release control are not called when you reset
the simulation.
The standard release control looks like this:
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type methodof this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
failImp.ReleaseCtrl
Related Topics
failImp.releaseExporters
failImp.startProcessing
failImp.stopProcessing
Tab Energy
Tab Energy
On the tab Energy you can enter settings pertaining to the power input and to the transition times
from one energy state to another.
Note that only the active material flow objects offer energy settings and that the length-oriented
objects do not provide the states setting-up and standby.
The states of a machine are not always directly comparable to the Plant Simulation states
of the machine.
To check the statistics values of the energy states, click Energy Statistics on
the Tab Statistics.
To view Energy Statistics - Energy Statistics in the Statistics Report, click the object in the Frame, and
press F6 (Show Statistics Report), or select View > Show Statistics Report.
Related Topics
Failed State
Off
Active
To activate the energy features, select this. Then you can enter values and/or select the available
settings. Click Apply to activate the settings.
SimTalk:
EnergyActive
Power Input
Power Input
Working Failed
Setting-up Standby
Operational Off
Working
Enter the power input in kilowatts for the machine when it is working.
You can enter a value of data type real or a formula.
SimTalk:
PowerInputWorking
Setting-up
Enter the power input in kilowatts for the machine when it is setting-up for a part type.
You can enter a value of data type real or a formula.
SimTalk:
PowerInputSettingUp
Operational
Enter the power input in kilowatts for the machine when it is operational, for example, when it
is waiting for a part.
You can enter a value of data type real or a formula.
SimTalk:
PowerInputOperational
Failed
Enter the power input in kilowatts for the machine when it is failed.
You can enter a value of data type real or a formula.
SimTalk:
PowerInputFailed
Standby
Enter the power input in kilowatts for the machine when it is on standby.
You can enter a value of data type real or a formula.
SimTalk:
PowerInputStandby
Off
Enter the power input in kilowatts for the machine when it is on off.
You can enter a value of data type real or a formula.
SimTalk:
PowerInputOff
Transition Times
Transition Times
Plant Simulation provides the following options for transition times:
Operational to Off
Enter the transition time which passes when the object changes its energy state from operational
to off.
You can enter a value of data type real or a formula.
SimTalk:
TransitionTimeOperationalToOff
Off to Operational
Enter the transition time which passes when the object changes its energy state from off to operational.
You can enter a value of data type real or a formula.
SimTalk:
TransitionTimeOffToOperational
Operational to Standby
Enter the transition time which passes when the object changes its energy state from operational
to standby.
You can enter a value of data type real or a formula.
SimTalk:
TransitionTimeOperationalToStandby
Standby to Operational
Enter the transition time which passes when the object changes its energy state from standby to
operational.
You can enter a value of data type real or a formula.
SimTalk:
TransitionTimeStandbyToOperational
Standby to Off
Enter the transition time which passes when the object changes its energy state from standby to off.
You can enter a value of data type real or a formula.
SimTalk:
TransitionTimeStandbyToOff
Off to Standby
Enter the transition time which passes when the object changes its energy state from off to standby.
You can enter a value of data type real or a formula.
SimTalk:
TransitionTimeOffToStandby
State Transition
State Transition
To open the dialog in which you can select the state transition settings at the Start and the End of a
Pause and if you want to Power up early or not.
You can also select the state transition settings at the Start and the End of the Unplanned state and if
you want to Power up early or not.
Pause
Pause
Select the state transition settings at the Start and the End of a pause and if you want to Power
up early or not.
Start
Select the energy state transition at the start of a pause of the object. You can select Standby, No
change, or Off
SimTalk:
EnergyPauseStartState
End
Select the energy state transition at the end of a pause of the object. You can select Previous
state, Operational, Standby, or No change.
The previous state is the state the object was in before the pause.
SimTalk:
EnergyPauseEndState
Power up early
To power the object up early during a pause so that the machine has the correct energy state at
the end of the pause, select this. When you clear the check box, powering up starts at the end of
the pause.
When you select the check box, the machine powers up/down while the machine is
paused. Therefore the powering up/down time is part of this part of the paused time.
SimTalk:
EnergyPausePowerUpEarly
Unplanned
Unplanned
Select the state transition settings at the Start and the End of the Unplanned state and if you want to
Power up early or not.
Start
Select the energy state transition at the start of the unplanned state of the object. You can select
Standby, No change, or Off.
SimTalk:
EnergyUnplannedStartState
End
Select the energy state transition at the end of the unplanned phase of the object. You can select
Previous state, Operational, Standby, or No change.
The previous state is the state the object was in before the unplanned phase.
SimTalk:
EnergyUnplannedEndState
Power up early
To power the object up early during an unplanned phase so that the machine has the correct energy
state at the end of that phase, select this. When you clear the check box, powering up starts at the
end of the unplanned phase.
When you select the check box, the machine powers up/down while the machine is
unplanned. Therefore the powering up/down time is part of the unplanned time.
SimTalk:
EnergyUnplannedPowerUpEarly
State
The drop-down list shows the current energy state of the object. When the object is powering up or
down, Plant Simulation shows the start state and the end state.
You can also select the target energy state of the object, provided it is not failed.
• If the current energy state is Operational, Standby or Off, the list shows the states Operational,
Standby, and Off.
• If the current energy state is Setting-up or Working, the list shows the current energy state,
plus Standby, and Off.
• After you select another state, the current state is interrupted, resulting in the state Operational.
(This process does not use up any time.) Then the power transition uses the time which you
entered under Transition Times.
After you select another state and click Apply, the display changes accordingly, compare the
example below.
SimTalk:
EnergyCurrentState
EnergyTargetState
During your simulation runs Plant Simulation shows the energy states as a colored dot in the LED
display along the top border of the icon in the Frame.
Tab User-defined
Tab User-defined
On the tab User-defined Attributes you can add user-defined attributes—that meet your
modeling needs—to most objects. These attributes do not affect the built-in properties of the Plant
Simulationobjects.
The list field shows the name, the value, and the data type of the user-defined attributes you are
going to define or already did define.
When you add the value of the user-defined attribute to the instance of the object you inserted into a
Frame, it shows an asterisk * in the column Created Here.
When the user-defined attribute sends data to the attribute of the corresponding object in the
3D Viewer, it shows an asterisk * in the column 3D.
• To create a user-defined attribute, click New.
• To edit a user-defined attribute, select it in the list field and click Editor double-click it in the list field.
• To delete a user-defined attribute, select it in the list field, and click Delete.
• Delete to delete the selected user-defined attribute. When you cleared the check box Confirm
under File > Preferences > Modeling > Delete objects, Plant Simulation deletes the attribute
without prompting you to confirm.
• F2 to open the window of a user-defined attribute of data type object, method, table, list, stackor
queue after you clicked in the text box of the user-defined attribute.
You can also create user-defined attributes with SimTalk commands, compare the Methods for
Managing User-defined Attributes and the Attributes and Methods of User-defined Attributes.
Related Topics
Create a User-defined Attribute Manually
Create a User-defined Attribute During the Simulation
New
New
• Enter the name of the user-defined attribute. The name has to be unique, i.e., no other built-in or
user-defined attribute or method may have the same name!
• Select the data type of the user-defined attribute/Variable, compare Data Types.
• Enter a value that is compatible with this data type you selected. When using the data type time
with a random distribution, select the data type randtime.
You have to initialize the value for randtime using the method rollDice before accessing it. For
user-defined attributes of data type time you can only enter constant values.
• You can also create a user-defined attribute of data type method, which will be part of the object,
compare Entrance control and self.
Click Open and enter your source code into the Method that opens. When you selected one of the list
data types, enter data into the list or table that opens.
To open a user-defined attribute of data type Method or Table, you can also add it to the list of
Favorites and double-click it in the list.
Select a Value from the drop-down list or enter a value into the text box.
To insert the user-defined attribute and close the dialog, click OK.
To apply the settings you entered and leave the dialog open, click Apply.
This table lists where the relative path starts for the different objects:
In the Frame
in which the In the Frame
In the Frame in
material flow in which the Within that
Object variable which the object
object, on which material flow Frame.
is located.
the part stays, is object is located.
located.
In the Frame
in which the In the Frame
In the Frame in
material flow in which the Within that
Method (current) which the object
object, on which material flow Frame.
is located.
the part stays, is object is located.
located.
Related Topics
createAttr getAttrType
deleteAttr getAttrValue
getAttrName setAttrValue
getAttrNo InheritValue
Active
To collect statistics data during a simulation run and to show the top five frequencies and the top
five durations on the tab, select Active. Note that the user-defined attribute only records statistics
values for a value of Data type string or integer.
Related Topic
StatisticsActive
Statistics Table
Related Topic
getStatisticsTable
Charts
To open a pie chart each showing the frequency and the duration of the value, click this.
Frequency Histogram
To open a histogram showing the frequency, i.e., the number of occurrences of the value, click this.
SimTalk:
deleteAttr
Edit
To change the name and data type of the selected user-defined attribute and to activate or deactivate
inheritance, click Edit or double-click the name of the user-defined attribute in the list field and
modify the values in the dialog.
To show the statistics values, which the user-defined attribute collected, click Edit. Then, click the
tab Statistics. Here you can set statistics to Active, show the Statistics Table, Charts, and show a
Frequency Histogram.
Delete
To delete a user-defined attribute, select it in the list field and click this.
Navigate Menu
Navigate Menu
The Navigate menu provides these menu commands:
Open Class
Some of the commands are available only after you insert the object into a Frame, i.e.,
they are deactivated when you open the object in the Class Library!
The Context Menu of the Selected Object in the Frame and the Home Ribbon Tab also provide
some of these commands.
Open Location
The menu command Open Location opens the Frame window in which the object is located.
Related Topic
location/ ~
Open Origin
The menu command Open Origin opens the object from which the selected object was derived
most recently.
Or you can right-click the object in the Frame and click Open Origin on the context menu.
Related Topic
origin
Go to Origin
The menu command Go to Origin closes the open dialog window of the object and opens the
object from which it was derived most recently.
Related Topic
origin
Open Class
The menu command Open Class opens the dialog of the class of the object in the Class Library.
When you select the command Open Class for an instance of an object, Plant Simulation moves
up in the inheritance structure until it reaches an object in the Class Library. It then opens the
dialog of this object.
Related Topic
class
Go to Class
The menu command Go to Class closes the open dialog window of the selected object and opens
the class of the object in the Class Library.
Related Topic
class
Open 3D Location
The menu command Open 3D Location changes to the corresponding Frame window in which the
object is located in the 3D Viewer. You can then change the 3D properties of the object.
Edit 3D Properties
The menu command Edit 3D Properties opens the Edit 3D Properties window of the corresponding
object in the 3D Viewer. You can then change the 3D properties of the object.
Related Topics
Open 2D Dialog in 3D
Open in 3D
View Menu
View Menu
The View menu provides these commands. Some objects do not provide all of the commands, while
others provide additional commands, which are described for these objects.
Refresh
The menu command Refresh updates the open dialog window with the current values of attributes, a
task not automatically performed when you assign new attributes using methods. Instead, you
can also press the F5 key.
Related Topic
updateDialog
The menu command Show Statistics Report opens the Statistics Report. It shows Resource
Statistics data of the selected object.
Related Topics
Show Statistics Report
showStatisticsReport
Viewing the Statistics Report
The menu command Show Attributes and Methods opens shows the attributes and the methods of
the selected object in the dialog Show Attributes and Methods.
Instead, you can also right-click the object in the Frame and select Show Attributes and Methods on
the context menu or press the F8 key.
Contents
The menu command Contents opens a list or table showing all MUs which are located on the
object at any one point in time:
• The point-oriented objects with a capacity of 1 part show the path in the list, i.e., the name and
the number of the current part. The data type of the columns is object.
• The point-oriented objects with a capacity of more than 1 part show the path in the list, i.e., the
names and the numbers of the parts, that are located on it. The capacity determines how many
parts it shows. The data type of the columns is object.
• The parallel stationshows the path, i.e., the name and the number of the current parts in the
list. The position of the part on the table matches the position of the part in its x-y coordinate
system. The data type of the columns is object.
• The length-oriented objects Line, Track, and Transporter show the path in the contents table,
i.e., the names and the numbers of the current parts. In addition it shows the position of the
MUs on the object.
The column Object shows the path to the part, the column From shows the start position of
the MU, and the column To shows the end position in the length unit you selected under File
> Model Settings/Preferences > Units > Length. The number of rows matches the number
of MUparts located on the object. The data type of column 1 is object, of the second and third
column it is length.
• The length-oriented object TwoLaneTrackshows the path, i.e., the name and the number of the
current part, in the contents table for lane A and lane B separately. In addition it shows the
position of the MUson the object.
• The fluid objects DePortioner and Portioner show the path of the MU in the list, i.e., the name and
the number of the part, which is emptied or filled. The column has the data type object.
• The fluid objects FluidSource, FluidDrain, Pipe, and Tank show the material that flows through
them. The column has the data type string.
• The fluid object Mixer shows the material in column 1 and the contained amount in column 2,
while the starting materials flow into it. Column 1 has the data type string, column 2 has the
data type real. As soon as the Mixer starts the mixing process, the contents list only shows the
product in column 1.
Related Topics
Cont muPart
ContentsList NumMU
DeleteMovables NumMUParts
The predecessor is the object that is connected to the selected object with a Connector and that
precedes it in the sequence of stations in the simulation model.
If you enter a certain position on the target object using the parameter of data type length,
the MU does not enter itself into the Forward/Backward Blocking List as Plant Simulation
cannot watch/observe at which point in time this position is available again.
In addition Plant Simulation does not enter an MU into the Forward/Backward Blocking List when it
is located on a moving Transporter.
Plant Simulation removes an MU, which is located on the loading space of a Container/Transporter,
from the Forward/Backward Blocking List when the Container/Transporter itself is moved.
Related Topics
fwBlockList
Check the Contents List of the Stations
The menu command Exit Blocking List opens a list, which contains all MUs that wanted to exit
the object at its exit, but could not. When an MU cannot be moved on, Plant Simulation stops it
and enters it into the exit blocking list.
The table shows the name of the MU(object) and the time at which the MU attempted to exit the
object (time).
The object only enters the MUs into the Exit Blocking List, when you activated the check
box Exit locked.
Related Topics
exitBlockList
Check the Contents List of the Stations
For the objects Line, Track, and TwoLaneTrack the menu command Backward Blocking List opens
a table that contains all MUs that wanted to move onto the object at its exit, i.e., were moving in a
backward direction from the successor, but could not. When an MU cannot be moved on, Plant
Simulation stops it and enters it into the backward blocking list.
The TwoLaneTrack provides a Backward Blocking List for each of its two lanes, i.e., for
Lane A and for Lane B.
The table shows the name of the MU (object) and the time at which the MU attempted to leave
the succeeding object (time).
When the MU moves backwards, the successor is the object that is connected to the selected object
with a Connector and precedes it in the sequence of stations in the simulation model. This approach
assumes that normally the flow of materials moves in the forward direction.
If you enter a certain position on the target object using the parameter of data type
length, the MU does not enter itself into the Forward/Backward Blocking List as Plant
Simulationcannot watch/observe at which point in time this position is available again.
In addition Plant Simulation does not enter an MU into the Forward/Backward Blocking
List when it is located on a moving Transporter.
Plant Simulation removes an MU, which is located on the loading space of a
Container/Transporter, from the Forward/Backward Blocking List when the
Container/Transporter itself is moved.
Related Topics
bwBlockList
Check the Contents List of the Stations
The menu command Associated Lockout Zones opens a list, which contains the
LockoutZoneobjects that are assigned to the selected object.
Related Topics
AssignedLockoutzones
Check the Contents List of the Stations
The menu command Assigned Shift Calendar opens a table, which contains the ShiftCalendar
objects that are assigned to the selected object.
Related Topics
Shift calendar
ShiftCalendarObject
Tools Menu
Tools Menu
The Tools menu provides these menu commands:
Edit Controls
Edit Observers
3D
Edit Controls
Edit Controls
The menu command Edit Controls opens the dialog Edit Controls. You can make the Plant
Simulation objects react to a number of user actions, such as inserting and deleting objects, etc. User
input calls the Method you entered. You can also assign Methods from within other Methods. The
corresponding attributes are described under Attributes for Controls of All Objects.
Depending on their functions, the objects provide different controls. The EventController, for example,
does not have a rename control, as you cannot rename it. Control methods which are available
only for certain objects are explained in the corresponding sections. Controls that are not available
for the object are deactivated, i.e., grayed out.
• Or right-click in the text box. Then, select Create Control on the context menu to create a control
method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Enter the source code of this control into the Method that opens.
This control is a user-defined attribute of data type method. To open and modify this Method:
• Click in the text box and press F2.
• Select the tab User-defined Attributes and double-click the name of the Method in the list pane.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Once you enter a control, either here or on the Tab Controls, the context menu of the object in the
Frame shows the command Controls. You can then select the name of the control on the submenu to
edit it.
Related Topics
Plausibility control
Select Object
Click to the right of the text box and select an object, an attribute or a Method in the dialog
Select Object.
• The list shows all objects/ Methods in the Frame in which the object is located from which you
selected the menu command Select Control. Select the name of an object or a Method. .
• Click Back, to change to the next higher level in the hierarchy of objects when the object or the
Method you want to select is located there.
• To use the absolute path to the object or Method,select Absolute path. The program then
enters ~.~.MUs.MyPart for example. By default the program uses the relative path, which, for
example, looks like this *.MUs.MyPart.
The difference between absolute and relative paths is described under Paths.
• Plant Simulation shows the path to the object or Method in the box.
When you click the Browse button in the text box Path of the object Display, the dialog looks
like this:
• When you add an observer to an object, the dialog looks slightly different.
Select the observable attribute or the observable method to which you would like to add the observer.
SimTalk
openObjectSelectBox
Related Topics
Create Entrance and Exit Controls
Edit Observers
Create and Delete an Observer
Click this and select a Method object. Enter the source code of the change path control.
The program calls it:
• When the name of a Folder or a Frame changes. The control is called for all objects contained in
the Folder or Frame.The anonymous identifier @ points to the renamed object.
• When you move a Folder or a Frame. The control is called for all objects contained in the Folder
or Frame.
Within the Method you can access the moved object with the anonymous identifier question
mark (?).
Not each Move action actually moves the object. When you move an object from one
Frame to another, Plant Simulation deletes the object from its source Frame and
creates a new object in the target Frame. When you enter an empty string ("") as
location, Plant Simulation interprets this as the top level in the hierarchy of objects, as
the object basis.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The program passes three parameters to the Method that is called:
• The parameter PreviousLocation of data type string designates the previous location of the object.
• The parameter NewLocation of data type string designates the new location of the object.
• The parameter ManualChange of data type boolean indicates if you change the path of the
object manually (true) or with a Method (false).
SimTalk:
ChangePathCtrl
Close control
Click this and select a Method object. Enter the source code of the close control. The program
calls it, when you close the object window.
For list objects the program passes a parameter, of data type boolean, to the Method that is called.
This parameter shows if the contents of the list window has changed or not.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Plant Simulation activates the Plausibility controlcontrol for lists and tables only, when you close
the list or table after making a change. Plant Simulation also considers loading a file into a table
as a change. This way Plant Simulation can check the entry and display an error message if the
entry was wrong.
When you enter a close control and a plausibility control, Plant Simulation always calls the
plausibility control before it calls the close control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Parameter
The parameter Changed of data type boolean shows if the contents of the list object has changed
(true) or not (false).
Related Topic
CloseCtrl
Connect control
Click this and select a Method object. Enter the source code of the connect control. The program
calls it, when you connect two objects with a Connector and when you delete the connection between
two objects.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
When you insert a Connector, Plant Simulation first calls the Connect control for the
Connector before calling the Connect controls for the objects you are connecting.
When you delete a Connector, Plant Simulation first calls the Connect control for the
connected objects before calling Destructor control.
Instead, you can also right-click in the text box. Then, select Create Controlon the context menu to
create a control method , which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The program passes three parameters to the Method that is called:
• The parameter ConnectionStart of data type object designates the source object at which the
connection starts.
• The parameter ConnectionEnd of data type object designates the target object where the
connection ends.
SimTalk:
ConnectCtrl
Constructor control
Click this and select a Method object. Enter the source code of the constructor control. The
program calls it, when you duplicate, derive, or instantiate the object (i.e., insert it into a Frame
or model).
If you declare the constructor control with the optional parameter onCreate3D of data type boolean,
the constructor control will not only be called for the events described above with false, but a
second time when the 3D part of an object is created. In this case the parameter is true.
Constructor controls, which you created in previous versions of the program, are called with the
parameter creating3D set to false. In addition the control is called with the parameter set to truewhen
the 3D counterpart of this object is created, i.e., not loaded from a file.
The object already exists, when Plant Simulation calls the Constructor control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
ConstructorCtrl
Destructor control
Click this and select a Method object. Enter the source code of the destructor control. The
program calls it when you delete the object. When a Frame contains Sub-Frames and objects,
Plant Simulation will call Destructor controls in these Frames as well. When the Destructor control
of the object is called, the object still exists. Plant Simulation calls a Connect control before it calls
a Destructor control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
DestructorCtrl
Drag-and-drop control
Click this and select a Method object. Enter the source code of the drag-and-drop control. The
program calls it for the object, which you drag onto another object and drop it there. The dropped
object can be an object or text.
You can assign the method a label, which Plant Simulation shows in the status bar, when
you drag an object onto the object for which you created the drag-and-drop control. This
way you can tell the user which actions the control executes.
Parameter
Plant Simulation passes the parameter PathOfDroppedObject of data type string to the called method,
which contains the path of the dropped object.
The standard drag-and-drop control looks like this:
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Controlon the context menu to
create a control method , which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
DragDropCtrl
Related Topic
Use a Drag-and-Drop Control for Several Objects
Fail control
Click this and select a Method object. Enter the source code of the fail control. The program calls
it, whenever the Failed state of the object changes.
You can change the state in the dialog window of the object by selecting Failed or by assigning
the value true or false to the attribute Failed. Within the control you can use the anonymous identifier
question mark ? to access the object which triggered the control.
Parameters
The program passes two optional parameters to the Method that is called:
• The optional parameter FailureStartEnd of data type boolean indicates if the failures starts (true)
or ends (false).
• The optional parameter FailureProfileName of data type string is the name of the failure profile
that caused the failure.
Provided the fail control declares both parameters, it will not only be called when the
object changes to the failed-state or when the failed-state ends, but also each time
when a failure profile is failed or when the failure is removed.
Let’s say failure profile 1 is already failed and then you also fail failure profile 2 in
addition, then the fail control will still be called although the object remains in the
failed-state.
A fail control, which does not expect a parameter or only expects a single parameter,
will only be called, when the state of the object actually changes, meaning it will not be
called when another failure profile is already failed. A fail control, which expects the
name of the failure profile as the second parameter, will, by contrast, always be called
when a failure profile is failed or when the failure is removed.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
FailCtrl
Move-in-frame control
Click this and select a Method object. Enter the source code of the move-in-frame control. The
program calls it, when the object actually changes the position in the Frame into which you inserted it.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method , which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
• The parameter XPrevious of data type integer designates the x-coordinate of the previous
position of the object in the Frame.
• The parameter YPrevious of data type integer designates the y-coordinate of the previous
position of the object.
• The parameter XNew of data type integer designates the x-coordinate of the new position of
the object.
• The parameter YNew of data type integer designates the y-coordinate of the new position of
the object.
Within the Method you can access the moved object with the anonymous identifier question mark (?).
SimTalk:
MoveInFrameCtrl
setPosition
Move-to-folder control
Click this and select a Method object. Enter the source code of the move-to-folder control. The
program calls it, when you move the object from a folder or a Frame to a different folder.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The program passes three parameters to the Method that is called:
• The parameter PreviouLocation of data type string designates the previous location (Frame or
folder) of the object.
• The parameter NewLocation of data type string designates the new location of the object.
• The parameter ManuallyMoved of data type boolean shows the user if the object is manually
moved to a folder (true) or with a Method (false).
Within the Method you can access the moved object with the anonymous identifier question mark (?)
and the new location with the anonymous identifier @.
The standard move-to-folder controllooks like this:
SimTalk:
moveToFolder
MoveToFolderCtrl
Open control
Click this and select a Method object. Enter the source code of the open control. The program
calls it, when you double-click the object to open it. Then, the program does not open the dialog of
the object, but calls and executes the source code of the open control.
If Plant Simulation cannot open the object any longer because of an erroneous Method,
create another Method and open the object from there by employing the method
object.openDialog.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
When you enter a user-defined attribute of data type method as the open control, and when this
Method is encrypted, you cannot open the respective object any longer. Only the open control
itself, and any other Method that has been encrypted with the same password as the open control,
can open the object.
To prevent the open control from being executed, hold down Alt while double-clicking the icon of
the object. Instead, you can also select the command Open Without Control on the context menu of
the object.
To prevent the open control from being executed, when you click the buttons Open Location or
Open Origin on the Home Ribbon Tab, hold down the Alt key, while you click one of the buttons.
To prevent the open control from being bypassed by holding down the Alt key, you can
use an encrypted attribute method as the open control.
If you want to remove the open control, you have to decrypt the Method beforehand. As you cannot
open the object in the regular way, you can accomplish this as follows:
• Decrypt the model as a whole, this also decrypts all open controls.
• Hold down Shift+Ctrl+Alt and double-click the object. This opens the Debugger for the open
control.
• Call the method decrypt. You might, for para, enter Frame5.OnOpen.decrypt(password);
When you enter a user-defined attribute of data type method which you encrypted,
you cannot delete or rename the attribute any longer. You have to decrypt the Method
beforehand.
When you entered an open control for a sub-table, and when you then try to open this sub-table,
Plant Simulation executes the control without opening the sub-table. This also applies to tables that
are part of the object Variable. This also applies to an object of data type table which you inserted
into a Frame.
You can also declare the Open control with a parameter of data type boolean. The value of the
parameter will be set to true, when the object is opened from a 3D window.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
OpenCtrl
Pause control
Click this and select a Method object. Enter the source code of the pause control. The program
calls it, whenever you change the Paused state of the object, when you either select an entry in the
drop-down list Paused/Planned/Unplanned or you assign another value to the attribute
Pause. When you get the paused state within the Method, it shows the state after the change.
Within the control you can access the paused object with the anonymous identifier ?.
Parameter
The optional parameter Duration of data type real sets the length of the pause. If the length of the
pause is unknown, Plant Simulation passes -1. The same happens when the control is called at
the end of the pause.
Within the control you can access the paused object with the anonymous identifier ?.
The standard pause control looks like this:
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
if not current.unplanned
if current.pause
current.currIcon := "pause"
else
current.currIcon := "working"
end
if current.pause
then
current.currIcon := "pause";
else
current.currIcon := "working";
end;
end;
end;
SimTalk:
PauseCtrl
Permit-delete control
Click this and select a Method object. Enter the source code of the permit-delete control.
The Frame or the folder calls it, when you attempt to delete the object for which you programmed
the control. When the method returns false, the program does not delete the object. When the
method returns true, the program deletes the object and calls a Destructor control method, provided
you entered one.
To open the dialog of the object, whose name you entered into the text box, and click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control.
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
The Permit delete control only applies to the Frame and to the Folder.
SimTalk:
PermitDeleteCtrl
Plausibility control
Click this and select a Method object. Enter the source code of the plausibility control. The
program calls it, when you click OK or Apply in the dialog of the object or in the windows of list
objects to apply the changes you made there. At this point in time the Method checks if the entries
are plausible or it interprets them.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
• When the plausibility control has no parameters Plant Simulation only calls it, when you close
the list or table after making a change. Plant Simulation also considers loading a file into a table
as a change. This way Plant Simulation can check the entry and display an error message if
the entry was wrong.
• When the plausibility control has two optional parameters of data type integer, Plant Simulation
also calls the control after you edited a cell.
o The parameter ColumnNumber of data type integer designates the column number of the
edited cell.
o The parameter RowNumber of data type integer designates the row number of the edited cell.
When you close the list or table, which you changed, or when you make any changes in any cell,
Plant Simulation calls the plausibility control with the values-1 for the column and -1 for the row.
You can also define the control method within a Method with the attribute PlausibilityCtrl.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
PlausibilityCtrl
Relabel control
Click this and select a Method object. Enter the source code of the relabel control. The program
calls it, whenever you modify the Label of the object.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The program passes three parameters to the Method that is called:
• The parameter CurrentLabel of data type string designates the current label of the object.
• The parameter NewLabel of data type string designates the new label.
• The parameter ManualRename of data type boolean indicates if the object is relabeled by the
user (true) or by assigning a value to the attribute Label (false).
SimTalk:
RelabelCtrl
Rename control
Click this and select a Method object. Enter the source code of the rename control. The program
calls it, when you change the Name of the object.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method , which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The program passes three parameters to the Method that is called:
• The parameter CurrentName of data type string designates the current name of the object.
• The parameter NewName of data type string designates the new name of the object.
• The parameter ManualRename of data type boolean indicates if the object is renamed by the
user (true) or by assigning a value to the attribute Name(false).
The control will not be called when you insert the object into a Frame and then assign it
a different name.
SimTalk:
RenameCtrl
Related Topic
Rename
Select control
Click this and select a Method object. Enter the source code of the select control. The program
calls it, when you click the object with the left mouse button. Note that the program does not select
the object.
Instead the Method you entered has to take the appropriate actions, for example by opening the
object, or by confirming the selection with the attribute Selected, etc.
The select control only reacts on selecting an instance in a Frame in 2D. It neither reacts
on a selection in 3D nor on setting the attribute Selected.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
SelectCtrl
Unplanned control
Click this and select a Method object. Enter the source code of the unplanned control. The
program calls it, whenever the Unplanned state of the object changes, i.e., whether the object is
not scheduled to work during the time, which you entered into the ShiftCalendar or whether it
is scheduled to work.
You can change the state in the dialog of the object by selecting an entry in the drop-down list
Paused/Planned/Unplanned or by assigning another value to the attribute Unplanned.
Within the control you can access the object with the anonymous identifier ?.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameter
The optional parameter Duration of data type real sets the length of the shift pause. If the length
of the shift pause is unknown, Plant Simulation passes -1, as well as when the control is called at
the end of the shift pause.
An unplanned control might look like this:
Example: -- SimTalk 2.0 notation
print "Frame unplanned: ", current.unplanned
MySingleProc.unplanned := current.unplanned
if current.unplanned
current.currIcon := "unplanned"
else
if current.pause
current.currIcon := "pause"
else
current.currIcon := "working"
end
SimTalk:
UnplannedCtrl
Edit Observers
Edit Observers
The menu command Edit Observers opens the dialog Edit Observers. Here you can create
observers, which observe the values of observable attributes and methods and which enable you
to react to changed values.
When you create your simulation model, it will often become necessary to trigger certain actions,
when the values of observable attributes or observable methods of objects change. To accomplish
this, you can create observers for most of the built-in objects.
This observer observes the value of an attribute or a method and then executes one or several
methods. This method can either be a Method object, which you insert into a Frame, or a
user-defined attribute of data type method.
An observer of a user-defined attribute of data types table/list/stack/queue is not going to be called
when the contents of the list changes, but only when a new list is assigned. In addition the old list
will not be passed to the second parameter of the observer method, but this parameter is always
VOID for lists.
Within the Method, you can use the anonymous identifiers ? and @ to address the object, whose
attribute changed, i.e., the caller of the Method.
Parameters
The program passes one, two, or three parameters to the Method, which will be executed:
param attribute: string, oldValue, newValue: any
1. The name of the observable attribute or the observable method, whose value changed. This way
you can use a single Method as the called Method for several attributes/methods.
2. The previous value of the observed attribute or the observed method. This way you can still
access the previous value after the Method changed it to the new value.
You can either omit the first two parameters or the last parameter. Thus you can declare observer
methods with one, two, or three parameters:
-- 3 Parameter
param attribute: string, oldValue, newValue: any
• To edit an existing observer, select it in the list field and click Edit or double-click it in the list field.
• Return to open the dialog Select Observing Method of the selected observer. Here you can
then change the settings.
• Delete to delete the selected observer. When you cleared the check box Confirm under File
> Preferences > Modeling > Delete objects, Plant Simulation deletes the observer without
prompting you to confirm.
As a rule observer methods are called after all other controls. If you want to react to
state changes before other controls, you have to use the stopuntil instruction or the
waituntil instruction instead of an observer.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
addObserver
attributeWatchable
getObservers
removeObserver
New
To create a new observer, click New . This only works if the attribute or the method of
the object is observable. SimTalk: addObserver.
• Select the observable attribute or the observable method, whose value you want to watch.
• To check whichattributes and methods of an object are observable, select the object and press
F8. observableattributes and methods are marked with an asterisk (*) in the column Watchable
in the dialog Show Attributes and Methods. SimTalk:attributeWatchable.
• Select the Method , which is going to be executed, when the value of the Attribute or of the
Method changes. The name of the attribute/method and the previous value of the attribute
/method are passed to the executed Method as parameters.
To employ a user-defined attribute of data type method as the Method, click the right mouse
button in the field Method and select the command Create Control. Then, the program
automatically formats the Method correctly.
To execute several Methods for the same attribute or method, click New again, select the same
attribute and add an additional method.
Related Topics
Create and Delete an Observer
addObserver
attributeWatchable
removeObserver
Edit
To change the observable attribute or method, which the selected observer watches, and the Method,
which is going to be executed, click this. You can also double-click the name of the observer in the list
field and change the values in the dialog which opens.
Delete
3D
By default, we activated this feature for all simulation-relevant objects, such as the material flow
objects, the moving objects, the resources, and the tools.
The 3D Viewer can also show the icons of most of the objects, which are not relevant for 3D, such as
the information flow objects, in the 3D scene. To do so, double-click the icon of the respective object
in the Toolbox and select Tools > 3D. Then select the check box Create in 3D.
When you then insert an instance of this object into the 3D Scene, it shows the icon of the object. You
can then right-click the icon and select Open 2D Counterpart to open the dialog of the object in 2D.
SimTalk:
CreateIn3D
Help Menu
The Help menu provides these menu commands:
Contents
The menu command Contents opens the table of contents of the Tecnomatix Plant Simulation help.
Index
The menu command Index opens the index of the Tecnomatix Plant Simulation help.
Help on Object
The menu command Help on Object opens the help topic pertaining to the selected object.
Help on Dialog
The menu command Help on Dialog opens the help topic pertaining to the dialog Edit 3D Properties.
Related Topic
Using HTML Help
• Click State Icons/LEDs on the General ribbon tab of the Icon Editor.
The LED display can display several active states at the same time, while the state icon can only
display the single state it represents.
Blocked yellow —
Operational — — Operational
Recovering (
Recovery time) or cyan No_entry
Entrance locked
Stopped pink —
To correctly display state changes with state icons, make sure that the object provides one
icon each for the different states. Otherwise Plant Simulation cannot find the corresponding
icon to display, when the object’s state changes and keeps displaying the icon for the
previous state.
The state graphics in the 3D Viewer correspond to the LEDs described above.
Related Topics
createIcon ZoomY
ZoomX
As a rule, you will always try to arrive at the best configuration of the production process: short
throughput time, making the best use possible of the resources available and meeting all deadlines.
The standard statistics of objects in Plant Simulation provide data to enable you to make valid
statements about the process you are studying.
Related Topics
Statistics Collection Period
Resource Statistics
Statistics Report
Methods for Accessing Statistics of the Material Flow Objects
Attributes for Statistics Values of the Material Flow Objects
The statistics collection period is the interval between activating statistics collection or resetting it on
the one hand and the time you query the statistics on the other hand.
Plant Simulation collects statistical data by default. To deactivate statistics collection for the object,
clear the check box Resource statistics on the tab Statistics of the object, or set
the attribute ResStatOn to false. Deactivating Resource statistics deletes all statistical data for
the object.
When you reset your simulation model, Plant Simulation deletes the statistical information
of all objects. During a simulation run you can achieve the same effect using the method
InitStat. This way you can restart the collection of statistical information after a warm-up
period of a machine.
Access statistical data, for example by employing the method statistics, and save it to a table or file.
The following example illustrates the terms statistics collection period and statistics collection:
Query One
The statistics collection period starts when you activate statistics collection of the object, by selecting
the check box Resource statistics on the tab Statistics, or by assigning the value true to the attribute
ResStatOn, and ends with the query of the statistical data. The progression of the failure of the
object, the start of the statistics query and the time of statistics query 1 add up to a failure portion of
100 percent for statistics query 1. For this query the times the object was not in Failed mode are all
located outside the statistics collection period.
Query Two
The progression of the failure of the object, the start of the statistics query and the time of statistics
query 2 add up to a failure portion of less than 100 percent for statistics query 2 because, for a time,
the object was not in failed mode during the statistics collection period of the object.
Resource Statistics
Resource Statistics
During a simulation run a resource object is either paused or not paused. When not paused, the
resource is either available or not available. Not available signifies that the resource is either failed or
blocked. In the available state the resource is either processing or waiting.
In this context, resources are any of the material flow objects, for which you can select a
Resource type.
In sum there are nine non-overlapping states a resource can be in. The statistics collection period is
the sum of the states Working, Setting-Up, Waiting, Blocked, Powering up/down, Failed, Stopped,
Paused, and Unplanned. For some objects, for example for the ParallelProc, some of these states
can overlap during the simulation run.
For statistical purposes the times below are organized so that they do not overlap. The values for
Working, Setting-Up, Waiting, Blocked, Powering up/down, Failed, Stopped, Paused, and Unplanned
should add up to 100 percent.
This diagram shows how the statistics collection period of a resource is divided up.
The overall statistics time is the statistics collection period without the unplanned time and the
paused time.
The following colors represent the states of the objects. The LED display can display several active
states at the same time, while the state icon can only display the state it represents.
Stopped pink —
Blocked yellow —
Recovering
(Recovery time) or cyan No_entry
Entrance locked
Waiting for an
orange Res_not_avail
Exporter.
Operational — — Operational
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in
the Frame, and press F6 (Show Statistics Report), or select View > Show Statistics Report in the
dialog of the object.
green Working
brown Setting-Up
gray Waiting
yellow Blocked
red Failed
blue Paused
Related Topics
Empty
Relative Occupation
Working
The definition of working depends on the object that processes the MU:
—
The processing time is identical with the sorting
Sorter time, i.e., it is always zero. This means the
sorting takes place instantaneously. Even
though the processing time is zero, each sorting
action counts as a processing procedure.
The read-only attribute ResWorking, returns the state working of the resource.
StatWorkingCount occupied
StatWorkingDelta operational
StatWorkingMu ready
Setting-Up
A material flow resource is setting up when it prepares for processing a different type of MU. If
the object is Paused or Failed, it cannot set-up.
The LED of a station that is setting-up is brown .
The Statistics Report shows the Set-up Time below Resource Statistics of Stationary Resources.
Related Topics
StatSetUpCount StatSetupTime
StatSetUpDelta
Waiting
• It is not Failed.
• It is not Stopped.
• An occupied station is not working, for example, when it is waiting for an Exporter.
• It is not Setting-Up.
The read-only attribute ResWaiting returns the state waiting of the resource.
Related Topics
StatWaitingCount StatWaitingPortion
StatWaitingDelta StatWaitingTime
Blocked
• It is not Paused.
• It is not Failed.
• It is not Stopped.
The read-only attribute ResBlocked returns the state blocked of the resource.
Related Topics
StatBlockingCount EntranceLocked
StatBlockingDelta ExitLocked
StatBlockingMu
Powering up/down
A material flow resource is powering up or down, when it changes its energy state.
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
The Statistics Report shows the Powering up/down Time below Resource Statistics of Stationary
Resources.
Related Topics
StatPoweringUpDownCount StatPoweringUpDownTime
StatPoweringUpDownDelta
Failed
A material flow resource is failed, when it is not Working due to a failure of any kind. It may resume
processing only after you remove the failure, by clearing the check box Failed.
When a station fails, and a pause occurs during the failure, the failure time of the station
will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap, as pause time.
The LED of a failed station is red .
The Statistics Report shows the Failed Time below Resource Statistics of Stationary Resources.
Related Topics
Failed StatFailPortion
endFailure startFailure
endFailureIn startFailureIn
Stopped
A material flow resource is stopped, when the LockoutZone stops all processing operations of the
material objects assigned to it. The stations only start processing parts again after all failures were
removed. They then only use up the remaining processing time. When you reset your model, all
stations change their state from stopped to operational.
The LED of a stopped station is pink .
The Statistics Report shows the Stopped Time below Resource Statistics of Stationary Resources.
Related Topics
Stopped, material flow objects
Stopped, Frame
Stopped, LockoutZone
Paused
A material flow resource is paused, when it is not Working on parts due to a pause. It may
resume processing once you terminate the pause, by selecting Planned from the drop-down list
Paused/Planned/Unplanned.
When a station fails, and a pause occurs during the failure, the failure time of the station
will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap, as pause time.
Plant Simulation only increments the counter for pauses and unplanned times when the duration of
the pause or shift pause is not 0.
The LED of a paused station is blue .
The Statistics Report shows the Paused Time below Resource Statistics of Stationary Resources.
Related Topics
Pause StatPausingPortion
endPause startPause
endPauseIn startPauseIn
Unplanned
A material flow resource is unplanned, when you did not enter a time in the ShiftCalendar during
which it is going to work.
Plant Simulation only increments the counter for pauses and unplanned times when the
duration of the pause or shift pause is not 0.
Unplanned StatUnplannedPortion
StatUnplannedCount StatUnplannedTime
StatUnplannedDelta
Empty
A material flow resource is empty, when no MU is booked on it and when the resource is not Failed,
not Paused, or not Stopped. The empty time always is part of the Waiting time.
When the object has several processing stations, as for example the ParallelProc, you can query
if an MU is located on a certain processing station. When the respective station is empty, the
method returns true.
The Statistics Report shows the Empty Time below Resource Statistics of Stationary Resources.
Related Topics
empty StatEmptyPortion
StatEmptyCount StatEmptyTime
StatEmptyDelta
Relative Occupation
The relative occupancy is determined by the sum of all dwelling times of all MUs during the statistics
collection period during which the object was not Paused and not Failed, divided by the capacity and
the entire statistics collection period without counting pauses and failures. The return value 0 stands
for 0 percent, the return value 1 stands for 100 percent.
Take a ParallelProc for example with four processing stations that processes a single MU during the
entire statistics collection period. It has a relative occupancy of 25 percent.
You can also use this method to compute the average waiting time of an MU:
EventController.SimTime * Buffer.StatRelativeOccupation * Buffer.Capacity / Buffer.St
StatRelativeOccupation
Statistics Report
Statistics Report
To open the statistics report, which shows Resource Statistics data of the selected object or class,
select View > Show Statistics Report in the dialog of the object.
You can also right-click the object in the Frame and select Show Statistics Report or you can press
F6 in the Frame.
To show statistics data of several objects, select them ( Shift+click, or drag a marquee over them) in
the Frame and press F6. To add one or several objects to an open report, select it/them and press
F6. The report adds the statistics of the objects, which you selected to the drop-down list. To jump to
any of the topics in the report, which interest you, select that topic from the drop-down list:
The report then shows that topic by itself on the page. To print just this page, click the button Print
This Page. To show all topics in the display window, click Show All. To print the entire report,
click Print.
To save the report as an HTML file (*.htm or *.html) or as a text file (*.txt) click Save. Enter a name
for the file and select the folder into which you want to save it.
To update the report with the current values, click Refresh.
To show the name of the statistics method , which matches the value shown in a column of a table, as
at tooltip, drag the mouse over the column header and leave it there.
The report can show:
• Resource Statistics of Stationary Resources
• Importer Statistics
• Broker Statistics
The individual material flow objects also show the most important statistics values on the Tab
Statistics.
Also compare Viewing the Statistics Report in the Step-by-Step Help.
Related Topic
Methods for Accessing Statistics of the Material Flow Objects
• Working Time
• Waiting Time
• Blocked Time
• Stopped Time
• Failed Time
• Paused Time
• Set-up Time
• Empty Time
• Rotation Time
• Moving Time
Portions of the States which Accrued During the Statistics Collection Period
The topic resource statistics of stationary resources shows the individual portions of the working
time, the waiting time, the blocked time, the failed time, the stopped time, the paused time, the
unplanned time, the set-up time, and the empty time on the statistics collection period.
The subtopics further down in the report provide details about the working time, the waiting time,
the blocked time, the failed time, the stopped time, the paused time, the unplanned time, the
set-up time, and the empty time in the order in which they appear here.
The values for Waiting, Working, Blocked, Setting-Up, Powering up/down, Failed, Stopped,
Paused and Unplanned should add up to 100 percent.
The bar chart on the right hand side displays the respective portions of the times.
A bar with this color Means that the object is
green Working
brown Setting-Up
gray Waiting
yellow Blocked
purple Powering up/down
red Failed
pink Stopped
blue Paused
light blue Unplanned
Working Time
This topic provides details about the Working time of the material flow object(s).
Sum the total time during which the object worked. StatWorkingTime
Set-up Time
This topic provides details about the Set-Up time of the material flow object(s).
Waiting Time
This topic provides details about the Waiting time of the material flow object(s).
Blocked Time
This topic provides details about the Blocked time of the material flow object(s).
This topic provides details about the Powering up/down time of the material flow object(s).
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
Stopped Time
This topic provides details about the Stopped time of the material flow object(s).
Failed Time
This topic provides details about the Failed time of the material flow object(s).
Paused Time
This topic provides details about the Paused time of the material flow object(s).
Empty Time
This topic provides details about the Empty time of the material flow object(s).
Rotation Time
This topic provides details about the rotation time of the PickAndPlace Robot, the Turnplate, and the
Turntable.
Moving Time
This topic provides details about the moving time of the Converter.
This topic provides details about Energy Statistics of the material flow object(s).
The energy states of the material flow objects differ from the resource states with the same
name. The values for the resource states refer to the statistics collection period, while the
values for the energy states refer to the total energy consumption.
Means
that
A bar with this color in the Statistics
Looks like this the
Report and the Chart
object
is
green working
brown setting-up
yellow operational
red failed
on
light gray
standby
dark gray off
Transporter and Container can load and transport other MUs, they thus act as resources and provide
Resource Statistics.
This sections of the resource statistics of the moving resources Transporter and Container shows:
• Material Flow Properties
• Empty Time
The topic material flow properties shows the following values, which are of interest:
Empty Time
This topic provides details about the Empty time of the Transporters or of the Containers.
Read-only
The column Shows
attribute
the
portion
of the
statistics
collection
period
Portion StatEmptyPortion
during
which
the
object
was
empty.
how
often the
Count object StatEmptyCount
was
empty.
the total
time
during
which
the
object
was
empty,
Sum StatEmptyTime
i.e.,
was not
Failed,
was not
Paused
and
was not
Stopped.
the
mean
duration
of a time
span
Mean Value during StatEmptyMu
which
the
object
was
empty.
the
standard
deviation
of the
time
spans
during
Standard Deviation which StatEmptyDelta
the
object
was
empty
from the
mean
value.
Drain statistics provides details about the parts which the objects of type Drain removed from your
plant.
This section of the resource statistics shows:
• Cumulated Statistics of the Parts which the Drains Removed from the Plant
Cumulated Statistics of the Parts Which the Drains Removed From the Plant
This topic shows the cumulated statistics of the parts which the Drains removed from the installation.
Also compare the Detailed Statistics Table which provided additional values of interest.
Also compare the Detailed Statistics Table which provided additional values of interest.
This topic shows the detailed statistics of the part types which the Drains removed from the plant.
The column Shows the
Mean Value of the Life Time mean life time (throughput time) of all investigated parts.
standard deviation of the mean life time (throughput time) of
Standard Deviation of the Life Time
all investigated parts.
minimum of the life time (throughput time) of all investigated
Minimum of the Life Time
parts.
maximum of the life time (throughput time) of all investigated
Maximum of the Life Time
parts.
Mean Value of the Exit Time mean exit time (throughput time) of all investigated parts.
standard deviation of the mean exit time (throughput time) of
Standard Deviation of the Exit Time
all investigated parts.
minimum of the exit time (throughput time) of all investigated
Minimum of the Exit Time
parts.
maximum of the exit time (throughput time) of all investigated
Maximum of the Exit Time
parts.
total throughput of all parts, which passed through the Drain
Total Throughput
and which it removed from the plant.
mean throughput per hour. Statistics only collects values for
Throughput per Hour
full hours and only for hours during which parts arrived.
mean throughput per day. Statistics only collects values for
Throughput per Day
full days and only for days during which parts arrived.
Importer Statistics
Importer Statistics
This topic provides details about the statistics of importers, which were waiting for services
and/or parts.
This topic provides details about the statistics of importers, which were Waiting for set-up exporters.
This topic provides details about the Exporter and Worker statistics.
It shows:
• Service Statistics — States — Capacities and States of the Exporters
This topic provides details about the capacities and of the states of theExporters.
Sum Mediated
sum of the brokered capacity. StatSumMediatedCapacity
Capacity
Minimum Free
minimum capacity, which is available. statMinFreeCapacity
Capacity
Maximum Free
maximum available capacity, which is available. StatMaxFreeCapacity
Capacity
Minimum Mediated
minimum brokered capacity. statMinMediatedCapacity
Capacity
Maximum Mediated
maximum brokered capacity. StatMaxMediatedCapacity
Capacity
Start of Statistics
time at which statistics collection started —
Collection
This topic provides details about the operating times of the different types of Exporters.
This topic provides details about the distances which the Workers in your simulation model covered.
Broker Statistics
Sum Satisfied
total number of satisfied requests. StatSatisfiedRequests
Requests
Sum Mediated
total amount of brokered capacities. StatMediatedCapacity
Capacity
Dwelling Time
This topic provides details about the dwelling time.
Mediation Time
This topic provides details about the product statistics of the mobile objects Entity, Container and
Transporter.
It shows:
• Cumulated Statistics of the Classes
This topic provides details about the cumulated statistics of the MU classes.
Product-Oriented Statistics of all Existing and Deleted MUs by Classes
This topic provides details about the product-oriented statistics of all existing MUs and those, which
were removed from the plant.
This topic provides details about the mean time portions of an MU class of the mean life time
of that MU.
This topic provides details about the statistics of the individual MUs.
In addition to product and resource statistics the Transporter collects drive statistics data about
failures, pauses, battery consumption and the number of jobs performed.
You can view:
• Statistics of the Transporters
• Ready-Times
• Failures
• Pauses
• Battery
Ready-Times
Failures
Pauses
Traveled Distance
This topic provides details about the distance which the instance of the designated Transporter
covered while driving on a Track.
Battery
Preparing Data for the Simulation with DataFit Attributes of the Distributions
Empirical Distributions
Related Topic
Functions for Converting Times and Dates
Probability Distributions
Probability Distributions
Plant Simulation provides these probability distributions in the drop-down lists on the tab Times:
Beta Lognormal
Binomial Normal
Erlang Poisson
Gamma Triangular
Geometric Uniform
Hypergeometric Weibull
Object-specific times, such as the processing time, the set-up time, the times of failures, etc. can
take values according to these distributions. You can select the type of probability distribution as well
as the parameters of the distribution in the dialog of the object. In addition, you can assign all settings
and parameters of the distributions in Methods. You can also set the parameters of a distribution with
the method setParam or with the corresponding attributes in SimTalk.
Plant Simulation also provides predefined SimTalk functions for almost all of the distributions that you
can use in writing your own Methods.
Example: a := z_normal(1,20,5);
A detailed description and explanation would go beyond the scope of this manual. For more
information, consult a textbook on random numbers.
Within methods you can also assign additional distributions, which are described under Distribution
Functions.
Related Topics
Distribution Functions
Empirical Distributions
User-defined Distributions
Attributes of the Distributions
Methods of the Distributions
Beta
Depending on its parameters, the beta distribution assumes a variety of shapes.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it to model distributed quantities in your simulation model when you do not have
sufficient data. You can, for example, model down times and repair times of machines, the number
of rejects, or the processing time for an order.
The mean is µ =
The variance is
The beta distribution is a continuous distribution whose realizations are located between 0 and
1 ( real ).
Parameters
The parameters Alpha1 and Alpha2 are positive numbers. The have the data type real.
Related Topics
Distribution Functions
Attributes of the Distributions
Methods of the Distributions
Binomial
The binomial distribution is a discrete distribution. The realizations are natural numbers. The
parameter n (real) designates the number of trials. The parameter p (real) designates the probability
of the event of interest to occur.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it when you run the same experiment several times one after the other and when the
results of the experiment are independent of each other.
An event of interest will occur during the simulation with a probability of p. If you repeat this test n
times, the probability of an event of interest to occur k times is:
Probabilities of the binomial distribution with the parameters n=12 and p=0.35
You can also create the binomial distribution with this SimTalk function:
z_binomial(Stream:integer,n:integer,p:real)
Constant
The constant distribution uses the fixed time, which you enter into the text box.
Related Topics
Attributes of the Distributions
Methods of the Distributions
Erlang
The Erlang-distribution is the sum of k independent, exponentially distributed random numbers with
the same parameter beta. The realizations are non-negative real numbers. The parameter Mu (µ)
designates the mean value of the distribution. The parameter sigma (σ) designates the standard
deviation of the distribution.
Plant Simulation uses the mean µ = k · β and the standard deviation σ with σ2 = k ·β2. So .
When selecting the values for the parameters Mu (µ) and Sigma (σ) make sure that the value for
k actually is an integer number, otherwise the mean value you enter and the desired standard
deviation will not result.
Gamma
The gamma distribution is a continuous distribution. Its realizations are non-negative real numbers.
The parameters of the distribution are described under Attributes of the Distributions.
The expression Γ (α) is the gamma function (α > 0). A positive integer parameter α = k results in
the Erlang-distribution.
Figure 6-4. Density functions of the gamma distribution with a mean value of 1
You can also create the gamma distribution with this SimTalk function:
z_gamma(Stream:integer,Alpha:real,Beta:time[,LowerBound:real, UpperBound:real])
Geometric
The geometric distribution is a discrete distribution. The realizations are non-negative integer
numbers. The parameter p defines the probability that an event occurs.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it to determine how many parts are produced before the next reject.
The parameter p designates the probability of a reject. The value for p is located between 0 and 1,
f(k) = p · (1-p)k is the probability that the (k+1)th part is a reject.
Figure 6-5. Probabilities of the geometric distribution with the parameter p=0.5
You can also create the geometric distribution with this SimTalk function:
z_geom(Stream:integer,p:real[,LowerBound:real,UpperBound:real])
Hypergeometric
The hypergeometric distribution is a discrete distribution. You can use it to draw n samples from a
population of m. The realizations are non-negative integer numbers.
The parameters of the distribution are described under Attributes of the Distributions.
A certain portion of the population is assumed to be special. This portion is called p; its value must
be located between 0 and 1. Now, the random number of special items in a sample of size N is
hyper-geometrically distributed. For the numbers N and M the relation 0 N M must hold.
The probability that the sample contains k items of the special kind is ,
where pM is the number of items of the special kind. designates the binomial
coefficient.
Figure 6-6. Probabilities of the hypergeometric distribution with the parameters M=100, N=5,
p=0.6
You can also create the hypergeometric distribution with this SimTalk function:
z_hypgeom(Stream:integer,m:integer,n:integer,p:<real)
Lognormal
The log-normal distribution is a continuous distribution. It is the distribution of a random number
whose natural logarithm corresponds to a normal distribution. The realizations are non-negative real
numbers.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it to model random numbers that are the product of a large number of random values,
for example to describe the random time for realizing a project.
The lognormal distribution is especially suited for modeling failures.
Parameters
The parameter Stream (integer) designates the random number stream.
The parameters Mu (µ) and Sigma (σ) designate the mean value and standard deviation of the
lognormal distribution. If a random number is lognormally distributed with the parameters Mu (µ) and
Sigma (σ), then the natural logarithm of it is normally distributed with the parameters µ0 and σ0. The
parameters Mu and Sigma have the data type time.
Related Topics
Distribution Functions
Attributes of the Distributions
Methods of the Distributions
Negative exponential
The negative exponential distribution is a continuous distribution. It is called negative because of the
negative prefix of the exponent. The realizations are non-negative real numbers. The parameter Beta
(β) designates the mean time in seconds between two events.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it to visualize times between independent events, and to model in-between arrival
times of customers in a service system, the duration of a repair job or the absence of employees
from their job site.
The exponential distribution plays an important role in reliability theory. The random life times
of systems that fail during a certain time interval regardless of their life time is distributed in an
exponential way.
The negative exponential distribution is especially suited for modeling failures.
Figure 6-8. Density function of the negexp distribution with a mean value of 2
You can also create the negative exponential distribution with this SimTalk function:
z_negexp(Stream:integer,Beta:time[,LowerBound:real,UpperBound:real])
Normal
The normal distribution is a continuous distribution.Normal means that for a time query Plant
Simulation rolls a number that corresponds to a normal distribution with the expected value Mu (µ) and
the standard deviation Sigma (σ). As a rule of thumb 2/3 of all possible values are located within
the interval [µ- σ, µ + σ].
The parameters of the distribution are described under Attributes of the Distributions.
You can use the normal distribution to model random numbers that can be realized as the sum of a
large number of random numbers, for example, to describe measuring errors.
The mean value is µ and the variance is σ2. A normally distributed random number may be any real
number. When using the normal distribution for the distribution of time values, such as processing
times, be aware that the actual values for the mean value and the variance may differ significantly
from µ or σ2 by using the lower bound 0 (see LowerBound).
Figure 6-9. Density functions of the normal distribution with a mean value of 5
You can also create the normal distribution with this SimTalk function:
z_normal(Stream:integer,Mu:time,Sigma:time[,LowerBound:real,UpperBound:real])
Related Topics
Distribution Functions
Attributes of the Distributions
Methods of the Distributions
Poisson
The Poisson-distribution is a discrete distribution. The realizations are natural numbers.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it when your modeling task requires a random number of events.
number of customers arriving per second is Poisson distributed with the parameter .
Parameter
The parameter Lambda (real) designates the average number of events per second.
Because of the used algorithm the parameter Lambda may not be greater than 700 when creating a
Poisson-distributed random number.
If you need a Poisson-distributed random number with a greater Lambda, for example 1000, you
can use the formula
z_poisson(1, 500) + z_poisson(1, 500)
The return value k of the distribution is the number of events (real ). Although the returned values are
natural numbers, we do not return a value of data type integer, but a value of data type real, so that
all distribution functions return the same data type.
Related Topics
Distribution Functions
Attributes of the Distributions
Methods of the Distributions
Triangular
The triangular distribution is a continuous probability distribution. It is defined by these parameters:
The most probable value c, the minimum value a and the maximum value b of the interval within
which the random numbers are created.
Note that the triangular distribution is called triangle distribution in Plant Simulation.
The parameters of the distribution are described under Attributes of the Distributions.
You can use it if not much is known about the distribution of a value.
The probability density function is:
The realizations of a triangularly distributed random number are located between a and b. Most
values are located in the vicinity of c.
Uniform
You can use the uniform distribution to model a random number that is located between the interval
bounds Start and Stop. You can use it when not much is known about the random number.
The parameters of the distribution are described under Attributes of the Distributions.
Weibull
The parameters of the distribution are described under Attributes of the Distributions.
You can use the Weibull distribution to model the reliability of your plant:
• Use Alpha α 1 to model the random life time of an plant with a decreasing failure rate. The
probability of a failure to occur within a certain time interval decreases as time goes on. Burn-in
failures will become more improbable the longer the machines work.
• Use α = 1 to model the exponential distribution. A random exponential life time describes an plant
that does not age. The probability of a failure to occur is independent of the life time up to then.
• Use α > 1 to model the random life time of an plant with an increasing failure rate. After running
machines for a long time, wear-out failures occur, so that the probability of a failure within a time
interval increases as the system ages. The life times that accrue most of the time are determined
by the maximum of the density function (for α > 1) and are roughly defined by the values
The Weibull - distribution with the parameters α, β > 0 has the distribution density
for x>0.
Empirical Distributions
Empirical Distributions
Plant Simulation provides these empirical distributions:
You can use the empirical distributions when your data cannot be represented properly by a
mathematical distribution.
According to a set of observed data x_1, …, x_n a random variable with a distribution following the
observed frequency of the data is computed. You have to enter the input data into a frequency table.
Related Topics
Probability Distributions
User-defined Distributions
Attributes of the Distributions
Methods of the Distributions
Distribution Functions
The random numbers, which Plant Simulation generates, are located in the range between 1 and
the y-dimension of the frequency table. The values on the table can be of data type real, time, or
integer. The contents of a cell in row i of this table is the frequency that the random numberi occurs.
The value in row 5 is the number of times the value 5 occurred.
When you need an integer random number, whose realizations is located in the range between two
positive integer numbers a and b, create a column with b entries. The first (a – 1) entries are 0.
Clicking Apply in the dialog of the object automatically formats the table so that the data types of
the columns match the parameters.
You can also create the primitive empirical distribution with this SimTalk function:
z_emp(Stream:integer,Table:table,Column:integer)
Parameters
The parameter Table designates the path to a table or an attribute of data type table.
The parameter Column of data type integer designates the column containing the frequency data.
Related Topics
Attributes of the Distributions
Methods of the Distributions
Distribution Functions
The relative frequency will be used as an empirical estimate for the probability of the corresponding
value to appear.
Clicking Apply in the dialog of the object automatically formats the table so that the data types of
the columns match the parameters.
You can also create the discrete empirical distribution with this SimTalk function:
z_dEmp(Stream:integer,Table:table)
For the continuous empirical distribution the input data is preprocessed and grouped into k classes.
Each class contains all samples within a given interval. The k intervals are disjoint but not necessarily
adjacent.
The interval includes the left bound but not the right bound. If the left bound is equal to the right
bound, the interval degenerates to a point. This special case is of interest if the probability of
a single point is non-zero.
Clicking Apply in the dialog of the object automatically formats the table so that the data types of
the columns match the parameters.
Type in the left bound into the first column of the frequency table, type in the right bound into the
second column. The third column contains the frequency of the corresponding intervals. The data
type of the third column has to be real, time, or integer. The number of values of the input data
contained in an interval can be used as frequency, for example.
You can also create the continuous empirical distribution with this SimTalk function:
z_cEmp(Stream:integer,Table:table)
User-defined Distributions
User-defined Distributions
Related Topics
Probability Distributions
Empirical Distributions
Attributes of the Distributions
Methods of the Distributions
Formula
You can use the formula distribution to define the time generator yourself.
You can enter any SimTalk expression into a formula: You can use the basic arithmetic operations
and all functions, which Plant Simulation supports. You can also enter a Method which would then
call the Method and use its result.
You can use the anonymous identifier ? to access the object that initiated the calculation. When
calculating the Set-up time and the Processing Time, you can also use the anonymous identifier
@ to access the MU.
When using a formula, you may not use any actions, which interfere with the material flow,
i.e., you may not transfer MUs, delete objects, etc. You may only use read-only access,
you cannot change any simulation-relevant parameters of the model.
Related Topics
Define Times in the Class of the Processing Stations
Attributes of the Distributions
Methods of the Distributions
List (Type)
You can use the List(Type) distribution to determine the times depending on the type of MU.
Type in the name of the table into which you want to enter the required data. Clicking Apply in the
dialog of the object automatically formats the table so that the data types of the columns match
the parameters.
Enter all possible MU types in column 1 and the corresponding times in seconds in column 2.
During the simulation run Plant Simulation reads the time at which an MU arrives from that list. If you
did not enter a list, Plant Simulation displays an error message.
Related Topics
Attributes of the Distributions
Methods of the Distributions
List (Place)
The List(Place) distribution only applies when modeling a ParallelProc with several
processing stations that have different but constant processing times.
Type in the name of the table into which you want to enter the required data. Clicking Apply in the
dialog of the object automatically formats the table so that the data types of the columns match
the parameters.
Within the table, the entry [1,2] matches the processing location at position [1,2], for example.
Matrix(Type)
When setting a station up the time may not only depend on the target type, for which you want to set
up, but also from the source type. In this case you can define the times in a table.
Type in the name of the table into which you want to enter the required data. Clicking Apply in the
dialog of the object automatically formats the table so that the data types of the columns match the
parameters. The row index designates the source type. The column index designates the target type.
In our example above setting-up from no type, indicated by the hyphen (-), to the target type Entity
takes exactly 1 minute. Setting-up from the type Entity to the type Transporter takes 2 minutes
and 7 seconds.
Related Topics
Attributes of the Distributions
Methods of the Distributions
Within Methods, Plant Simulation accesses the bounds with the sub-attributes UpperBound, and
LowerBound.
You can use the attributes LowerBound and UpperBound to set or query the type of distribution
of an attribute.
Related Topics
Methods of the Distributions
Distribution Functions
a
Syntax: Attribute_path.a
Alpha
Syntax: Attribute_path.Alpha
Alpha1
Syntax: Attribute_path.Alpha1
Alpha2
Syntax: Attribute_path.Alpha2
Syntax: Attribute_path.b
Beta
Syntax: Attribute_path.Beta
The attribute Beta sets the mean time in seconds between two events. It is a positive number.
Data Type of Value You Can Assign
You can assign a value of data type time.
You can assign the following attributes/parameters to these distributions:
Range of values for the
Distribution Set of parameters
parameters
Alpha, Beta, LowerBound, Alpha > 0, Beta > 0, Upper Bound
Gamma
UpperBound > Lower Bound
Stream, Alpha, Beta, Alpha > 0, Beta > 0, Upper Bound
Loglogistic Distribution
LowerBound, UpperBound > Lower Bound
Beta > 0, Upper Bound > Lower
Negative exponential Beta, LowerBound, UpperBound
Bound
Alpha, Beta, LowerBound, Alpha > 0, Beta > 0, Upper Bound
Weibull
UpperBound > Lower Bound
Syntax: Attribute_path.c
The attribute c sets the most probable value of the triangular distribution.
Data Type of Value You Can Assign
You can assign a value of data type time.
You can assign the following attributes/parameters to this distribution:
Range of values for the
Distribution Set of parameters
parameters
Triangular c, a, b a>c>b
Lambda
Syntax: Attribute_path.Lambda
The attribute Lambda sets the average number of events per second.
Data Type of Value You Can Assign
You can assign a value of data type integer.
You can assign the following attributes/parameters to this distribution:
Range of values for the
Distribution Set of parameters
parameters
Poisson Lambda Lambda > 0
LowerBound
Syntax: Attribute_path.LowerBound
The attribute LowerBound sets the smallest value to be sampled from a distribution. When it
encounters a smaller number, Plant Simulation keeps drawing samples until a value equal to or larger
than the LowerBound results. The LowerBound has to be less than the UpperBound.
If both UpperBound and LowerBound are zero, an unlimited distribution results.
Data Type of Value You Can Assign
You can assign a value of data type time.
You can assign the following attributes/parameters to these distributions:
Range of values for the
Distribution Set of parameters
parameters
Mu, Sigma, Lower Bound, Mu > 0, Sigma > 0, Upper Bound
Erlang
UpperBound > Lower Bound
Alpha, Beta, Lower Bound, Alpha > 0, Beta > 0, Upper Bound
Gamma
UpperBound > Lower Bound
0 p 1, Upper Bound > Lower
Geometric p, Lower Bound, UpperBound
Bound
Mu, Sigma, Lower Bound, Mu > 0, Sigma > 0, Upper Bound
Lognormal
UpperBound > Lower Bound
Beta > 0, Upper Bound > Lower
Negative exponential Beta, Lower Bound, UpperBound
Bound
m
Syntax: Attribute_path.m
Mu
Syntax: Attribute_path.Mu
n
Syntax: Attribute_path.n
The attribute n sets the number of trials which the distribution attempts.
Data Type of Value You Can Assign
Syntax: Attribute_path.p
Sigma
Syntax: Attribute_path.Sigma
Start
Syntax: Attribute_path.Start
Stop
Syntax: Attribute_path.Stop
Theta
Syntax: Attribute_path.Theta
The attribute Theta designates an unknown parameter in the following distributions. It is a number
greater than 0.
Data Type of Value You Can Assign
You can assign a value of data type real.
You can assign the following attributes/parameters to these distributions:
Stream, Alpha, Theta, LowerBound, Alpha > 0, Theta > 0, Upper Bound >
Pareto Distribution
UpperBound Lower Bound
Type
The sub-attribute Type sets the type of the probability distribution for the addressed attribute.
Attribute_path designates an attribute of data type time or a user-defined attribute of data type
randtime.
The different distributions have different attributes. You can set these:
• With the method setParam.
UpperBound
Syntax: Attribute_path.UpperBound
The attribute UpperBound sets the largest value to be sampled from a distribution. When it
encounters a greater number, Plant Simulation keeps drawing samples until a value equal to or less
than the UpperBound results. The UpperBound has to be larger than the LowerBound.
If both UpperBound and LowerBound are zero, an unlimited distribution results.
Data Type of Value You Can Assign
You can assign a value of data type time.
You can assign the following attributes/parameters to these distributions:
Range of values for the
Distribution Set of parameters
parameters
In this example the random variable has a mean of µ = 63.7 and a standard deviation of σ = 23.5.
getAttr
Syntax: Path.Attribute.getAttr
The method getAttr returns the set of parameters in the format that the method
setTypeAndAttr understands.
setParam
Syntax: Path.Attribute.setParam(Type:string [,SetOfParameters:any, ...])
The method setParam sets the type of distribution and assigns a complete set of parameters to
the distribution.
Parameter
The parameter Type of data type string designates the type of the distribution.
Erlang-distribution Erlang/Erlang
Weibull-distribution Weibull/Weibull
Poisson-distribution Poisson/Poisson
Formula Formula/Formel
Depending on the type, you will have to enter additional parameters, such as LowerBound, Mu,
Sigma, Type, and UpperBound.
Example: MySingleProc.proctime.setParam("normal",30,10);
MySingleProc.proctime.setParam("normal",30,10,1,100);
MySingleProc.setuptime.setParam("formula","Variable1/20");
MyGenerator.duration.setParam("dEmp",2,TableEmp);
Related Topics
setSubAttribute
getSubAttribute
setTypeAndAttr
Syntax: Path.Attribute.setTypeAndAttr(Type:string,SetOfParameters:string)
The method setTypeAndAttr sets the type of the distribution and assigns a complete set of parameters
to the distribution.
Parameters
• The parameter Type of data type string designates the type of the distribution.
Erlang-distribution Erlang/Erlang
Weibull-distribution Weibull/Weibull
Poisson-distribution Poisson/Poisson
Formula Formula/Formel
• The parameter SetOfParameters of data type string designates the set of parameters.
Return Value
The return value has the data type boolean.
The method getAttr returns the set of parameters in the format that the method
setTypeAndAttr understands.
All objects share the methods described below. The sub-chapters about the objects list additional
methods that apply to these objects.
A method queries information from an object and returns a value. It computes a value and starts
one or several actions that control the behavior of the object. We grouped the methods according to
their functions.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter
of data type string. The expression (byRef X:integer), for example, designates a variable of
data type integer.
Instead of a constant value, you can also use a variable of the required type or a method that
returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger .
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topics
General Methods of All Objects
Methods for Animating All Objects
Methods of the Display Panel
Methods for the Location, Predecessor, and Successor of All Objects
Methods for Managing Inheritance Relations of All Objects
Methods for Managing Attributes of All Objects
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
addObserver
Syntax: Path.addObserver(AttributeName:string, Method:object)
Parameters
• The parameter AttributeName of data type string designates the name of the observable
attribute or method.
• When the value of this attribute or method changes, Plant Simulation calls the method designated
by the parameter of data type object. It then executes the actions, which you programmed
in this method.
Within the called Method you can use the anonymous identifiers ? and @ to address the object,
whose attribute changed, i.e., the caller of the Method.
Two parameters are passed to the Method, which will be executed:
• The name of the observable attribute or the observable method, whose value changed. This way
you can use a single Method as the called Method for several attributes.
• The previous value of the observable attribute or the observable method. This way you can still
access the previous value after the Method changed it to the new value.
The Method to be executed might look like this in SimTalk 2.0 notation:
param attribute: string, oldValue: any
if ?.occupied
?.Cont.move(Station2)
end
Related Topics
Edit Observers
removeObserver
attributeWatchable
attributeWatchable
Syntax: Path.attributeWatchable(AttributeName:string) → boolean
The method attributeWatchable returns if an attribute or method of the object designated by Path is
observable (true) or not (false).
To check which attributes and methods of an object are observable, you can also select the object
and press F8. observable attributes and methods are marked with an asterisk (*) in the column
Watchable in the dialog Show Attributes and Methods.
Parameter
The parameter AttributeName of data type string designates the attribute or method.
Return Value
The return value has the data type boolean.
Example: print Parallelproc.attributeWatchable("NumMU");
Related Topic
Dialog Show Attributes and Methods
closeDialog
Syntax: Path.closeDialog([ApplyChanges:boolean]) → boolean
The method closeDialog closes the dialog window of the object designated by Path.
Parameter
The optional parameter ApplyChanges of data type boolean determines if Plant Simulation ignores all
changes you made in the dialog (false) or if it accepts and applies your changes (true).
Return Value
Related Topics
OK button
Cancel button
deleteObject
Syntax: Path.deleteObject → boolean
The method deleteObject deletes the object designated by Path. Plant Simulation only deletes
inactive objects. The same holds true for methods being executed or Frames containing active
methods. For this reason you cannot delete a Frame using the Constructor method if the Constructor
method itself is located within that Frame.
Return Value
The return value has the data type boolean. Decided not to document what false/true means as it is
too complicated to describe.
Deleting a class object automatically deletes all of its instances without warning.
Example: .Materialflow.MySingleProc.deleteObject;
--deletes the object from the class library
MySingleProc.deleteObject;
-- deletes the object from the Frame
Related Topic
Delete Objects
derive
Syntax: Path.derive([Destination:object, Name:string]) → object
The method derive derives the object designated by Path in the Class Library. Note that Plant
Simulation does preserve the inheritance hierarchy.
To create the object at a certain position in the Frame, you can use the attribute Coordinate3D.
Parameters
• The optional parameter Destination of data type object designates the destination at which
Plant Simulation creates the object.
• The optional parameter Name of data type string designates the name of the object that will
be created.
Return Value
The return value has the data type object. Plant Simulation returns the derived object, when it was
able to derive the object. It returns VOID when deriving failed.
Example: -- SimTalk 2.0 notation
.MaterialFlow.SingleProc.derive
.MaterialFlow.Line.duplicate(.Models.MyPlant,"MyLine")
.InformationFlow.&Variable.derive
.InformationFlow.&Method.derive
Related Topic
Derive
duplicate
Syntax: Path.duplicate([Destination:object, Name:string]) → object
The method duplicate duplicates, i.e., copies, the object designated by Path in the Class Library.
Note that Plant Simulation does not preserve the inheritance hierarchy.
To create the object at a certain position in the Frame, you can use the attribute Coordinate3D.
Parameters
• The optional parameter Destination of data type object designates the destination at which
Plant Simulation creates the object.
• The optional parameter Name of data type string designates the name of the object that will
be created.
Return Value
The return value has the data type object. Plant Simulation returns the duplicated object, when it was
able to duplicate the object. It returns VOID when duplicating failed.
Example: -- SimTalk 2.0 notation
.MaterialFlow.Line.duplicate
.MaterialFlow.Line.duplicate(.Models.MyPlant,"MyLine")
.InformationFlow.&Variable.duplicate
.InformationFlow.&Method.duplicate;
Related Topic
Duplicate
Cut Inheritance
extendPath
Syntax: Path.extendPath(PathExtension:string) → object
The function extendPath extends the path of the object designated by Path, allowing you to access
objects contained within or on that object.
Parameter
The parameter PathExtension of data type string designates the path of the object whose path
you want to extend.
Return Value
The return value has the data type object.
Example: -- SimTalk 2.0 notation
var objName : string
location.extendPath("objName") -- location is the Frame
getHTMLCode
Syntax: Path.getHTMLCode([Caption:string,][StatisticsType:string,] [ColumnOrColumnRang
The method getHTMLCode returns the HTML code for all objects with statistics which would generate
a statistics table in the HtmlReport. The syntax is the same as in the HtmlReport.
Parameter
• The optional parameter Caption of data type string designates the caption of the object.
• The optional parameter StatisticsType of data type string designates the statistics type of the
object. Start entering the statistics type with a percentage sign, for example %WorkingTime. You
can enter one of these statistics types:
Statistics Type
%ResStates
%MatFlowProperties
%MovingTime (Converter )
%WorkingTime
%SetupTime
%WaitingTime
%BlockedTime
%PowerUpDownTime
%StoppedTime
%FailedTime
%PausedTime
%EmptyTime
%MUMatFlowProperties
%MUEmptyTime
%DrainCumulated
%DrainAllTypes
%Energy
%MUClassStatistics
%MUClassTimePortions
%MUTimePortions
%TransUsageTime
%TransReadyTime
%TransPausedTime
%TransFailedTime
%TransTraveledDistance
%TransBatteryTime
%Broker
%BrokerSMediationTime
%BrokerDwellTime
%Exporter
%ExporterTimePortions
%WorkerTraveleledDistance
%ImporterWaiting
%ImporterWaitingTime
%ImporterMUWaitingTime
%ImporterSetpWaitingTime
Return Value
The return value has the data type string.
Example: Comment1.Cont := TableFile.getHtmlCode() –- entire table
Comment2.Cont := TableFile.getHtmlCode("caption") – table with caption
Comment3.Cont := TableFile.getHtmlCode(1, 3) -- numerical column index
Comment4.Cont := TableFile.getHtmlCode("1", 3) -- mixture of numerical/string
Comment5.Cont := TableFile.getHtmlCode("1..2") – column index range
Comment6.Cont := TableFile.getHtmlCode("#A") -- named column
getObservers
Syntax: Path.getObservers
The method getObservers returns all observers of the object designated by Path.
Return Value
The return value has the data type table. This table has three columns. Column 1 is of data type
string and contains the name of the Observed Value. Column 2 is of data type object and contains
the name of the Method. Column 3 is of data type boolean and contains true if the observer was
created in the current object (Created Here), i.e., that is not inherited.
The Method in column 2 can contain a relative path to a Method or an object reference. If it is a
relative path, you have to use the method asString of the TableFile to access the path in column 2.
Related Topic
Edit Observers
getXYWH
The method getXYWH returns the coordinates of the position of the dialog of the object designated by
Path, and assigns them to the local variables, which you define.
For a maximized window getXYWH returns -1 for the X-coordinate and the Y-coordinate,
and the correct size of the maximized window.
Local Variables
• The local variable X designates the x-coordinate of the dialog of the object.
• The local variable Y designates the y-coordinate of the dialog of the object.
For objects, which do not save their position and size, the method assigns -1, when the dialog
is closed.
Example: Frame1.getXYWH(x,y,w,h); print x," ",y," ",w," ",h;
Related Topic
setXYWH
InternalClassName
Syntax: Path.InternalClassName
The read-only attribute InternalClassName returns the unique name that describes the type of the
object designated by Path. The internal class name is the name of the object class in our C++ code.
ActiveX NwOle
AngularConverter NwCorner
Assembly NwAssembler
AttributeExplorer AttributeExplorer
Basis Palete
Broker NwBroker
Buffer NwIOBuffer
Button NwButton
CardFile NwRandom
Chart NwChart
Checkbox NwCheckbox
Comment Comment
Connector NwArc
Container Goods
Converter NwConverter
Cycle NwCycle
DePortioner NwDePortioner
Dialog NwDialog
DismantleStation NwDismantle
Display NwDigitDpy
Drain Drain
DropDownList NwDropDownList
Entity Piece
EventController EventCtl
Exporter NwExporter
FileInterface FileSS
FileLink NwFileLink
FlowControl FlowCtrl
FluidDrain NwFluidDrain
FluidSource NwFluidSource
FootPath NwFootPath
Frame Network
GanttChart NwGantt
GAOptimization GaOptimization
GARangeAlloction NwRangeAllocChromoCoding
GASelection NwSelectChromoCoding
GASequence NwSequenceChromoCoding
GASetAllocation NwSetAllocChromoCoding
Generator Generator
HtmlReport NwHtmlReportEX
Interface Interface
Line Line
LockoutZone NwLockoutZone
Method Method
Mixer NwMixer
ODBC NwOdbc
OPCClassicInterface NwOPCInterface
OPCUAInterface OPCUAInterface
Oracle DataBaseOra
ParallelProc Machine
PickAndPlace NwRoboter
Pipe NwPipe
Portioner NwPortioner
PlaceBuffer Buffer
QueueFile NwQueue
Report NwHtmlReport
ShiftCalendar NwShift
SingleProc Place
Socket NwSocket
Sorter Sorter
Source NwSource
SQLite SQLiteIF
StackFile NwStack
Store NW_Store
TableFile NwList2D
Tank NwTank
TimeSequence NwTimeSequence
Toolbar NwToolbar
Track NW_Way
Transporter Vehicle
Trigger NwTrigger
Turnplate NwTurnplate
Turntable NwTurnTable
TwoLaneTrack Nw2Way
Variable NwData
Worker NwWorker
WorkerPool NwWorkerPool
Workplace NwWorkplace
XMLInterface NwXML
Return Value
The return value has the data type string.
Related Topic
Dialog Show Attributes and Methods
isNameUnique
The method isNameUnique checks if the name to be checked of data type string is not assigned yet
within the Name Space of the object designated by Path (true) or if it is assigned (false).
When isNameUnique returns false you can enter the identifier of data type string, separated by
a period after the path to the object into the source code of a Method, as this object then either
has a built-in attribute or a built-in method or a user-defined attribute with this identifier. When the
object is a Frame or a folder, then isNameUnique also considers objects with this identifier, which
you inserted into the Frame.
When you would like to rename an object with SimTalk commands, you can use
isNameUnique to find out in advance, if the identifier is already assigned to an object within
the surrounding Frame to prevent a runtime error.
Parameter
The parameter NameToBeChecked of data type string designates the name that is to be checked.
Return Value
The return value has the data type boolean.
memUsage
Syntax: Path.memUsage → integer
The method memUsage computes how much memory the object designated by Path uses.
To show how much memory the individual objects in a Frame consume, you can also select
the menu command Show Memory Usage on the context menu in the Structure window
in the windows Show Inheritance and Show Structure.
Return Value
The return value has the data type integer.
Example: print.MySingleProc.memUsage;
moveToFolder
Syntax: Path.moveToFolder(Folder:Path) → object
The function moveToFolder moves the object designated by Path to the folder designated by Path.
Parameter
The parameter Folder of data type path designates the folder into which the object is to be moved.
Return Value
The return value has the data type object.
Example: .Resources.Exporter.moveToFolder(.Models);
openDialog
Syntax: Path.openDialog([CallOpenControl:boolean]) → boolean
The method openDialog opens the dialog window of the object designated by Path. The return value
true indicates that Plant Simulation succeeded in opening the dialog.
Parameter
The optional parameter CallOpenControl of data type boolean determines if Plant Simulation opens
the dialog the same way as double-clicking the icon does (true). It also executes any Open control
you entered.
When you enter false, Plant Simulation just opens the dialog without executing any open control .
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
Buffer.openDialog
.drill.openDialog(false)
basis.Materialflow.Source.openDialog(true)
self.~.~.&MyMethod.openDialog -- opens the dialog window of the method
-- MyMethod instead of executing it
print
Syntax: Path.print([PrinterName:string])
The method print prints the data of the object designated by Path, such as the name, configuration
of the failure generator, etc. For Method objects it also prints the source code of the Method; for
lists and tables their contents.
Parameter
The optional parameter PrinterName of data type string designates the name of the printer.
Example: MyLine.print;.MUs.Entity.print;
removeAllObservers
Syntax: Path.removeAllObservers → boolean
The method removeAllObservers deletes all observers of the object designated by Path.
Return Value
The return value has the data type boolean.
If inherited observers exist, the method returns false.
Example: MySingleProc.removeAllObservers;
Related Topics
Edit Observers
addObserver
removeObserver
removeObserver
Syntax: Path.removeObserver(AttributeName:string,Method:method/void) → boolean
The method removeObserver deletes the observer of the object designated by Path.
Parameters
• The parameter AttributeName of data type string designates the name of the observable attribute
or method.
• The parameter Method of data type method designates the name of the method that is going
to be executed.
When you enter void, Plant Simulation deletes all observers which point to a non-existing Method.
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
MySingleProc.removeObserver("occupied", "myMethod")
MySingleProc.removeObserver("occupied", &myMethod)
Related Topics
Edit Observers
Delete
addObserver
replace
Syntax: Path.replace(ObjectToBeReplaced:object)
The method replace replaces the object designated by the parameter of data type object with the
object designated by Path. Note that the object designated by Path has to be a class in the Class
Library.
When the object designated by the parameter object is a class, Plant Simulation merges both
classes. This means that all instances of the class to be replaced will be replaced with instances of
the replacing class and that the class to be replaced will be deleted.
When the object designated by the parameter object is an instance, Plant Simulation replaces this
instance with an instance of the replacing class.
Parameter
The parameter of data type object designates the object which you want to replace.
Example: .MaterialFlow.SingleProc.replace(.MaterialFlow.MySingleProc);
Related Topics
Replacing and Merging Objects with Drag-and-Drop
Load Object
Replacement Mode
RootFrame
Syntax: Path.RootFrame
The read-only attribute RootFrame returns the root frame of the Plant Simulation object designated
by Path as an object. If no root frame for the object exists, Plant Simulation returns VOID. This
applies to all classes that are not of type Frame.
The root frame is the Frame that is located highest up in the hierarchy of frames. The root frame is
always located in a folder.
Return Value
The return value has the data type object.
setName
The method setName sets the name of the object designated by Path to the expression designated
by the parameter of data type string.
You can enter a combination of letters, digits, and underscore (_) characters, for example MyStation,
MyStation1, My_Station_1. The name of an object cannot start with a digit, i.e., you cannot enter
1Station.
As opposed to assigning the name to the attribute Name, the method setName returns if assigning
the new name was successful or not.
Parameter
The parameter NewName of data type string designates the name.
Return Value
The return value has the data type boolean.
Example: MySingleProc.setName("MyStation");
Related Topics
Name
Rename
setPosition
Syntax: Path.setPosition(X:integer, Y:integer [,CallMoveInFrameControl:boolean])
The method setPosition sets the position of the icon of the object designated by Path in the Frame.
Parameters
• The parameter X of data type integer designates the x-coordinate of the object.
When you enter false, it does not call the move-in-frame control.
Example: MySingleProc.setPosition(15,400);
ParallelProc.setposition(80,200,true);
setXYWH
Syntax: Path.setXYWH(X:integer, Y:integer, Width:integer, Height:integer)
The method setXYWH sets the position on the screen of the dialog of the object designated by Path.
Parameters
• The parameter X of data type integer designates the x-coordinate of the dialog on screen.
• The parameter Width of data type integer designates the width of the dialog.
• The parameter Height of data type integer designates the height of the dialog.
The values width and height only apply for windows that you can resize, i.e., for
Object windows of the Frame, the Method, the Method Debugger, the QueueFile and
StackFile, the CardFile, the TableFile, and the Icon Editor.
Example: MySingleProc.setxywh(10,100,10,20);
frame1.setxywh(500,100,15,25);
Related Topic
getXYWH
updateDialog
Syntax: Path.updateDialog → boolean
The method updateDialog updates the contents of the open dialog window of the object designated
by Path, a task not automatically performed by Plant Simulation. The return value true indicates
a successful update.
Return Value
The return value has the data type boolean; true means that Plant Simulation succeeded in updating
the dialog.
Example: EventController.date := sysdate;
EventController.updateDialog;
Related Topic
Refresh
writeObject
Syntax: Path.writeObject(FileName:string[ ,SaveAsLibrary:boolean, Password:string]]) →
The method writeObject saves the object to a file into the active folder (compare setCurrentDirectory)
or into the folder whose absolute path you enter. This method applies to all classes and folders
in the Class Library.
Parameters
• The parameter FileName of data type string designates the name of the object file.
• The optional parameter SaveAsLibrary of data type boolean determines if Plant Simulation saves
the designated folder as a library (true) or as a normal object (false).
• The optional parameter Password of data type string sets the password Plant Simulation uses
when saving the designated file.
Return Value
The return value has the data type boolean.
Example: .Informationflow.CardFile.writeObject("MyCardFile.obj");
.Materialflow.ParallelProc.writeObject("mypp.obj");
.ApplicationObjects.Productionsystem.writeObject
("MyLibrary.lib", true);
Related Topics
Save Object As
setLibraryInfo
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topic
Attributes for Animating All Objects
closeImg
The method closeImg closes the Icon Editor of the object designated by Path.
Parameter
The parameter ApplyChanges of data type boolean determines if Plant Simulation accepts your
changes (true), or discards them (false).
Return Value
The return value has the data type boolean.
Related Topic
Icon Editor
createIcon
The method createIcon creates an icon for the object designated by Path.
For the newly created icon the setting Activate Transparency is activated and the background is filled
with the transparency color.
This method applies to the icon of the addressed instance not to icon of the object class.
Parameters
• The parameter IconName of data type string designates the name of the icon.
• The parameter Width of data type integer designates the width of the icon.
Return Value
The return value has the data type integer.
Example: MySingleProc.createIcon("state",20,30);
Related Topics
Icon Editor
New Icon
deleteIcon
delAniPoint
The method delAniPoint deletes an animation point in the active icon of the class of the object
designated by Path.
Parameter
The parameter AnipointNumber of data type integer designates the animation point. It passes the
number of the animation point that Plant Simulation returned, for example in the method setAniPoint.
Return Value
The return value has the data type boolean.
Related Topics
Add/Remove Animation Point
setAniPoint
delAniPoints
Syntax: Path.delAniPoints → boolean
The method delAniPoints deletes all animation points in the active icon of the class of the object
designated by Path. You might have to change the current icon of the class before.
Return Value
The return value has the data type boolean.
Example: .example.delAniPoints;
Related Topics
getAniPoints
setAniLine
Add/Remove Animation Line
Add/Remove Animation Polyline
deleteIcon
Syntax: Path.deleteIcon(IconName:string)
Path.deleteIcon(IconNumber:integer)
The method deleteIcon deletes the icon of the object designated by Path.
You can enter the number of the icon as a parameter of data type integer or the name of the icon
as a parameter of data type string.
This method applies to the icon of the addressed instance not to icon of the object class.
Example: MyParallelProc.deleteIcon("MyIcon");
MyParallelProc.deleteIcon(1);
Related Topic
createIcon
existsIcon
Syntax: Path.existsIcon(IconName:string) → boolean
The method existsIcon checks if the icon designated by the parameter of data type string or integer
exists (true) or does not exist (false).
You can enter the number of the icon as a parameter of data type integer or the name of the icon
as a parameter of data type string.
Return Value
The return value has the data type boolean.
Example: press.existsIcon("failed")
press.existsIcon(2)
getAniPoints
Syntax: Path.getAniPoints(AniPointTable:table)
The method getAniPoints returns all animation points and animation lines of the object designated
by Path and writes them into a table.
When you apply this method to any other object than to a Frame, this value is VOID.
Parameter
The parameter AniPointTable of data type table designates the name of the table into which the
method writes the values.
VOID for animation points or the x-coordinate of the next anchor point of
5
the animation line.
VOID for animation points or the y-coordinate of the next anchor point of
6
the animation line.
7 ...
Example: MyTrack.getAniPoints(MyAnipointsTable);
-- MyAnipointsTable is a TableFile
Related Topics
setAniLine
setAniPoint
Add/Remove Animation Line
Add/Remove Animation Polyline
getBoundingBox
Syntax: Path.getBoundingBox(byRef X:integer, byRef Y:integer, byRef Width:integer, byR
The method getBoundingBox returns the coordinates of the upper left corner of the bounding box,
and its width and height and assigns them to the local variables, whose names you pass.
Local Variables
• The local variable X designates the x-coordinate of the upper left corner of the bounding box.
• The local variable Width designates the width of the bounding box.
The bounding box is the rectangle that surrounds the icon. In the figure below the bounding box is the
green area around the rotated icon of the SingleProc.
This method applies to all objects, except for the Variable, the Comment, the folder and
the toolbar.
Example: MySingleProc.getBoundingBox(x,y,w,h);
getIconSize
Syntax: Path.getIconSize(byRef Width:integer, byRef Height:integer)
The method getIconSize returns the width and the height of the current icon of the object designated
by Path and assigns them to the local variables, whose names you pass.
Local Variables
• The local variable Width designates the width of the current icon.
Related Topics
setIconSize
Set Icon Size
getPixel
Syntax: Path.getPixel(byRef X:integer, byRef Y:integer) → boolean
The method getPixel returns the RGB value of a pixel denoted by the parameters.
This method applies to all objects, except for the Variable, the Comment, the folder and
the toolbar.
Parameters
• The parameter X of data type integer designates the x-coordinate of the pixel.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
var rgb, red, green, blue: integer
rgb := MySingleProc.getPixel(1,1)
red := rgb mod 256
green := (rgb div 256) mod 256
blue := rgb div (256*256)
Related Topics
setPixel
Pick Color
Replace Color
getRefPoint
Syntax: Path.getRefPoint(byRef X:integer, byRef Y:integer)
The method getRefPoint returns the coordinates of the reference point of the object designated by
Path. It then assigns them to the local variables, whose names you enter.
Local Variables
• The local variable X designates the x-coordinate of the reference point.
Related Topics
setRefPoint
Set Reference Point
inheritPosition
Syntax: Path.inheritPosition
The method inheritPosition turns Inheritance of the position of the selected object on again and
places it at the same position in the Frame as the position of the object from which it was derived.
Example: MySingleProc.inheritPosition;
Related Topics
XPos
YPos
Inherit Position
inheritSizeAndOrientation
Syntax: Path.inheritSizeAndOrientation
The method inheritSizeAndOrientation turns Inheritance of the size and the orientation of the icon
of the selected object on again. It also sets the size and the orientation of the icon of the selected
object to the same values as the values of the size and the orientation of the icon of the object
from which it was derived.
Example: MySingleProc.inheritSizeAndOrientation;
Related Topics
ZoomX turnIcon
ZoomY ObjectAngle
mirrorX ObjectMirrored
mirrorY Inherit Size and Orientation
linkAniPoint
The method linkAniPoint assigns animation points between the Frame designated by Path and the
designated object located within that Frame.
Parameters
• The parameter AnimationpointNumber of data type integer designates the animation number of
the Frame.
• The parameter LinkTo of data type object designates the object located within that Frame.
• The parameter LinkToAnimationNumber of data type integer designates the animation number of
the object which you inserted into the Frame.
Return Value
The return value has the data type boolean.
You may have to change the active icons of the objects. If Plant Simulation did not succeed in
creating a connection because for example the number of the animation point is not valid or the
object is not located in the Frame, it returns false.
Related Topics
unlinkAniPoint
Link Animation Point
mirrorX
Syntax: Path.mirrorX
The method mirrorX mirrors the icon of the object designated by Path on the x-axis. This means that
Plant Simulation mirrors the icon vertically and thus reverses top and bottom.
Example: MySingleProc.mirrorX;
Related Topic
Mirror Vertically
mirrorY
Syntax: Path.mirrorY
The method mirrorY mirrors the icon of the object designated by Path on the y-axis. This means that
Plant Simulation mirrors the curved object horizontally and thus reverses left and right.
Example: MySingleProc.mirrorY;
Related Topic
Mirror Horizontally
moveAniPoint
Syntax: Path.moveAniPoint(AnimationpointNumber:integer, NewX1:integer, NewY1:integer [
The method moveAniPoint moves the animation point or the animation line of the object designed by
Path.
Plant Simulation does not break the link with the underlying object, but only moves the
animation point/line.
Parameters
• The parameter AnimationpointNumber of data type integer designates the number of the
animation point/line.
• The parameter NewX1 of data type integer designates its new x-coordinate.
If you move an animation line, the parameters integer and integer designate the first anchor point
of the animation line.
• Additional parameters of data type integer designate any remaining new coordinates.
Return Value
The return value has the data type boolean.
Example: .Materialflow.Buffer.moveAniPoint(3,15,25,35,35,15);
Related Topic
Move Animation Point
openImg
Syntax: Path.openImg
The method openImg opens the Icon Editor with the icon of the object designated by Path. If the
Icon Editor is already open, Plant Simulation prompts you to save your previous work. Only then
does it open the other icon. If you do not save the previous changes, the first icon will remain open
and the method will have no effect.
Example: MySingleProc.openImg;
table.openImg;
Related Topic
Import
Edit Icons
putIconToClipboard
Syntax: Path.putIconToClipboard(IconNumber:integer) → boolean
Path.putIconToClipboard(IconName:string) → boolean
The method putIconToClipboard opens the Windows clipboard and stores the current icon, designated
by the parameter of data type integer or string, of the object designated by Path in CF_BITMAP format.
Parameter
The parameter of data type integer or string designates the icon number or the icon name of the object.
This method may fail because:
• The Clipboard is locked by another application.
Return Value
The return value has the data type boolean.
The method returns true when the assignment was successful, false if it failed.
Example: MySingleProc.putIconToClipboard(3);
Related Topics
setCurrIconFromClipboard
Copy and Paste Area
resetIcon
Syntax: Path.resetIcon
The method resetIcon resets the icon of the object designed by Path to the state it had before you
rotated it.
Example: SingleProc1.resetIcon;
Related Topic
Reset Icon
saveIconToFile
The method saveIconToFile saves the icon of the object designed by Path as a file. The graphics
format is set by the file extension. Plant Simulation supports the graphics file formats .bmp, .png,
and .ppm.
Parameter
• The parameter IconName of data type integer designates the number of the icon.
Instead, you can also enter the name of the icon as a string.
• The parameter FileName of data type string designates the file name of the graphics file.
• The optional parameter FileFormat of data type string designates the file format of the graphics
file.
Plant Simulation returns false when saving the icon to a file failed.
Return Value
The return value has the data type boolean.
Example: sp1.saveIconToFile(3,"iconfile.png");
sp1.saveIconToFile("icon_name","iconfile.png");
Related Topic
Export Icon to File
setAniLine
Syntax: Path.setAniLine(X1:integer, Y1:integer, X2:integer, Y2:integer, ...) → integer
The method setAniLine adds a new animation line in the active icon of the class of the object
designed by Path.
As only the Frame can have several animation lines, Plant Simulation replaces the existing animation
line with the one you insert for all other objects.
Parameter
• The parameter X1 of data type integer designates the x-coordinate of the starting point of the
animation line.
• The parameter X2 of data type integer designates the x-coordinate of the end point of the
animation line.
Return Value
The return value has the data type integer.
Example: .Materialflow.Buffer.setAniLine(5,5,20,35,35,5); -- V-shaped line
Related Topics
getAniPoints
Add/Remove Animation Line
Add/Remove Animation Polyline
setAniPoint
Syntax: Path.setAniPoint(X:integer, Y:integer) → integer
The method setAniPoint adds a new animation point in the active icon of the class of the object
designed by Path.
Parameter
• The parameter X of data type integer designates the x-coordinate of the animation point.
Related Topics
setAniLine
getAniPoints
Add/Remove Animation Point
setCurrIconFromClipboard
Syntax: Path.setCurrIconFromClipboard(IconNumber:integer) → boolean
Path.setCurrIconFromClipboard(IconName:string) → boolean
The method setCurrIconFromClipboard opens the clipboard, reads the bitmap stored there and
converts it to the Plant Simulation format. Plant Simulation then assigns the bitmap to the icon
defined by the parameter of data type string, or the number defined by the parameter of data type
integer and sets it as the current icon of the object designed by Path.
Parameter
The parameter of data type string, or the number defined by the parameter of data type integer
designates the icon.
This method may fail because:
• The Clipboard is locked by another application.
This method applies to the icon of the addressed instance not to icon of the object class.
Return Value
The return value has the data type boolean.
The method returns true when the assignment was successful, false when it failed.
Example: MyFrame.setCurrIconFromClipboard(3);
MyFrame.setCurrIconFromClipboard("MyIcon");
Related Topic
Paste Objects
setIconFromFile
Syntax: Path.setIconFromFile(IconName:string, FileName:string) → boolean
Path.setIconFromFile(IconNumber:integer,FileName:string) → boolean
The method setIconFromFile sets the icon of the object designed by Path to a number and overwrites
the icon of the file with a graphics file.
This method applies to the icon of the addressed instance not to icon of the object class.
Parameter
• The parameter IconName of data type integer designates the number of the icon.
Instead, you can also enter the name of the icon as a string.
• The parameter FileName of data type string designates the file name of the graphic, which
overwrites the current icon.
The graphics file of the icon may be located in a folder of your choice. The method returns
false when it fails and does not make changes.
Return Value
The return value has the data type boolean.
Example: MySingleProc.setIconFromFile(3,"outOfOrder.gif");
MySingleProc.setIconFromFile("failed","C:\graphics\outOfOrder.gif");
Related Topic
Import
setIconSize
Syntax: Path.setIconSize(Width:integer, Height:integer)
The method setIconSize sets the size, i.e., the width and the height of the current icon of the object
designated by Path.
Parameters
• The parameter Width of data type integer designates the width of the current icon.
Related Topics
getIconSize
Set Icon Size
setPixel
Syntax: Path.setPixel(X:integer, Y:integer, RGB:integer) → integer
The method setPixel sets the pixel of the point of the icon denoted by the parameters.
Parameters
• The parameter X of data type integer designates the x-coordinate of the pixel of the icon
designated by Path.
• The parameter RGB of data type integer designates its color. You can set the RGB values of the
color with the method makeRGBValue. Since all objects of the same class share their icons,
Plant Simulation changes the pixel in the class and in all derivatives.
This method applies to the icon of the addressed instance not to icon of the object class.
Return Value
The return value has the data type integer.
This method applies to all objects, except for the Variable, the Comment, the folder, and
to the toolbar.
Related Topics
getPixel
Replace Color
setRefPoint
Syntax: Path.setRefPoint(X:integer, Y:integer)
The method setRefPoint sets the position of the reference point of the object designated by Path.
Parameters
• The parameter X of data type integer designates the x-coordinate of the reference point.
This method applies to the icon of the addressed instance not to icon of the object class.
Example: MySingleProc.setRefPoint(15,20);
Related Topics
Set Reference Point
getRefPoint
turnIcon
Syntax: Path.turnIcon
Path.turnIcon(Angle:real)
The method turnIcon rotates the icon of the object designed by Path 90 degrees clockwise.
Parameter
You can also enter the number of degrees by which the icon is rotated as the parameter of data
type real. Enter positive number to rotate the icon clockwise. Enter a negative number, to rotate it
counterclockwise.
For the length-oriented objects with activated Curve mode the method turnIcon only
affects the icon of the object. If you want to rotate the curved object, you have to use
the method rotate and specify an angle.
Related Topic
Rotate Icon
rotate length-oriented objects
unlinkAniPoint
The method unlinkAniPoint breaks the link between two animation points between a Frame and an
object located in the Frame. It may be necessary to change the active icons of the objects.
Parameter
The parameter AnimationpointNumber of data type integer designates the number of the animation
point in the Frame.
Return Value
When no link was canceled or when the value was located outside of the valid range, the method
returns false. If it succeeded in canceling the link, it returns true.
Example: current.unlinkAniPoint(1);
Related Topics
linkAniPoint
Most of the objects provide these methods for querying their location, their predecessor, and their
successor:
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Location/ ~
Syntax: Path.Location/~
The read-only attribute Location, for which you can also type the tilde ~, returns the object located
directly above the object designated by Path in the hierarchy. The location of the MU is the object
on which it is currently located. All other objects return the Frame in which they are located as
the location.
Return Value
The return value has the data type object.
Related Topics
Open Location in the dialog of the objects
NumPred
Syntax: Path.NumPred
The read-only attribute NumPred returns the number of predecessors of the object designated by
Path.
Return Value
The return value has the data type integer.
Related Topics
Show Predecessors
NumPred of the TwoLaneTrack
NumSucc
Syntax: Path.NumSucc
The read-only attribute NumSucc returns the number of successors of the object designated by Path.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
if ParallelProc.NumSucc > 1
...
-- more than one successor
end
Related Topic
Show Successors
NumSucc of the TwoLaneTrack
pred
Syntax: Path.pred → object
Path.pred([PredecessorNumber:integer]) → object
The method pred returns the n-th predecessor of the object designated by Path.
Parameter
The optional parameter PredecessorNumber of data type integer designates the number of the
predecessor.
Return Value
When the n-th predecessor of the object is an Interface, the method does not return the
Interface itself, but the predecessor of the Interface. If this successor in turn is another
Interface, Plant Simulation follows it until it reaches a material flow object, which can
receive MUs.
When the n-th predecessor of the object is a Frame, Plant Simulation does not return the Frame
itself, but the predecessor of the Interface inserted into this Frame.
Related Topic
Show Predecessors
pred of the TwoLaneTrack
predConnector
NumPred
predConnector
The method predConnector returns incoming connections joined directly to the object designated by
Path. Note that adding and deleting connections may change the index number of a connection.
Parameter
The optional parameter PredecessorNumber of data type integer designates the number of the
predecessor.
Return Value
The return value has the data type object.
The method returns VOID if the connection does not exist.
Related Topic
Show Predecessors
predConnector of the TwoLaneTrack
succ
Syntax: Path.succ → object
Path.succ([SuccessorNumber:integer]) → object
The method succ returns the n-th successor of the object designated by Path.
Parameter
The optional parameter SuccessorNumber of data type integer designates the number of the
successor.
Return Value
The return value has the data type object.
Example: @.move(ParallelProc.succ(3));
When the n-th successor of the object is an Interface, the method does not return the
Interface itself, but the successor of the Interface. If this successor in turn is another
Interface, Plant Simulation follows it until it reaches a material flow object, which can
receive MUs.
When the n-th successor of the object is a Frame, Plant Simulation does not return the Frame itself,
but the successor of the Interface inserted into this Frame.
If an Interface has a single successor, this successor is uniquely identified and Plant Simulation uses
it independently of the Exit strategy of the Interface.
If an Interface has several successors, Plant Simulation determines the successor utilizing its Exit
strategy. When you selected a blocking Exit strategy, Plant Simulation determines the successor no
matter if this successor can receive an MU at the moment or not. When you selected a non-blocking
Exit strategy, Plant Simulation tries to determine the next successor, which can receive MUs,
according to the selected Exit strategy. If no successor can receive an MU, the method returns
VOID. The successor, which will be able to receive MUs next cannot be determined at this point in
time. This does not apply if there is only one successor.
Related Topic
Show Successors
succ of the TwoLaneTrack
succConnector
NumSucc
succConnector
Syntax: Path.succConnector → object
Path.succConnector([SuccessorNumber:integer]) → object
The method succConnector returns outgoing connections joined directly to the object designated
by Path via the successor number. Note that adding and deleting connections may change the
index number of a connection.
Parameter
The optional parameter SuccessorNumber of data type integer designates the number of the
successor.
Return Value
The return value has the data type object.
The method returns VOID if the connection does not exist.
Example: MyTrack.succConnector.deleteObject;
-- delete the connector to the succeeding object
Related Topic
Show Successors
succ
succConnector of the TwoLaneTrack
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
childNo
The method childNo returns the number designated by the parameter of data type integer in the list
of children (instances) of the object designated by Path. You can query the size of the list with the
method NumChildren.
Return Value
The return value has the data type object.
Related Topic
Instance
Class
Syntax: Path.Class
The read-only attribute Class returns the class in the Class Library from which the object designated
by Path was derived or instantiated, possibly over several levels.
Compare this example: We copied the object Frame three times and named it Frame1, Frame2,
and Frame3. Then, we insert Frame1 into Frame2, and Frame2 into Frame3. When we call
.Frame3.Frame2.Frame1.Class the result will be.Frame1 because .Frame1 is the object in the Class
Library from which .Frame3.Frame2.Frame1 was derived.
When you use the method for an instance of an object, Plant Simulation moves up in the inheritance
structure until it reaches an object in the Class Library. It then opens this object.
Return Value
The return value has the data type object.
Related Topics
Class
Open Class in the dialog of the objects
Go to Class in the dialog of the objects
origin
The method origin accesses the object from which the object designated Path was derived most
recently.
Compare this example: We copied the object Frame three times and named it Frame1, Frame2, and
Frame3. Then, we insert Frame1 into Frame2, and Frame2 into Frame3.
Related Topics
Show Origin in the class library
Open Origin in the dialog of the objects
Go to Origin in the dialog of the objects
typeOf
Syntax: Path.typeOf(ObjectToBeCompared:object) → boolean
The method typeOf returns if the objects designated by Path and by ObjectToBeCompared
designated by the parameter of data type object have the same class type. It returns true if they are
of the same class, false if they are not.
Return Value
The return value has the data type boolean.
Example: print station1.typeOf(station2);
-- returns true if each station is of type SingleProc
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Homee ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
getAttribute
Syntax: Path.getAttribute(AttributeName:string [,byRef Inherited:boolean]) → any
The method getAttribute returns the value of an attribute of the object designated by Path.
Parameters
• The parameter AttributeName of data type string designates the value of the attribute.
• When you assign a local variable of data type boolean is to the optional parameter, Plant
Simulation assigns true to this variable if the attribute designated with string inherits its value,
false if it does not inherit the value.
Return Value
The return value has the data type any.
Example: -- SimTalk 2.0 notation
var b: boolean
print MySingleProc.getAttribute("label", b)
print b -- the return value true means that the attribute is inherited,
-- the return value false that it is not inherited
Related Topics
getSubAttribute
putAttributeNamesIntoTable
setAttribute
setSubAttribute
isNameUnique
getSubAttribute
Syntax: Path.getSubAttribute(AttributeName:string, SubAttributeName:string [,Inherited
The method getSubAttribute returns the value of a subattribute of an attribute of the object designated
by Path.
Parameters
• The parameter AttributeName of data type string designates the attribute.
• The parameter SubAttributeName of data type string designates the value of the sub-attribute.
• The optional parameter Inherited of data type boolean determines if the method ignores the
value, which you enter as the parameter of data type boolean, and returns, if the attribute is
inherited (true) or not (false).
If you specify a third, optional parameter of data type boolean, the method ignores the value, which
you enter as the parameter of data type boolean, and it returns, if the attribute is inherited (true) or
not (false).
Return Value
The return value has the data type any.
Example: -- SimTalk 2.0 notation
var b: boolean
print MySingleProc.getSubAttribute
("ProcTime","Type", b)
print b -- the return value true means that the attribute is inherited,
-- the return value false that it is not inherited
Related Topics
getAttribute
putAttributeNamesIntoTable
setAttribute
setParam
setSubAttribute
putAttributeNamesIntoTable
Syntax: Path.putAttributeNamesIntoTable(Table:table [,IncludeUserDefinedAttribute:bool
The method putAttributeNamesIntoTable writes the names and the data types of all attributes of the
object designated by Path into a table.
If you do not specify the optional parameters, the method does not return the read-only
attributes.
Parameters
• The parameter Table of data type table designates the table.
• The optional parameter IncludeMethods of data type boolean determines if Plant Simulation not
only writes the names of the attributes into the table but also those of the methods and of the
read-only attribute (true). When the parameter IncludeUserDefinedAttribute is true as well, Plant
Simulation also writes the names of the user-defined methods and read-only attributes into
the table.
• The optional parameter Language of data type integer sets the language in which Plant
Simulation shows the names of the attributes. 0 designates German, 1 designates English.
When you do not enter this parameter, Plant Simulation shows the names of the attributes in
the language of the model.
Example: MySingleProc.putAttributeNamesIntoTable(MyTable);
Related Topics
getAttribute language
getSubAttribute userInterfaceLanguage
setAttribute isNameUnique
setSubAttribute
setAttribute
Syntax: Path.setAttribute(AttributeName:string, Value:any)
The method setAttribute sets the value of an attribute of the object designated by Path.
Parameters
• The parameter AttributeName of data type string designates the attribute.
Example: MySingleProc.setAttribute("ProcTime",5);
Related Topics
getAttribute
getSubAttribute
putAttributeNamesIntoTable
setSubAttribute
isNameUnique
setSubAttribute
The method setSubAttribute sets the value of a sub-attribute of an attribute of the object designated
by Path.
The method setSubAttribute sets the sub-attribute designated by the parameter string of the attribute
designated by the parameter string to the value designated by the parameter of data type any of the
object designated by Path.
Parameters
• The parameter AttributeName of data type string designates the attribute.
• The parameter Value of data type any designates the value of the sub-attribute.
Example: MySingleProc.setSubAttribute("ProcTime","Type","uniform");
Related Topics
getAttribute
getSubAttribute
putAttributeNamesIntoTable
setAttribute
setParam
isNameUnique
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
createAttr
Syntax: Path.createAttr(AttributeName:string,DataType:string) → boolean
The method createAttr creates a user-defined attribute for the object designated by Path.
Parameters
• The parameter AttributeName of data type string designates the name of the user-defined
attribute.
• The parameter DataType of data type string designates its data type.
The attribute will be propagated to all of its instances. Plant Simulation returns false if the new
name or the data type are not valid.
Return Value
The return value has the data type boolean.
Example: MySingleProc.createAttr("lotsize","integer");
MySingleProc.createAttr("inventoryNo","string");
Example: @.createAttr("Paint","boolean");
Related Topics
Tab User-defined
Create a User-defined Attribute During the Simulation
New
deleteAttr
Syntax: Path.deleteAttr(AttributeName:string) → boolean
The method deleteAttr deletes the user-defined attribute of the object designated by Path.
Parameter
The parameter AttributeName of data type string designates the user-defined attribute.
Note that you can only delete user-defined attributes for the object for which you created them
and for which they are not inherited. Plant Simulation deletes the user-defined attribute from all
instances of the object.
Return Value
The return value has the data type boolean.
Example: .MUs.Entity.deleteAttr("lotsize");
Example: @.deleteAttr("Paint");
Deleting an object will automatically also delete all of its user-defined attributes.
Related Topics
Tab User-defined
Create a User-defined Attribute During the Simulation
Delete
getAttrName
The method getAttrName returns the name of a user-defined attribute of the object designated by
Path.
Parameter
The parameter AttributeNumber of data type integer designates the name of the user-defined
attribute. Plant Simulation shows an error message when the allowed index range is exceeded.
Return Value
The return value has the data type string.
Related Topics
Tab User-defined
New
getAttrNo
The method getAttrNo returns the index number of the user-defined attribute of the object designated
by Path.
Parameter
The parameter AttributeName of data type string designates the name of the user-defined attribute.
Plant Simulation returns 0 when no user-defined attribute with the name designated by the parameter
of data type string exists.
Return Value
The return value has the data type integer.
Related Topics
Tab User-defined
New
getAttrType
The method getAttrType returns the data type (integer, string, list, table, etc.) of the user-defined
attribute of the object designated by Path.
Parameter
The parameter AttributeNumber of data type integer designates the user-defined attribute.
Return Value
Related Topics
Tab User-defined
New
getAttrValue
Syntax: Path.getAttrValue(AttributeNumber:integer) → any
The method getAttrValue returns the value of the user-defined attribute of the object designated by
Path.
Parameter
The parameter AttributeNumber of data type integer designates the user-defined attribute. The data
type of the value depends on the type of the attribute.
Return Value
The return value has the data type any.
Example: print MySingleProc.getAttrValue(1);
Related Topics
Tab User-defined
New
NumAttr
Syntax: Path.NumAttr
The read-only attribute NumAttr returns the number of user-defined attributes of the object designated
by Path.
The first user-defined attribute has the number 1. If no user-defined attributes exist, Plant Simulation
returns 0.
Return Value
Related Topics
Tab User-defined
New
setAttrType
Syntax: Path.setAttrType(AttributeNumber:integer, DataType:string) → boolean
The method setAttrType sets the data type of the user-defined attribute of the object designated by
Path.
Parameters
• The parameter AttributeNumber of data type integer designates the index number of the
user-defined attribute.
• The parameter DataType of data type string designates its data type: boolean, integer, real,
string, object, table, list, stack, queue, time, money, length, weight, speed, acceleration, date,
dateTime, and randtime.
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
var index: integer
index := MyStore.getAttrNo("Sale")
MyStore.setAttrType(index,"boolean")
Related Topics
Tab User-defined
New
setAttrValue
The method setAttrValue sets the value of the user-defined attribute of the object designated by Path.
Parameters
• The parameter AttributeNumber of data type integer designates the index number of the
user-defined attribute.
Return Value
The return value has the data type boolean.
Related Topics
Tab User-defined
New
unshare
The method unshare causes the user-defined attribute or Variable designated by Path to receive its
own copy of the list. This might be required after assigning a user-defined attribute or Variable, that
has the data type table, list, stack, or queue, to another user-defined attribute of the same data type.
It might also be required when user-defined attributes of data type table, list, stack, or queue, are
created when producing MUs with a Delivery table with a Source.
When assigning a user-defined attribute of data type table, list, stack, or queue, to another
user-defined attribute, Plant Simulation does not copy the list but creates a reference to that list. Both
user-defined attributes then share the same list, i.e., when one of the two user-defined attributes is
changed, this also changes the contents of the other one. If you do not desire this behavior, use the
method unshare for one of the two user-defined attributes. This results in the user-defined attribute
having its own copy of the list. This way both user-defined attributes are independent of each other.
This also applies to objects of type Variable of data type table, list, stack, or queue.
asString
Syntax: Path.AttributeName.asString
The method asString returns the relative path to the value of a user-defined attribute of the object
designated by Path. A normal access on the other hand returns an absolute path.
Return Value
The return value has the data type string.
Example: -- SimTalk 2.0 notation
Variable := "~.ProdMgr.prodplan"
print Variable
-- returns .facility.ProdMgr.prodplan
print &myVariable.asString
-- returns ~.ProdMgr.prodplan
Related Topic
Tab User-defined
AttrType
Syntax: Path.AttributeName.AttrType
The attribute AttrType sets the data type of a not-inherited user-defined attribute of the object
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MySingleProc.myAttribute.AttrType := "string";
Related Topics
Tab User-defined
New
getStatisticsTable
Syntax: Path.AttributeName.getStatisticsTable(TargetTable:table)
The method getStatisticsTable returns the statistics table of the user-defined attribute of the object
designated by Path and writes it into a table.
When the user-defined attribute is of data type string, the string values in the first column
always appear in lower case.
Parameter
The parameter TargetTable of data type table designates the name of the table.
Example: MySingleProc.MyAttribute.getStatisticsTable(MyStatisticstable);
Related Topics
Tab User-defined
Statistics Table
increment
Syntax: Path.AttributeName.increment
Path.<AttributeName.increment(Number:integer)
Path.<AttributeName.increment(Number:real)
The method increment without a parameter adds 1 to the user-defined attribute of the object
designated by Path.
The method increment with a parameter adds the number you specify as the parameter of data
type integer or real to the user-defined attribute.
The method only applies to numerical data types. It applies to the object Variable and
to user-defined attributes.
Example: MySingleProc.MyAttribute.increment;
-- accomplishes the same as MySingleProc.attrib := MySingleProc.attrib + 1;
MySingleProc.MyAttribute.increment(-1);
-- accomplishes the same as MySingleProc.attrib := MySingleProc.attrib - 1
Related Topic
Tab User-defined
InheritValue
Syntax: Path.AttributeName.InheritValue
The attribute InheritValue sets if the value of the user-defined attribute of the object designated
by Path is inherited (true) or not (false). Activating InheritValue will also automatically activate
inheriting the data type.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MySingleProc.myAttribute.InheritValue := true;
Related Topics
Tab User-defined
New
Name
Syntax: Path.AttributeName.Name
The attribute Name sets the name of a not-inherited user-defined attribute of the object designated by
Path.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MySingleProc.myAttribute.Name := "MyNewName";
Related Topics
Tab User-defined
New
RandomSeed
Syntax: Path.AttributeName.RandomSeed
The attribute RandomSeed sets the seed value for the random number distribution of the user-defined
attribute of data type randtime designated by Path.
Related Topic
Simulating Random Processes
StatisticsActive
Syntax: Path.AttributeName.StatisticsActive
The attribute StatisticsActive sets if the user-defined attribute of the object designated by Path
collects statistics values (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MySingleProc.myAttribute.StatisticsActive := true;
Related Topics
Tab User-defined
Active
Some attributes are read-only, i.e., you can only get (query) their value. You can filter the displayed
attributes and methods with the buttons on the toolbar .
The filter shows the read-only attributes.
To view all of the methods and attributes of the selected object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source. You
can filter the displayed attributes and methods according to different criteria
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topics
General Attributes of All Objects
Attributes for Animating All Objects
Attributes for Controls of All Objects
Attributes of the Display Panel
This applies, for example, to the lists and tables on the tab Exit of the material flow objects, to the
tabs Exit Strategy and Entry Strategy of the FlowControl and to a number of other tables, which you
can open by clicking the button Open List/Open Table.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To set the value of an attribute of a list or table, you might, for example, type:
MySingleProc.Pause := true
To get the value of an attribute a list or table, you might, for example, type:
print SingleProc1.Pause
posit := MySingleProc.Cont.XPos
Coordinate3D
Syntax: Path.Coordinate3D
The attribute Coordinate3D sets the 3D coordinates of the object designated by Path in the 3D
Viewer no matter if it’s started or not. Plant Simulation 2D computes these real-coordinates using the
pixel coordinates in 2D, the scaling factor you entered, and the 3D origin. It shows the object with
these coordinates in the 3D Viewer.
Setting the attribute also changes the pixel coordinates (XPos and YPos) in 2D.
Data Type of Value You Can Assign
Related Topics
XPos
YPos
inheritPosition
Coordinate3D of the MUs
CreateIn3D
Syntax: Path.CreateIn3D
The attribute CreateIn3D sets if Plant Simulation creates the object in the 3D Viewer (true) or not
(false) that matches the object designated by Path in Plant Simulation 2D.
By default, we activated this feature for all simulation-relevant objects, such as the material flow
objects, the moving ob objects, the resources, and the tools.
The 3D Viewer can also show the icons of most of the objects, which are not relevant for 3D, such
as the information flow objects, in the 3D scene. To do so, double-click the icon of the respective
object in the Toolbox and select Tools > 3D. Then select the check box Create in 3D or use the
attribute CreateIn3D.
When you then insert an instance of this object into the 3D Scene, it shows the icon of the object. You
can then right-click the icon and select Open 2D Counterpart to open the dialog of the object in 2D.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MySingleProc.CreateIn3D := true;
Related Topic
3D
Label
Syntax: Path.Label
The attribute Label sets the label of the object designated by Path. You can type in letters, numbers,
blanks, and special characters.
You can use the label to display objects with the same functionality with the same identifier in the
Frame. The Name of the object, on the other hand, has to be unique!
Plant Simulation shows the label when you select Options > Show Object Labels on the General
ribbon tab of the Frame. You can change the default setting under File > Preferences > Modeling >
Show object labels.
The program shows the label which you enter for the objects Report, Dialog, AttributeExplorer and
Chart in the title bar of their display windows. If you do not enter a label, the title bar shows the
name of the object.
The same applies to a toolbar you add to the Toolbox. Select New > Toolbar, then select the toolbar
in the structure, press F2 and enter a Label into the dialog Rename.
Data Type of Value You Can Assign
You can assign a value of data type string.
Return Value
The return value has the data type string.
Example: print SingleProc1.Label;
SingleProc1.Label := "Lathe left";
Related Topic
Label
Name
Syntax: Path.Name
The attribute Name sets the name of the object designated by Path. The name has to be unique
within the Name Space of the Frame. Be aware that immediately after the name change, the object is
only going to respond to the new name!
You can enter a combination of letters, digits, and underscore (_) characters, for example MyStation,
MyStation1, My_Station_1. The name of an object cannot start with a digit, i.e., you cannot enter
1Station.
You cannot change the name of the objects EventController and Connector.
After renaming the object you can only address it under the new name.
Return Value
The return value has the data type string.
Example: print SingleProc1.Name;
SingleProc1.name := "drill";
Related Topics
Name
setName
isNameUnique
RootFolder
Syntax: Path.RootFolder
The attribute RootFolder sets if the anonymous identifier RootFolder takes this folder into account
when searching the Class Library. The attribute sets which folder Plant Simulation uses as the root
folder. Plant Simulation adds an upper-case R to the icon of the folder in the Class Library.
You can also set the attribute RootFolder in the dialog Show Attributes and Methods.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: .ApplicationObjects.Transport.RootFolder := true;
Related Topic
Set the Root Folder for Your Simulation Model
Selected
Syntax: Path.Selected
The attribute Selected selects the object designated by Path (true) or does not select it (false).
The attribute _3D.Selected selects the object designated by Path (true) in the 3D Viewer or does
not select it (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MySingleProc.Selected := true;
XPos
Syntax: Path.XPos
The attribute XPos sets the x-coordinate of the object designated by Path in the Frame into which you
inserted it. The zero point is located in the top left corner of the Frame window. The x-coordinates
increase towards the right hand side of the Frame window.
Setting the attribute also changes the coordinate in 3D.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MySingleProc.XPos := 0;
MySingleProc.YPos := 0; -- upper left corner
Related Topics
YPos
Coordinate3D
inheritPosition
YPos
Syntax: Path.YPos
The attribute YPos sets the y-coordinate of the object designated by Path in the Frame into which you
inserted it. The zero point is located in the top left corner of the Frame window. The y-coordinates
increase downward towards the bottom of the Frame window.
Setting the attribute also changes the coordinate in 3D.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Related Topics
XPos
Coordinate3D
inheritPosition
The objects provide these attributes for manipulating the icons of most objects:
CurrIcon, CurrIconNo, CurrIconTransparent, NumAnimationEvents, ObjectAngle, ObjectMirrored,
RotateAroundRefPoint, StatusWithIcons, ZoomX, and ZoomY.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topic
Methods for Animating All Objects
CurrIcon
Syntax: Path.CurrIcon
The attribute CurrIcon sets the name of the icon with which Plant Simulation shows the object
designated by Path.
Plant Simulation automatically sets upper and lower casing of the name of the icon.
To save memory and improve access speed, all places which use such an case-insensitive
string point to the same string in main memory. The visible and unexpected result is that
the first occurrence of the string defines how the string is written in terms of upper- and
lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
Related Topic
Name
CurrIconNo
Syntax: Path.CurrIconNo
The attribute CurrIconNo sets the number of the icon with which Plant Simulation shows the object
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Related Topic
Number
CurrIconTransparent
Syntax: Path.CurrIconTransparent
The attribute CurrIconTransparent makes the background of the Frame shine through the transparent
area of the icon of the object designated by Path, which we defined, around the icon proper of
the current icon of the object.
This method applies to the icon of the addressed instance, not to icon of the object class.
Related Topic
Activate Transparency
NumAnimationEvents
Syntax: Path.NumAnimationEvents
The attribute NumAnimationEvents sets the number of animation events per animation line of the
object designated by Path. It determines how often Plant Simulation draws the contents of the
object, while an MU is located on it.
It applies to the Buffer, the PlaceBuffer, and to the Frame for which you can define animation lines
instead of animation points to emulate a continuous, smooth movement of the MUs.
If several MUs with different speeds are located on the object, the first moving MU sets the intervals
between the animation events.
When you insert the length-oriented objects Track, TwoLaneTrack, Line, FootPath, Turnplate,
Turntable, AngularConverter, and Converter in icon mode, you also have to enter a number!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Example: MySingleProc.NumAnimationEvents := 3;
Related Topic
Set Animation Events
ObjectAngle
Syntax: Path.ObjectAngle
The attribute ObjectAngle sets the angle by which Plant Simulation rotates the icon of the object
designated by Path. Plant Simulation rotates the icon around the reference point by default. When
you deactivate Rotate around Reference Point, the upper left corner of the icon remains at the same
location in the Frame for all rotations. Rotating the object retains the existing zoom factor and the
mirrored state of the icon. Positive numbers designate a clockwise rotation, negative numbers a
counterclockwise rotation.
Related Topics
Rotate Icon
resetIcon
ObjectMirrored
_3D.Rotation for 3D objects
ObjectMirrored
Syntax: Path.ObjectMirrored
The attribute ObjectMirrored sets if the icon of the object designated by Path will be mirrored on
the y-axis.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topics
Rotate Icon
Mirror Vertically
Mirror Horizontally
resetIcon
ObjectAngle
_3D.Rotation for 3D objects
RotateAroundRefPoint
Syntax: Path.RotateAroundRefPoint
The attribute RotateAroundRefPoint activates (true) or deactivates (false) if Plant Simulation uses
the reference point of the icon of the object as the center of rotation and as the center for zooming
the icon in the Frame.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Rotate around Reference Point
StatusWithIcons
Syntax: Path.StatusWithIcons
The attribute StatusWithIcons sets if Plant Simulation shows the different state icons of the object
designated by Path during the animation (true) or deactivates it (false). When you deactivate it, the
object displays its state as a colored dot in the LED display along the top border of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Use State Icons
ZoomX
Syntax: Path.ZoomX
The attribute ZoomX sets the zoom factor for the x-coordinate of the icon of the object designated
by Path. You can enter a value between 0 and 100. Note that the value 1.0 designates the original
size of the icon.
Zooming the icon of the object on the x-axis applies to the original, unrotated position
of the object.
Related Topic
Double Size of Icon
ZoomY
Syntax: Path.ZoomY
The attribute ZoomY sets the zoom factor for the y-coordinate of the icon of the object designated
by Path. You can enter a value between 0 and 100. Note that the value 1.0 designates the original
size of the icon.
Zooming the icon of the object on the y-axis applies to the original, unrotated position
of the object.
Related Topic
Halve Size of Icon
The objects provide some or all of these attributes to access control methods:
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
AvailableCtrl
Syntax: Path.AvailableCtrl
The attribute AvailableCtrl designates a Method object, which Plant Simulation calls, whenever the
state of the Exporter or the Worker changes to available. Within the interaction method you can use
the anonymous identifier ? to access the object that triggered the interaction method.
Example: -- SimTalk 2.0 notation
MyExporter.AvailableCtrl := &myAvailableCtrl
Related Topic
Available control
ChangePathCtrl
Syntax: Path.ChangePathCtrl
The attribute ChangePathCtrl designates a Method object, which Plant Simulation calls:
• When the name of a Folder or a Frame changes. The control is called for all objects contained in
the Folder or Frame. The anonymous identifier @ points to the renamed object.
• When you move a Folder or a Frame. The control is called for all objects contained in the Folder
or Frame.
Within the Method you can access the moved object with the anonymous identifier question
mark (?).
Not each Move action actually moves the object. When you move an object from one
Frame to another, Plant Simulation deletes the object from its source Frame and
creates a new object in the target Frame. When you enter an empty string ("") as
location, Plant Simulation interprets this as the top level in the hierarchy of objects, as
the object basis.
Parameters
The program passes three parameters to the Method that is called:
• The parameter PreviousLocation of data type string designates the previous location of the object.
• The parameter NewLocation of data type string designates the new location of the object.
• The parameter ManualChange of data type boolean indicates if you change the path of the
object manually (true) or with a Method (false).
print oldPath
print newPath
print manually
Related Topic
Change path control MyPlantAnytown.spp
CloseCtrl
Syntax: Path.CloseCtrl
The attribute CloseCtrl designates a Method object. Plant Simulation calls it, when you close the
object window.
Parameter
For list objects Plant Simulation passes the parameter ChangedListWindow of data type boolean to
the Method that is called. This parameter shows if the contents of the list window has changed or not.
Data Type of Value You Can Assign
You can assign a value of data type method.
Related Topic
Close control
ConnectCtrl
Syntax: Path.ConnectCtrl
The attribute ConnectCtrl designates a Method object. The program calls it, when you connect two
objects with a Connector and when you delete the connection between two objects.
When you insert a Connector, Plant Simulation first calls the Connect control for the
Connector before calling the Connect controls for the objects you are connecting.
When you delete a Connector, Plant Simulation first calls the Connect control for the connected
objects before calling Destructor control.
Parameters
The program passes three parameters to the Method that is called:
• The parameter ConnectionStart of data type object designates the source object at which the
connection starts.
• The parameter ConnectionEnd of data type object designates the target object where the
connection ends.
Related Topic
Connect control
ConstructorCtrl
Syntax: Path.ConstructorCtrl
The attribute ConnectCtrl designates a Method object. Plant Simulation calls it, when you duplicate,
derive, or instantiate the object (i.e., insert it into a Frame or a simulation model).
If you declare the constructor control with the optional parameter onCreate3D of data type boolean,
the constructor control will not only be called for the events described above with false, but a
second time when the 3D part of an object is created. In this case the parameter is true.
The object already exists, when Plant Simulation calls the Constructor control.
Related Topic
Constructor control
DestructorCtrl
Syntax: Path.DestructorCtrl
The attribute DestructorCtrl designates a Method object. Plant Simulation calls it when you delete
the object. When a Frame contains Sub-Frames and objects, Plant Simulation will call Destructor
controls in these Frames as well. When the Destructor control of the object is called, the object still
exists. Plant Simulation calls a Connect control before it calls a Destructor control.
Data Type of Value You Can Assign
You can assign a value of data type method.
Related Topic
Destructor control
DragDropCtrl
Syntax: Path.DragDropCtrl
The attribute DragDropCtrl designates a Method object. Plant Simulation calls it for the object, which
you drag onto another object and drop it there. The dropped object can be an object or text.
Parameter
Plant Simulation passes the parameter PathOfDroppedObject of data type string to the called method,
which contains the path of the dropped object.
A drag-and-drop control might look like this:
Related Topic
Drag-and-drop control
FailCtrl
Syntax: Path.FailCtrl
The attribute FailCtrl designates a Method object. Plant Simulation calls it, whenever the Failed state
of the object changes. You can change the state in the dialog window of the object by selecting Failed
or by assigning the value true or false to the attribute Failed. Within the control you can use
the anonymous identifier question mark ? to access the object which triggered the control.
Parameters
The program passes two optional parameters to the Method that is called:
• The optional parameter FailureStartEnd of data type boolean indicates if the failures starts (true)
or ends (false).
• The optional parameter FailureProfileName of data type string designates the name of the failure
profile that caused the failure.
Provided the fail control declares both parameters, it will not only be called when the
object changes to the failed-state or when the failed-state ends, but also each time
when a failure profile is failed or when the failure is removed.
Let’s say failure profile 1 is already failed and then you also fail failure profile 2 in addition, then
the fail control will still be called although the object remains in the failed-state.
A fail control, which does not expect a parameter or only expects a single parameter,
will only be called, when the state of the object actually changes, meaning it will not be
called when another failure profile is already failed. A fail control, which expects the
name of the failure profile as the second parameter, will, by contrast, always be called
when a failure profile is failed or when the failure is removed.
Related Topic
Fail control
InitCtrl
Syntax: Path.InitCtrl
The attribute InitCtrl designates a Method object. Plant Simulation calls it once at the beginning of the
simulation run during the init phase. The method may, for example, initialize important data structures.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
Transporter.InitCtrl := &myInitCtrl
Related Topics
Init control of the Transporter
Init control of the EventController
MoveInFrameCtrl
Syntax: Path.MoveInFrameCtrl
The attribute MoveInFrameCtrl designates a Method object. Plant Simulation calls when the object
actually changes the position in the Frame into which you inserted it.
Parameters
The program passes four parameters to the Method that is called:
• The parameter XPrevious of data type integer designates the x-coordinate of the previous
position of the object in the Frame.
• The parameter YPrevious of data type integer designates the y-coordinate of the previous
position of the object.
• The parameter XNew of data type integer designates the x-coordinate of the new position of
the object.
• The parameter YNew of data type integer designates the y-coordinate of the new position of
the object.
Within the Method you can access the moved object with the anonymous identifier question mark (?).
A move-in-frame control might look like this:
Example: -- SimTalk 2.0 notation
param x,y,nx,ny: integer
print "x:",x," y:",y," nx:",nx," ny:",ny
Related Topic
Move-in-frame control
MoveToFolderCtrl
Syntax: Path.MoveToFolderCtrl
The attribute MoveToFolderCtrl designates a Method object. Plant Simulation calls it when you move
the object from a folder or a Frame to a different folder.
Parameters
The program passes three parameters to the Method that is called:
• The parameter PreviousLocation of data type string designates the previous location (Frame or
folder) of the object.
• The parameter NewLocation of data type string designates the new location of the object.
• The parameter ManuallyMoved of data type boolean shows the user if the object is manually
moved to a folder (true) or with a Method (false).
Within the Method you can access the moved object with the anonymous identifier question mark (?)
and the new location with the anonymous identifier @.
Related Topic
Move-to-folder control
NotAvailableCtrl
Syntax: Path.NotAvailableCtrl
The attribute NotAvailableCtrl designates a Method object, which Plant Simulation calls, whenever
the state of the Exporter or the Worker changes to not-available. Within the interaction method you
can use the anonymous identifier ? to access the object that triggered the interaction method.
Related Topic
Not-available control
OpenCtrl
Syntax: Path.OpenCtrl
The attribute OpenCtrl designates a Method object. Plant Simulation calls it, when you double-click
the object to open it. Then, the program does not open the dialog of object, but calls and executes
the source code of the open control.
If Plant Simulation cannot open the object any more because of an erroneous Method,
create another Method and open the object from there by employing the method
<object.openDialog.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
When you enter a user-defined attribute of data type method as the open control, and when this
Method is encrypted, you cannot open the respective object any longer. Only the open control
itself can still open the object.
To prevent the open control from being executed, hold down Alt while double-clicking the icon of
the object.
To prevent the open control from being executed, when you click the buttons Open Location or
Open Origin on the Home Ribbon Tab, hold down the Alt key, while you click one of the buttons.
To prevent the open control from being bypassed by holding down the Alt key, you can
use an encrypted attribute method as the open control.
If you want to remove the open control, you have to decrypt the Method beforehand. As you cannot
open the object in the regular way, you can accomplish this as follows:
• Decrypt the model as a whole, this also decrypts all open controls.
• Hold down Shift+Ctrl+Alt and double-click the object. This opens the Debugger for the open
control.
• Call the method decrypt. You might, for example, enter Frame5.OnOpen.decrypt(password);
When you enter a user-defined attribute of data type method which you encrypted,
you cannot delete or rename the attribute any longer. You have to decrypt the Method
beforehand.
Parameter
When you declare the Open control with a parameter of data type boolean, the value of the
parameter will be set to true, when the object is opened from a 3D window.
Data Type of Value You Can Assign
You can assign a value of data type method.
Related Topic
Open control
PauseCtrl
Syntax: Path.PauseCtrl
The attribute PauseCtrl designates a Method object. Plant Simulation calls it, whenever you
change the Paused state of the object, when you either select an entry in the drop-down list
if not current.unplanned
if current.pause
current.currIcon := "pause"
else
current.currIcon := "working"
end
Related Topic
Pause control
PermitDeleteCtrl
Syntax: Path.PermitDeleteCtrl
The attribute PermitDeleteCtrl designates a Method object. The Frame or the folder calls it, when
you attempt to delete the object for which you programmed the control. When the method returns
false, the program does not delete the object. When the method returns true, the program deletes the
object and calls a Destructor control method, provided you entered one.
The permit delete control only applies to the Frame and to the Folder.
Related Topic
Permit-delete control
PlausibilityCtrl
Syntax: Path.PlausibilityCtrl
The attribute PlausibilityCtrl designates a Method object. Plant Simulation calls it, when you click OK
or Apply in the dialog of the object or in the windows of list objects to apply the changes you made
there. At this point in time the Method checks if the entries are plausible or it interprets them.
Parameters for Lists and Tables
• When the plausibility control has no parameters Plant Simulation only calls it, when you close
the list or table after making a change. Plant Simulation also considers loading a file into a table
as a change. This way Plant Simulation can check the entry and display an error message if
the entry was wrong.
• When the plausibility control has two optional parameters of data type integer, Plant Simulation
also calls the control after you edited a cell.
• The parameter ColumnNumber of data type integer designates the column number of the
edited cell.
• The parameter RowNumber of data type integer designates the row number of the edited cell.
When you close the list or table, which you changed, or when you make any changes in any cell,
Plant Simulation calls the plausibility control with the values-1 for the column and -1 for the row.
Related Topic
Plausibility control
RelabelCtrl
Syntax: Path.RelabelCtrl
The attribute RelabelCtrl designates a Method object. Plant Simulation calls it, whenever you change
the Label of the object.
Parameters
The program passes three parameters to the Method that is called:
• The parameter CurrentLabel of data type string designates the current label of the object.
• The parameter NewLabel of data type string designates the new label.
• The parameter ManualRename of data type boolean indicates if the object is relabeled by the
user (true) or by assigning a value to the attribute Label (false).
Related Topic
Relabel control
RenameCtrl
Syntax: Path.RenameCtrl
The attribute RenameCtrl designates a Method object. Plant Simulation calls it, when you change the
Name of the object.
Parameters
The program passes three parameters to the Method that is called:
• The parameter CurrentName of data type string designates the current name of the object.
• The parameter NewName of data type string designates the new name of the object.
• The parameter ManualRename of data type boolean indicates if the object is renamed by the
user (true) or by assigning a value to the attribute Name (false).
The control will not be called when you insert the object into a Frame and then assign it
a different name.
Related Topic
Rename control
SelectCtrl
Syntax: Path.SelectCtrl
The attribute SelectCtrl designates a Method object. Plant Simulation calls it, when you click the
object with the left mouse button. Note that the program does not select the object. Instead the
Method you entered then has to take the appropriate actions, for example by opening the object, or
by confirming the selection with the attribute Selected, etc.
The select control only reacts on selecting an instance in a Frame in 2D. It neither reacts
on a selection in 3D nor on setting the attribute Selected.
Related Topic
Select control
UnplannedCtrl
Syntax: Path.UnplannedCtrl
The attribute UnplannedCtrl designates a Method object. Plant Simulation calls it, whenever the
Unplanned state of the object changes, i.e., whether the object is not scheduled to work during the
time, which you entered into the ShiftCalendar or whether it is scheduled to work.
You can change the state in the dialog of the object by selecting an entry in the drop-down list
Paused/Planned/Unplanned or by assigning another value to the attribute Unplanned.
Within the control you can access the object with the anonymous identifier ?.
Parameter
The optional parameter Length of data type real sets the length of the shift pause. If the length of
the shift pause is unknown, Plant Simulation passes -1, as well as when the control is called at
the end of the shift pause.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
print "Frame unplanned: ", current.unplanned
MySingleProc.unplanned := current.unplanned
if current.unplanned
current.currIcon := "unplanned"
else
if current.pause
current.currIcon := "pause"
else
current.currIcon := "working"
end
end
Related Topic
Unplanned control
All material flow objects share the methods described below. The sub-chapters about the objects list
additional methods for these objects.
A method:
• Gets information from an object and returns a value.
• Calculates a value.
• Starts one or several actions that control the behavior of the object.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter
of data type string. The expression (byRef X:integer), for example, designates a variable of
data type integer.
Instead of a constant value, you can also use a variable of the required type or a method that
returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topics
The material flow objects provide these methods for returning the state they are in:
bwBlockList, empty, endFailure, endFailureIn, endPause, endPauseIn, endSetupIn,
eraseFailureEvents, erasePauseEvents, exitBlockList, EntranceFree, exitFree, fwBlockList,
receptive, redraw, setDim, startFailure, startFailureIn, startPause, startPauseIn, and unblock.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
bwBlockList
The method bwBlockList returns the blocking list in the backward direction for the objects Line
and Track.
• If you specify the optional parameter BackwardBlockingList of data type table, the method writes
the objects contained in the Backward Blocking List into this list.
• If you do not specify the parameter, the method returns an array containing the objects contained
in the Contents list. The method returns an array containing the objects contained in the
Backward Blocking List. The array is one-dimensional and only contains the objects in the
blocking list. If you need the start times of the blockages, which are contained in the blocking
table, you can query them from the object with the attribute BlockingStarttime.
The TwoLaneTrack provides a Backward Blocking List for each of its two lanes,
i.e., for Lane A and for Lane B.
If you enter a certain position on the target object using the parameter of data type
length, the MU does not enter itself into the Forward/Backward Blocking List as Plant
Simulation cannot watch/observe at which point in time this position is available again.
In addition Plant Simulation does not enter an MU into the Forward/Backward Blocking List
when it is located on a moving Transporter.
Plant Simulation removes an MU, which is located on the loading space of a Container/Transporter,
from the Forward/Backward Blocking List when the Container/Transporter itself is moved.
Parameter
The optional parameter of data type table designates the name of the table, which can be a TableFile
or a local variable, into which the method writes the values.
Plant Simulation automatically generates the format of this table with two columns. Column 1 has
the data type object and contains all MUs that attempted to leave the succeeding object wanted to
move onto the object at its exit, i.e., were moving in a backward direction from the successor, but
could not. Column 2 contains the simulation time at which the MUs attempted to enter the object. The
number of rows matches the number of MUs in the blocking list.
Return Value
The return value has the data type any.
If you do not specify the optional parameter, the method returns an array containing the objects
contained in the Backward Blocking List list.
Example: MyTrack.bwBlockList(myBackwardBlocklist);
numAGV := myBackwardBlocklist.ydim;
print "Number of AGVs wanting to use the track:";
print numAGV;
Related Topics
Backward Blocking List
Check the Contents List of the Stations
empty
Syntax: Path.empty
Path[X:integer, Y:integer].empty → boolean
The method empty returns if an object is located on the object designated by Path (true) or not (false).
For objects with more than one station, such as the ParallelProc, you can use the method empty to
find out if MUs are located on a specific station (return value true) or not (return value false).
Parameters
• The parameter X of data type integer designates the x-coordinate of the processing station.
Return Value
The return value has the data type boolean.
Related Topic
Empty
endFailure
Syntax: Path.endFailure
The method endFailure terminates the failure of the object designated by Path and sets the attribute
Failed to false.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for removing the failure, you have to use the method <name
of station.failImp. import.
When you requested the service for removing the failure with the method <name of
station.failImp.import, you have to release the imported service, after the failure has been removed,
with the method <name of station.failImp. releaseExporters.
Example: MySingleProc.endFailure;
Related Topics
startFailure
startFailureIn
Failed
endFailureIn
Syntax: Path.endFailureIn(EndFailureIn:time)
The method endFailureIn terminates the failure of the object designated by Path.
The method sets the attribute Failed to false. The time interval has to be equal to or greater than zero.
In case the object does not have a failure profile yet, Plant Simulation creates a failure
profile with an availability of 100 percent.
When employing the method startFailureIn we recommend to deactivate the internal failure
generator by deactivating the check box Active.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for removing the failure, you have to use the method <name
of station.failImp.import.
When you requested the service for removing the failure with the method name of
station.failImp.import, you have to release the imported service, after the failure has been removed,
with the method name of station.failImp.releaseExporters.
Parameter
The parameter EndFailureIn of data type time designates the time after which the failure ends.
Example: station.endFailureIn(60); -- ends the failure in 1 minute
Related Topics
startFailure
startFailureIn
Failed
endPause
Syntax: Path.endPause
The method endPause ends the pause of the object designated by Path and sets the attribute
Pause to false.
Example: MySingleProc.endPause;
Related Topics
startPause
startPauseIn
Paused
endPauseIn
Syntax: Path.endPauseIn(EndPauseIn:time)
The method endPauseIn ends the pause of the object designated by Path.
The method sets the attribute Pause to false. The time has to be equal to or greater than zero.
Parameter
The parameter EndPauseIn of data type time designates the time after which the pause ends.
Example: MyTrack.endPauseIn(60);
Related Topics
startPause
startPauseIn
Paused
endSetupIn
Syntax: Path.endSetupIn(EndSetupIn:time)
Example: ParallelProc.endSetupIn(15:00.00);
Related Topic
Methods for Setting-Up the Material Flow Objects
eraseFailureEvents
Syntax: Path.eraseFailureEvents
The method eraseFailureEvents deletes failure events, which the methods startFailureIn, and
endFailureIn entered into the List of scheduled events in the EventController, for the object
designated by Path.
The method eraseFailureEvents deletes these events for the object. You can, for example, use the
method if you want to terminate an existing failure and delete the entered remove failure events at the
same time, as these would terminate the new failure too early.
Example: MySingleProc.eraseFailureEvents;
Related Topic
Failed
erasePauseEvents
Syntax: Path.erasePauseEvents
The method erasePauseEvents deletes pause events, which the methods startPauseIn, and
endPauseIn entered into the List of scheduled events in the EventController, for the object designated
by Path.
The method erasePauseEvents deletes these events for the object. You can, for example, use the
method if you want to terminate an existing pause and delete the entered remove pause events at the
same time, as these would terminate the new pause too early.
Example: MySingleProc.erasePauseEvents;
Related Topic
Paused
exitBlockList
The method exitBlockList returns the exit blocking list of the object designated by Path.
• If you specify the optional parameter of data type table, the method writes the objects contained
in the Exit Blocking List into this list.
• If you do not specify the optional parameter, the method returns an array containing the objects
contained in the Exit Blocking List. The array is one-dimensional and only contains the objects in
the blocking list. If you need the start times of the blockages, which are contained in the blocking
table, you can query them from the object with the attribute BlockingStarttime.
For objects that have more than one stations next to each other, such as the ParallelProc and the
Store, the blocking table also contains the position of the station for which a part is entered into
the table. If you need this information you still have to pass a table instead of using an array.
Parameter
The optional parameter ExitBlockingList of data type table designates the name of the table, which
can be a TableFile or a local variable, into which the method writes the values.
Plant Simulation automatically generates the format of this table with two columns. Column 1 has the
data type object and contains the MUs that unsuccessfully tried to exit the object. Column 2 contains
the simulation time at which the MUs attempted to enter the object.
For the ParallelProc Plant Simulation lists in the third and fourth column onto which processing station
the part wanted to move. The number of lines matches the number of MUs in the blocking list.
Return Value
If you do not specify the optional parameter, the method returns an array of data type object
containing the objects contained in the Exit Blocking List.
Example: ParallelProc.exitBlockList(myExitBlockList);
Related Topics
Exit Blocking List
Check the Contents List of the Stations
exitFree
Syntax: Path.exitFree → boolean
The method exitFree returns if the exit of the object designated by Path is not Blocked by an
MU/Transporter (true), or blocked (false) or if the maximum number of MUs is located on the object,
i.e., its capacity is exhausted or not.
Return Value
The return value has the data type boolean.
Example: print MyLine.exitFree;
print MyTrack.exitFree;
Related Topic
Exit locked
fwBlockList
The method fwBlockList returns the blocking list in the forward direction of the material flow object
designated by Path.
• If you specify the optional parameter ForwardBlockingList of data type table, the method writes
the objects contained in the Forward Blocking List into this list.
• If you do not specify the optional parameter, the method returns an array containing the objects
contained in the Forward Blocking List. The array is one-dimensional and only contains the
objects in the blocking list. If you need the start times of the blockages, which are contained in
the blocking table, you can query them from the object with the attribute BlockingStarttime.
For objects that have more than one stations next to each other, such as the ParallelProc and the
Store, the blocking table also contains the position of the station for which a part is entered into
the table. If you need this information you still have to pass a table instead of using an array.
If you enter a certain position on the target object using the parameter of data type
length, the MU does not enter itself into the Forward/Backward Blocking List as Plant
Simulation cannot watch/observe at which point in time this position is available again.
In addition Plant Simulation does not enter an MU into the Forward/Backward Blocking List
when it is located on a moving Transporter.
Plant Simulation removes an MU, which is located on the loading space of a Container/Transporter,
from the Forward/Backward Blocking List when the Container/Transporter itself is moved.
Parameter
The optional parameter of data type table designates the name of the table, which can be a TableFile
or a local variable, into which the method writes the values.
Plant Simulation automatically generates the format of this table with two columns. Column 1 has
the data type object and contains the MUs that unsuccessfully tried to move to the object. Column
2 contains the simulation time at which the MUs attempted to enter the object. For the object
ParallelProc the third and fourth columns hold the processing station the MU attempted to move. The
number of rows matches the number of MUs in the blocking list.
Return Value
The return value has the data type any.
If you do not specify the optional parameter, the method returns an array of data type object
containing the objects contained in the Forward Blocking List.
Example: MyTrack.fwBlockList(myForwardBlocklist);
numAGV := myForwardBlocklist.ydim;
print "Number of AGVs wanting to use the track:";
print numAGV;
Related Topics
receptive
Syntax: Path.receptive(MU:object) → boolean
The method receptive checks if the material flow object designated by Path can receive an MU
(true) or not (false).
The method receptive also works without MU. Note though that not all checks can be executed for
these objects: Converter, AngularConverter, Turntable, Turnplate, Pick-and-Place Robot, Assembly
station and TwoLaneTrack. For these objects the dimension of the MU is relevant. For MU instances
receptive returns true even when the station is not set up for the MU or when the station is not in the
correct position to receive the MU.
Parameter
The parameter MU of data type object designates the class or an instance of an MU.
Return Value
The return value has the data type boolean.
Example: print singleProc.receptive(.MUs.Entity:4320);
redraw
Syntax: Path.redraw
The method redraw updates the display of the MUs on the material flow object designated by Path.
The method also reevaluates the values of the Display Panel of the object and redraws the display
panel.
Example: MyLine.redraw;
Related Topic
Update the Display Panel
ResSetUp
Syntax: Path.ResSetUp → boolean
The read-only attribute resSetUp returns if the object designated by Path is Setting-Up and not failed,
not paused, or not stopped (true) or not (false).
Return Value
The return value has the data type boolean.
Related Topics
IsSetUpFor
setUpFor
Methods for Setting-Up the Material Flow Objects
setDim
The method setDim sets the dimension, i.e., the number of storage places of the material flow
object designated by Path.
Parameters
• The parameter XDim of data type integer designates the dimension on the x-axis.
• The parameter YDim of data type integer designates the dimension on the y-axis.
When you only enter the x-dimension, Plant Simulation automatically enters 1 for the Y-dimension.
Only the ParallelProc, the Store, and the Transporter provide this method.
Return Value
The return value has the data type boolean.
The method returns false, when the dimension could not be changed.
Example: ParallelProc.setDim(20,20);
Store.setDim(1000,1200);
.mus.transporter.setdim(50,30);
startFailure
Syntax: Path.startFailure
Path.startFailure(DurationOfFailure:time)
The method startFailure fails the object designated by Path. The method sets the attribute Failed
to true.
When you call the method startFailure with a parameter and the object does not have
a failure profile yet, Plant Simulation creates a failure profile with an availability of 100
percent.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for removing the failure, you have to use the method <name
of station.failImp.import.
When you requested the service for removing the failure with the method name of
station.failImp.import, you have to release the imported service, after the failure has been removed,
with the method <name of station.failImp. releaseExporters.
Parameter
The parameter DurationOfFailure of data type time sets the duration of the failure. The time interval
has to be equal to or greater than zero.
Example: MySingleProc.startFailure;
MySingleProc.startFailure(str_to_time("1:30.12"));
MySingleProc.startFailure(60); -- in 60 seconds
Related Topics
endFailure
endFailureIn
Failed
startFailureIn
Syntax: Path.startFailureIn(StartFailureIn:time)
In case the object does not have a failure profile yet, Plant Simulation creates a failure
profile with an availability of 100 percent.
When employing the method startFailureIn we recommend to deactivate the internal failure
generator by deactivating the check box Active.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for removing the failure, you have to use the method name
of station.failImp.import.
When you requested the service for removing the failure with the method name of
station.failImp.import, you have to release the imported service, after the failure has been removed,
with the method name of station.failImp.releaseExporters.
Parameter
The parameter StartFailureIn of data type time designates the time after which the failure starts.
Example: MySingleProc.startFailureIn(10);
Related Topics
endFailure
endFailureIn
Failed
startPause
Syntax: Path.startPause
Path.startPause(TimeSpan:time)
The method startPause pauses the object designated by Path. The method sets the attribute Pause
to true.
Parameter
The parameter TimeSpan of data type time designates the time after which, in relation to the
simulation time, the object returns to the non-paused state.
The time interval has to be equal to or greater than zero.
Example: @.startPause;
@.startPause(60);
Related Topics
endPause
endPauseIn
Paused
startPauseIn
Syntax: Path.startPauseIn(StartPauseIn:time)
Related Topics
endPause
endPauseIn
Paused
TimeUntilEntranceOpen
Syntax: Path.TimeUntilEntranceOpen → real
The read-only attribute TimeUntilEntranceOpen returns the time until the entrance of the object
designated by Path opens again after the recovery time has elapsed.
Return Value
The return value has the data type real.
Example: print ParallelProc.TimeUntilEntranceOpen;
unblock
Syntax: Path.unblock(MUorSorter:object)
The method unblock unblocks the object, which intends to move onto the object designated by Path.
This means that then the MU can enter the object designated by Path.
Parameter
The parameter MUorSorter of data type object can either be an MU or a Sorter. Make sure that you
only unblock an MU or a Sorter respectively, which are contained in the blocking list!
Example: -- SimTalk 2.0 notation
var blockList: table, n: integer
-- @,?: the object for which a pull control was called
?.fwBlockList(blockList)
n := 1
?.unblock(blockList[1,n]) -- n sets the line in the blockList, i.e.
-- the MU to be unblocked
The material flow objects provide these methods for accessing their Contents:
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
contentsList
The method contentsList returns the entire contents, i.e., all MUs located in the Contents list the
object designated by Path in an array.
• If you specify the optional parameter of data type table, the method writes the objects contained
in the Contents list into this list.
Plant Simulation automatically generates the format of the table, overwriting the previous format
and the previous contents.
• If you do not specify the parameter, the method returns an array containing the objects contained
in the Contents list.
Parameter
The optional parameter ContentsList of data type table designates the name of the table (a TableFile
or a local variable). Plant Simulation automatically generates the format of this table, and deletes
any existing format and contents of the table.
• SourceLine.contentsList(MyTableFile)
The point-oriented objects with a capacity of 1 part show the path in the list, i.e., the name and
the number of the current part. The data type of the columns is object.
• Buffer.contentsList(MyTableFile)
The point-oriented objects with a capacity of more than 1 part show the path in the list, i.e., the
names and the numbers of the parts, that are located on it. The capacity determines how many
parts it shows. The data type of the columns is object.
• MyStore.contentsList(MyTableFile)
The objects Store, Container, and Transporter, which can stack parts, show the stacked parts
in sub-tables. The identifier of the sub-table contains the number of stacked parts after the
underscore. To show the individual stacked parts in the sub-table, double-click the respective
cell in the contents list.
• The parallel station shows the path, i.e., the name and the number of the current parts in the
list. The position of the part on the table matches the position of the part in its x-y coordinate
system. The data type of the columns is object.
• MyLine.contentsList(MyTableFile)
The length-oriented objects Line, Track, and Transporter show the path in the contents table,
i.e., the names and the numbers of the current parts. In addition it shows the position of the
MUs on the object.
The column Object shows the path to the part, the column From shows the start position of
the MU, and the column To shows the end position in the length unit you selected under File
> Model Settings/Preferences > Units > Length. The number of rows matches the number
of MUparts located on the object. The data type of column 1 is object, of the second and third
column it is length.
• Cycle_NW.A.contentsList(MyTableFile)
The length-oriented object TwoLaneTrackshows the path, i.e., the name and the number of the
current part, in the contents table for lane A and lane B separately. In addition it shows the
position of the MUson the object.
• MyPortioner.contentsList(MyTableFile)
The fluid objects DePortioner and Portioner show the path of the MU in the list, i.e., the name and
the number of the part, which is emptied or filled. The column has the data type object.
• The fluid objects FluidSource, FluidDrain, Pipe, and Tank show the material that flows through
them. The column has the data type string.
• The fluid object Mixer shows the material in column 1 and the contained amount in column 2,
while the starting materials flow into it. Column 1 has the data type string, column 2 has the
data type real. As soon as the Mixer starts the mixing process, the contents list only shows the
product in column 1.
Return Value
The return value has the data type any.
If you do not specify the optional parameter, Plant Simulation returns an array containing all MUs
which are located on the object.
Example: machine.contentsList(myContentsList);
sumValue := contentsMachine.sumAttr("Value");
print "Total value in machine:";
print sumValue;
Related Topics
Contents
contentsList of the TwoLaneTrack
Check the Contents List of the Stations
deleteMovables
Syntax: Path.deleteMovables
The method deleteMovables deletes all MUs which are located on the object designated by Path.
If Path designates a Frame, the method deletes all MUs on all objects, which are located in the
Frame or in sub-Frames.
Example: ParallelProc.deleteMovables;
Related Topics
mu
Syntax: Path.mu([Index:integer]) → object
The method mu accesses all MUs whose booking point is located on the object designated by Path.
Parameter
When you enter the optional parameter Index of data type integer, Plant Simulation accesses the
MU designated by the parameter of data type integer. For a parameter greater than the number of
parts booked on the object, Plant Simulation returns VOID. When you do not enter the optional
parameter, Plant Simulation accesses the first MU.
For the object Buffer Plant Simulation accesses the MUs in the Buffer in the order in which
they entered the Buffer, independent of the Buffer type (Stack or Queue) you selected.
The method mu does not refer to the storage place of the MU in the Buffer, but is just a
counter for the MUs located in the Buffer. To access the next MU, which will exit the Buffer
according to the buffer type Stack or Queue, use the method Cont.
Return Value
The return value has the data type object.
Related Topics
Contents
muPart
The material flow objects provide the method setUpFor for setting them up, which you do on the
Tab Set-Up.
Also compare the methods endSetupIn and setUp.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
setUpFor
Syntax: Path.setUpFor(SetUpFor:any[ ,PerformSetup:boolean]) → boolean
The method setUpFor starts setting-up the object designated by Path for a part.
The required time depends on the Set-up time you entered for the object on the tab Times.
If the object cannot be set up at the current point in time, for example because it is failed,
Plant Simulation does not attempt to set the object up anew.
Parameter
• The parameter SetUpFor of data type any designates the MU for which the object is going
to set up:
o The parameter SetUpFor of data type object designates a specific MU instance for which the
object is going to set up.
o The parameter SetUpFor of data type object designates the MU class for which the object
is going set up.
o The parameter SetUpFor of data type string designates the type of MU for which the object
is going set up.
• The optional parameter PerformSetup of data type boolean determines if the object only sets the
current type of part (false ) or if the object actually sets-up (true ). When you do not pass the
parameter, Plant Simulation sets the station up, as if you had passed true.
Return Value
The return value has the data type boolean; false means that the object cannot be set up, for
example because it is failed.
Related Topics
Setting-up for
AutomaticSetup
IsSetUpFor
setUp
Within a production environment production resources such as machines, vehicles and workers
my fail for unpredictable reasons. For simulating failures, the production resources have a failure
generator whose settings you can select on the Tab Failures. Alternatively you can also define
failures with availability and MTTR (mean time to repair). In addition you can set between which
points in time ( Start and Stop ) these failures take place.
Failures may have different reasons, called failure profiles, which may overlap. A machine might,
for example, fail because a tool breaks or because a motor fails. Both reasons for the failure of
the production resource take place within different time intervals and require different repairing
durations. You can define the interval, the duration, the availability, the MTTR, the start and
stop time on the Tab Failures.
You can select a probability distribution for each of the times. Some distributions require additional
information.
Plant Simulation provides the methods createFailure, count, deleteFailure, getFailure, getTable and
setTable for defining several failures of the material flow objects.
The objects address failure profile methods as sub-methods of Failures.
Example: MyExporter.Failures.createFailure("NameOfNewFailure");
Also compare the Attributes for Defining Failures of the Material Flow Objects.
createFailure
Syntax: Path.Failures.createFailure(Name:string)
Path.Failures.createFailure(Name:string [,Availability/Interval:real/string, M
The method createFailure creates a new failure profile for the object designated by Path.
Parameters
• The parameter Name of data type string designates the name of failure profile.
• The optional parameter Availability / Interval designates the availability or the failure interval:
o To set the availability, pass a numerical value of data type real or integer.
o To set the type and the parameters of the distribution function for the failure interval, pass a
string, for example ("Uniform, 1:00, 2:30").
o To set the failure interval to a constant value, pass a value of data type time.
• The optional parameter MTTR / Duration designates the MTTR or the failure duration:
o When you set the availability with the parameter Availability above, this parameter sets the
MTTR. If not, it designates the failure duration. You can enter the MTTR as a numerical
value or as a string.
o When you designated the MTTR as a string, you can also enter the bounds, for example
("1:00, 0:05, 20:00").You can enter the failure duration as a numerical value or as a string.
o A numerical value sets a constant failure duration, a string sets the type and the parameters
of the distribution function.
• The optional parameter Mode of data type string sets the failure mode of the failure profile. If
you do not enter this parameter, the failure relates to the simulation time.
• The optional parameter Start of data type any sets the point in time of the first failure.
o To set a constant point in time, enter a numerical value. 0 designates that the point in time of
the first failure is determined by the failure interval.
o To set the type and the parameters of the distribution function, enter a string.
• The optional parameter Stop of data type any sets the point in time from with on no more failures
will be created for this failure profile.
o To set a constant point in time, enter a numerical value. 0 designates that Plant Simulation
creates failures infinitely.
o To set the type and the parameters of the distribution function, enter a string.
• The optional parameter Active of data type boolean sets if the failure profile is active (true)
or not active (false).
Example: MyPlaceBuffer.Failures.createFailure("NameOfNewFailure");
MyPlaceBuffer.Failures.NameOfNewFailure.Start := str_to_time("1:00:00");
-- no failures during the first hour
Related Topics
deleteFailure
New failure
List of Failure Profiles
count
The method count returns how many failure profiles the object designated by Path has.
Return Value
The return value has the data type integer.
deleteFailure
Syntax: Path.Failures.deleteFailure(FailureProfile:string)
The method deleteFailure deletes a failure profile of the object designated by Path.
Parameter
The parameter FailureProfile of data type string designates the name of failure profile.
Example: MyExporter.Failures.deleteFailure("NameOfFailureProfile");
Related Topics
createFailure
Delete failure
List of Failure Profiles
getFailure
Syntax: Path.Failures.getFailure(NameOrNumber:any)
The method getFailure returns a failure profile of the object designated by Path.
Parameter
The parameter NameOrNumber of data type any designates the name or the number of the failure
profile.
Example: -- SimTalk 2.0 notation
for var i := 1 to Machine.failures.count
Machine.failures.getFailure(i).Active := true
next
Related Topic
Tab Failures
List of Failure Profiles
getTable
Syntax: Path.getTable(Parameters:table)
The method getTable returns the parameters of the failure profiles, which you defined on the Tab
Failures.
The List of Failure Profiles looks like this:
Parameter
The parameter Parameters of data type table designates the TableFile into which the method writes
the values.
Example: MyMachine.Failures.getTable(FailuresTable);
Related Topic
setTable
setTable
Syntax: Path.setTable(FailuresTable:table)
The method setTable sets the failure profiles of the object designated by Path.
You can also define them on the Tab Failures.
The List of Failure Profiles looks like this:
Parameter
The parameter FailuresTable of data type table designates the TableFile in which you defined the
failure profiles.
Example: MyMachine.Failures.setTable(TableFile1);
Related Topic
getTable
The material flow objects provide the methods initStat and statistics for accessing the statistics values
they collected which they show on the Tab Statistics.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
initStat
Syntax: Path.initStat
The method initStat resets the statistics and starts collecting statistics anew. You can use the method
initStat if you do not want to include the statistics of the initial stage of the simulation run. You can
also reset the statistics at a later time. Plant Simulation will only collect data from that point on.
When you reset the statistics of an MU class with initStat, this also resets the statistics of
the instances.
statistics
Syntax: Path.statistics;
Path.statistics(Table:table_path)
Path.statistics(FileName:string[, CodePage:string])
The method statistics outputs the statistics of the object. When you do not enter a parameter, Plant
Simulation outputs the table to a table on screen.
Parameters
• Enter the parameter NameOfTable of data type table_path to write the data to that table.
• Enter the parameter FileName of data type string to write the table to that file. Plant Simulation
will overwrite existing entries.
If you specify a filename, you can use the optional parameter CodePage of data type string to
set the encoding you want to use: ANSI, UTF-8, or Unicode.
If you do not specify this parameter, the encoding UTF-8 is used.
Plant Simulation provides more statistics values than the table, which the method statistics
returns, provides.
Each row of the resource statistics table shows the statistical data for an object. This table provides
an overview of the entries on the table and their description:
standard deviation of a
setting-up process for which
WaSUExp_Delta StatWaitingSetUpExpDelta
Exporters were missing ( time
).
The product statistics table of the MUs shows the following values.
• If you query the statistics of an MU class, the values refer to the entire statistics collection period.
• If you query the statistics of an individual MU, the values refer to the lifetime of that MU.
number of existing MU
instances of this class with
Count product statistics on. The MUs statCount
may be located in different
Frame hierarchies ( integer ).
The length-oriented objects Line, Track, TwoLaneTrack, Turntable, and Transporter provide these
methods for creating and manipulating Sensors:
createSensor, deleteSensor, existsSensorID, id, sensorID, and sensorNo.
For the loading space of the Transporter, the dialog Show Attributes and Methods, which
you can open by pressing the F8 key, only shows the attributes and methods pertaining
to the selected type of loading space. If you select Track for example, the dialog only
shows the attributes and methods pertaining to the loading space of type Track, not those
pertaining to the loading space of type Store or Line.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topics
Attributes of the Sensors of the Length-Oriented Objects
Read-Only Attributes of the Sensors of the Length-Oriented Objects
createSensor
The method createSensor creates a new sensor for the object designated by Path. It then returns its
unique number. You can use this number to access the sensor.
Creating and manipulating sensors via SimTalk for the loading space of the Transporter
only works if you select the loading space Types Track or Line!
Parameters
The sensor itself is defined by these parameters:
• The parameter Position of data type real defines the position. The values you can enter for the
parameter of data type real depend on the type of position you enter, length or relative, for
the parameter string.
• The parameter Position of data type string designates the type of position length or relative.
• The parameter Control of data type method designates the name of the Method object that
the Sensor triggers.
• In SimTalk 2.0 you can enter the name of the method as a string, i.e., "myMethod" or you can
enter &myMethod.
• In SimTalk 1.0 you can enter the name of the method as a string, i.e., "myMethod" or you can
enter ref(myMethod).
• The optional parameter Front of data type boolean sets if the front of the MU is going to activate
the sensor (true) or not (false).
• The optional parameter Rear of data type boolean sets if the rear of the MU is going to activate
the sensor (true) or not (false).
• The optional parameter Destination of data type path sets sensor activation to Only when
Destination and enters the object, which you enter, as the Destination. When VOID is passed,
the setting will be Always.
• For the object TwoLaneTrack the optional parameter BothLanes of data type boolean sets if the
sensor will also be created on the other lane of this track, i.e., if the object creates a sensor
on both lanes.
• The optional parameter LightBarrierMode of data type boolean designates that a light-barrier is
going to activate the sensor ( true ) or not ( false ).
When you do not enter any parameters, Plant Simulation creates the sensor with these default
settings:
(0,"Length",VOID,true,false,VOID,false), i.e., the position is 0, does not trigger a method and
is activated by the front of the MU.
Return Value
The return value has the data type integer.
Example: TwoLaneTrack.B.createSensor(1,"Length","MyCtrl",true,false,VOID,false);
Related Topics
Sensors
New sensor
deleteSensor
deleteSensor
Syntax: Path.deleteSensor(SensorID:integer) → boolean
The method deleteSensor deletes the sensor from the object designated by Path.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Parameter
The parameter SensorID of data type integer designates the sensorID.
Return Value
The return value has the data type boolean.
Example: MyTrack.deleteSensor(2);
Example: .MUs.Transporter:1.deleteSensor(1);
mple:
Related Topics
Sensors
Sensor Delete
createSensor
existsSensorID
Syntax: Path.existsSensorID(SensorID:integer) → boolean
The method existsSensorID returns if a sensor exists (true ) or does not exist (false ) for the object
designated by Path.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Parameter
The parameter SensorID of data type integer designates the sensorID.
Return Value
The return value has the data type boolean.
Example: print MyLine.existssensorid(2);
Related Topics
Sensors
sensorID
id
Syntax: Path.Sensor.id → integer
The method id returns the unique identifier of a sensor of the object designated by Path, enabling you
to access it. Our example deletes all front-sensitive sensors of the object Track.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
for i := MyTrack.NumSensors downto 1
if MyTrack.sensorNo(i).front = true
sensorID := MyTrack.sensorNo(i).id
MyTrack.deleteSensor(sensorID)
end
next
Related Topics
Sensors
sensorID
sensorID
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Parameter
The parameter SensorID of data type integer designates the unique Sensor-ID which Plant Simulation
assigns when you create the sensor.
Return Value
The return value has the data type any.
Related Topics
Sensors
deleteSensor
existsSensorID
sensorNo
The method sensorNo accesses a sensor of the object designated by Path whose unique identifier
you do not know.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Parameter
The parameter SensorNumber of data type integer may be a value between 1 and the number of
sensors. Which sensor Plant Simulation accesses may change during the simulation, i.e., when
existing sensors are deleted. Thus only use the method sensorNo if a method call iterates through all
sensors of the object.
Return Value
The return value has the data type object.
Related Topic
Sensors
The curved objects AngularConverter, Line, Track, TwoLaneTrack, Turntable, and FootPath provide
these methods:
getCurveSegments, mirrorX, mirrorY, rotate, and setCurveSegments.
You define the properties of the curved and straight segments of the objects on the Tab Curve.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topic
Attributes of the Curved Objects
getCurveSegments
Syntax: Path.getCurveSegments(Table:table)
The method getCurveSegments gets the segments table of the curved object designated by Path.
Parameter
The parameter Table of data type table designates the table into which Plant Simulation writes the
settings of the segment table.
The definition of the segments table always shows the original orientation of the segments
without a possible rotation or mirroring. The rotation is stored in the attribute ObjectAngle
and mirroring is stored in the attribute ObjectMirrored. This allows to keep inheritance of
the definition of the segments even when one or more segments are rotated or mirrored.
Example: MyLine.getCurveSegments(curveSegmentsTable);
Related Topics
setCurveSegments
Segments table in 2D
Import Settings of a Curved Object from Another Simulation Model
Tab Curve
Segments table in 3D
_3D.getExtSegments in 3D
mirrorX
Syntax: Path.mirrorX
The method mirrorX flips the curved object designated by Path on the X-axis. This means that Plant
Simulation mirrors the curved object vertically and thus reverses top and bottom.
Example: MyTurntable.mirrorX;
Related Topic
Mirror Vertically
mirrorY
Syntax: Path.mirrorY
The method mirrorY flips the curved object designated by Path on the Y-axis. This means that Plant
Simulation mirrors the curved object horizontally and thus reverses left and right.
Example: MyTurntable.mirrorY;
Related Topic
Mirror Horizontally
rotate
Syntax: Path.rotate(Angle:real)
The method rotate rotates the curved object designated by Path clockwise.
Parameter
The parameter Angle of data type real designates the number of degrees around which a single
rotation step rotates the object.
Example: MyTrack.rotate := 45;
Related Topics
Rotate Icon
getCurveSegments
setCurveSegments
setCurveSegments
Syntax: Path.setCurveSegments(Table:table)
The method setCurveSegments sets the segments table of the curved object designated by Path.
Parameter
The parameter Table of data type table designates the table from which Plant Simulation imports the
settings of the segment table.
The definition of the segments table always shows the original orientation of the segments
without a possible rotation or mirroring. The rotation is stored in the attribute ObjectAngle
and mirroring is stored in the attribute ObjectMirrored. This allows to keep inheritance of
the definition of the segments even when one or more segments are rotated or mirrored.
Example: MyLine.setCurveSegments(curveSegmentsTable);
Related Topics
getCurveSegments
Segments
Import Settings of a Curved Object from Another Simulation Model
Tab Curve
Segments table in 3D
_3D.setExtSegments in 3D
Example: ParallelProc.imp.releaseExporters;
Related Topic
Attributes of the Importer
getAlternativeServices
Syntax: Path.imp.getAlternativeServices(Services:table) → table
Path.setupImp.getAlternativeServices(Services:table) → table
Path.failImp.getAlternativeServices(Services:table) → table
The method getAlternativeServices returns the different alternatives for the services of the importer of
the object designated by Path and writes them into a table.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Parameter
The parameter Services of data type table designates the name of the table.
Plant Simulation passes an unformatted table (a Frame table or a local table) as parameter. The
table has three columns, the first contains the name of the service (string), the second contains the
amount of services to be provided (integer), the third the name of the alternative service (string).
The importer requires that all services of a single alternative are present at the same time.
Return Value
The return value has the data type table.
Example: SingleProc11.imp.getAlternativeServices(myImpAltServicesList);
ParallelProc.setupImp.getAlternativeServices(mySetupImpAltServicesList);
Related Topics
Services for Processing
Services for Setting-Up
Services for Repairing
setAlternativeServices
getExporters
Syntax: Path.imp.getExporters(Exporters:table)
Path.failImp.getExporters(Exporters:table)
Path.setupImp.getExporters(Exporters:table)
Path.transportImp.getExporters(Exporters:table)
The method getExporters returns all Exporters providing services for the importer of the object
designated by Path and writes them into a table.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Parameter
The parameter Exporters of data type table designates the name of the table.
Example: MySingleProc.failImp.getExporters(myExporterListFailImp);
ParallelProc.imp.getExporters(myExporterListImp);
MySingleProc.setupImp.getExporters(myExporterListSetupImp);
Related Topic
Exporters
getImportedServices
Syntax: Path.imp.getImportedServices(Services:table)
Path.setupImp.getImportedServices(Services:table)
Path.failImp.getImportedServices(Services:table)
Path.transportImp.getImportedServices(Services:table)
The method getImportedServices returns all services provided for the importer of the object
designated by Path, and writes them into a table.
The name of the service is identical with the name of the sub-table. The sub-table has two columns.
Column 1 contains the name of the Exporter ( string ), column 2 the number of the services provided
( integer ).
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Parameter
The parameter Services of data type table designates the name of the table.
Example: MySingleProc.failImp.getImportedServices
(myImportedServicesListFailImp);
ParallelProc.setupImp.getImportedServices
(myImportedServicesListImp);
Related Topic
Services
getServices
Syntax: Path.imp.getServices(Services:table)
Path.setupImp.getServices(Services:table)
Path.failImp.getServices(Services:table)
Path.transportImp.getServices(Services:table)
The method getServices returns all services of the importer of the object designated by Path and
writes them into a table.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation can
import services, which you define on the Tab Importer and on the Sub-tab Failure.
Parameter
The parameter Services of data type table designates the name of the table.
Plant Simulation passes an unformatted table (a Frame table or a local table) as parameter. The
importer requires that all services of a single alternative are present at the same time.
• Column 1 has the data type string and contains the name of the service.
• Column 2 has the data type integer and contains the number of the required services.
• Column 3 has the data type integer and contains the alternative services.
Example: SingleProc13.failImp.getServices(myServicesListFailImp);
ParallelProc.setupImp.getServices(myServicesListSetupImp);
Related Topics
Services for Processing
Services for Setting-Up
Services for Repairing
Services for the transport importer
setServices
Data Held in Tabular Form in Attributes
getUnavailableServices
Syntax: Path.imp.getUnavailableServices(Services:table)
Path.setupImp.getUnavailableServices(Services:table)
Path.failImp.getUnavailableServices(Services:table)
Path.transportImp.getUnavailableServices(Services:table)
The method getUnavailableServices returns all services which the importer of the object designated
by Path requested and which are unavailable at the moment. It writes them into the table designated
by the parameter of data type table.
The name of the service is identical with the name of the sub-table. The sub-table has four columns
and shows the Name of the Exporter, the Amount of services defined, the Amount of services
missing, and the name of the associated Alternative.
The table shows the name of the unavailable service white on a red background in the respective cell.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Parameter
The parameter Services of data type table designates the name of the table.
Example: MySingleProc.failImp.getUnavailableServices(myUnavailableFailServices);
ParallelProc.setupImp.getUnavailableServices(myUnavailableSetupServices);
Related Topic
Unavailable Services
import
The method import starts a query with the Broker you entered under Broker for the importer of the
object designated by Path. The return value shows if Exporters were assigned to the importer or not.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for fixing the failure, you have to employ the method name
of station.failImp.import.
When you requested the service for removing the failure with the method name of
station.failImp.import, you have to release the imported service, after the failure has been
removed, with the method name of station.failImp. releaseExporters.
When the importer requests several services at the same time, all of these services have
to be available at the same time, before the Broker assigns them to the station.
When you select the check box Common resources, and you enter a Set-up time, the
station does not know, which of these services to request: set-up or processing, when
the method import does not pass an MU as parameter. For this reason the anonymous
identifier @ will be passed automatically. When @ is void, the method debugger opens
and shows an error message. In this case .imp.import will automatically be replaced
with .imp.import(@).
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Parameters
You can also enter optional parameters:
• The optional parameter MU of data type object designates the MU for which the Exporter was
requested.
• The optional parameter Exporters of data type table designates a table. When the request was
met successfully (return value true), the table will contain all Exporters assigned to the importer.
Return Value
The return value has the data type boolean.
Related Topics
releaseExporters
startProcessing
importExporter
You can use the method importExporter in the Request control of the importer. It returns if the
Workers/Exporters were successfully brokered (true) or not (false).
The Broker does not save a failed mediation. You thus have to check beforehand if the
Workers can be brokered and you yourself have to start another attempt to broker the
Workers.
Parameters
• The parameter Worker of data type object designates a specific Worker/Exporter.
The parameter Workers of data type array designates several Workers/Exporters.
• The optional parameter MU of data type object designates the MU for which the Worker/Exporter
was requested.
Return Value
The return value has the data type boolean. It returns if the Workers/Exporters were successfully
brokered or not.
Example: MySingleProc.failImp.importExporter(MyWorker:1);
ParallelProc.imp.importExporter(makeArray(MyWorker:1, MyWorker:2));
releaseExporters
Syntax: Path.imp.releaseExporters
Path.failImp.releaseExporters
Path.setUpImp.releaseExporters
Path.transportImp.releaseExporters
The method releaseExporters releases the Exporter s assigned to the importer of the object
designated by Path. The station will finish processing the MUs it is Working on at the moment.
When you requested the service for removing the failure with the method name of
station.failImp. import, you have to release the imported service, after the failure has been
removed, with the method name of station.failImp. releaseExporters.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Example: MySingleProc.failImp.releaseExporters;
ParallelProc.setUpImp.releaseExporters;
MyAssembly.imp.releaseExporters;
Related Topics
import
stopProcessing
setAlternativeServices
Syntax: Path.imp.setAlternativeServices(Services:table)
Path.setupImp.setAlternativeServices(Services:table)
Path.failImp.setAlternativeServices(Services:table))
The method setAlternativeServices determines the alternative services, which the importer of the
object designated by Path requests.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Parameter
The parameter Services of data type table designates the name of the table.
Plant Simulation passes an unformatted table (a Frame table or a local table) as parameter. The
table has three columns, the first contains the name of the service (string), the second contains the
amount of services to be provided (integer), the third the name of the alternative service (string).
The importer requires that all services of a single alternative are present at the same time.
Example: SingleProc11.imp.setAlternativeServices(MyServicesTable);
ParallelProc.setupImp.setAlternativeServices(MySetupServices);
MyAssembly.failImp.setAlternativeServices(MyFailureServices);
Related Topics
getAlternativeServices
setServices
Syntax: Path.imp.setServices(Services:table)
Path. setupImp .setServices(Services:table)
Path.failImp.setServices(Services:table)
Path.transportImp.setServices(Services:table)
The method setServices determines the services, which the importer of the object designated by
Path requests.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive
string point to the same string in main memory. The visible and unexpected result is that
the first occurrence of the string defines how the string is written in terms of upper- and
lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
Parameter
The parameter Services of data type table designates the name of the table in which you defined
the services.
The table has three columns, the first contains the name of the service ( string ), the second contains
the amount of services to be provided ( integer ), the third the name of the alternative service ( string
). The importer requires that all services of a single alternative are present at the same time.
To execute the setting-up, processing, or repairing jobs, the importer always needs all services of an
Alternative. When, for example, the importer does not have all services of Alternative1, he attempts
to get all services of Alternative2, etc. Note that for successive services on the table, which all belong
to the same alternative, the name of the alternative only appears after the first service on the table.
For the transport importer you can only request one service with the amount 1 at a time. For this
reason you can only assign a table with one column. When you enter more than one service, each
of these services is an alternative of its own.
Example: SingleProc1.imp.setServices(MyServicesTable);
ParallelProc.setupImp.setServices(MySetupServices);
dismantle.failImp.setServices(MyFailureServices);
MyStation1.transportImp.setServices(MyTransportServices);
Related Topics
Services for Processing
Services for Setting-Up
Services for Repairing
Services for the transport importer
getServices
Data Held in Tabular Form in Attributes
startProcessing
Syntax: Path.imp.startProcessing
Path.failImp.startProcessing
The method startProcessing starts processing the MU for which the Exporter was requested. Then
the appropriate out event is registered.
Parameter
If you would like to start processing anew from the beginning after an interruption, enter the parameter
true.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Return Value
The return value has the data type boolean. It is false when processing cannot be started, because
not all of the required services are available.
Example: MySingleProc.failImp.startProcessing;
ParallelProc.imp.startProcessing;
MyAssembly.failImp.startProcessing(true);
dismantle.imp.startProcessing(true);
stopProcessing
Syntax: Path.imp.stopProcessing
Path.failImp.stopProcessing
Path.setupImp.stopProcessing
When an MU is located on the object designated by Path, the method stopProcessing stops
processing this part and returns the material flow object to the state waiting for an importer. At the
same time, the service is returned to the Exporter and the Broker can procure this service anew.
You can use this method to release the service that is Working at the moment, and provide it for the
importer of an object, with a higher Priority and which requires the same service.
When no other importer has a higher Priority, than the active one, the service is reassigned to this
object again.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Example: SingleProc1.imp.stopProcessing;
startSetup
The method startSetup starts setting-up the object designated by Path, for the MU for which the
Exporter was requested. Then the appropriate Set-up end event is registered, compare List of
scheduled events.
Parameter
The optional parameter StartAnewContinue of data type boolean sets if setting-up starts anew after
an interruption (true) or if setting-up continues where it stopped before the interruption (false).
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, and the Tank, can import services, which you define on the Tab Importer.
Return Value
The return value has the data type boolean. It is false when set-up cannot be started, because
not all of the required services are available.
Example: ParallelProc.setupImp.startSetup;
dismantle.setupImp.startSetup(true);
Related Topic
startProcessing
The material flow objects that support an importer, i.e., the SingleProc, the ParallelProc, the Assembly
Station, the DismantleStation, the Mixer, the Portioner, the DePortioner, and the Tank provide the
method assignedWorkplaces for the Workplace which you can assign to them.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
assignedWorkplaces
Syntax: Path.assignedWorkplaces([Workplaces:table])
The method assignedWorkplaces returns the Workplaces assigned to the object designated by Path
and writes them to a table (an object or local variable).
Parameter
The optional parameter Workplaces of data type table designates the name of the table.
If you do not specify the optional parameter, Plant Simulation returns an array with the assigned
Workplaces.
Example: SingleProc13.assignedWorkplaces(myAssignedWorkplaces);
Related Topic
Associated Workplaces
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Source.Empty
Related Topics
Miscellaneous Read-Only Attributes of the Material Flow Objects
Read-Only Attributes of the Sensors of the Material Flow Objects
Read-Only Attributes for Statistics of the Material Flow Objects
Read-Only Attributes for Energy Statistics of the Material Flow Objects
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Source.Empty
AssignedLockoutzones
Syntax: Path.AssignedLockoutzones
The read-only attribute AssignedLockoutzones returns the LockoutZones assigned to the object
designated by Path.
Return Value
The return value has the data type any.
Example: -- the station SP3 is assigned to one lockout zone
print SP3.AssignedLockoutzones; -- returns [*.Models.Test5.LockoutZone1]
Related Topics
Associated Lockout Zones
Check the Contents List of the Stations
Capacity
Syntax: Path.Capacity
The read-only attribute Capacity returns the capacity of the ParallelProc and the Store. The capacity
is the product of x-dimension times y-dimension.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
if MyStore.Capacity = batchSize
@.move(MyStore)
end
Related Topics
X-dimension of the ParallelProc
Y-dimension of the ParallelProc
X-dimension of the Store
Y-dimension of the Store
Class
Syntax: Path.Class
The read-only attribute Class returns the class in the Class Library from which the object designated
by Path was derived or instantiated, possibly over several levels.
Compare this example: We copied the object Frame three times and named it Frame1, Frame2,
and Frame3. Then, we insert Frame1 into Frame2, and Frame2 into Frame3. When we call
.Frame3.Frame2.Frame1.Class the result will be.Frame1 because .Frame1 is the object in the Class
Library from which .Frame3.Frame2.Frame1 was derived.
When you use the method for an instance of an object, Plant Simulation moves up in the inheritance
structure until it reaches an object in the Class Library. It then opens this object.
Return Value
Related Topics
Class
Open Class in the dialog of the objects
Go to Class in the dialog of the objects
Cont
Syntax: Path.Cont
The read-only attribute Cont returns the MU that is located on the object designated by Path.
• When the object has a capacity of 1, Cont returns the object on which the MU is located.
• When the object is an AssemblyStation or a DismantleStation, Cont returns the main part.
• When the object has capacity greater than 1, Cont returns the MU that can exit next.
When the Worker, who is carrying a part, unloads that part, the method Worker.Cont
returns the unloaded part.
Return Value
The return value has the data type object.
EntranceFree
Syntax: Path.EntranceFree
The read-only attribute EntranceFree returns, if the entrance of the object designated by Path is not
blocked (true), or if it is blocked (false). The entrance might be blocked because an MU is located
there or because the capacity of the object is exhausted. The object may only receive an MU if the
entrance is open and free.
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
if MySingleProc.EntranceFree AND
MySingleProc.EntranceOpen AND
Not MySingleProc.EntranceLocked
@.move(singleProc)
end
Related Topic
Entrance locked
EntranceOpen
Syntax: Path.EntranceOpen
The read-only attribute EntranceOpen returns if a mobile object can enter the material flow object
because of current recovery or cycle times (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print MySingleProc.EntranceOpen;
Related Topic
Entrance locked
InternalClassName
Syntax: Path.InternalClassName
The read-only attribute InternalClassName returns the unique name that describes the type of the
object designated by Path. The internal class name is the name of the object class in our C++ code.
ActiveX NwOle
AngularConverter NwCorner
Assembly NwAssembler
AttributeExplorer AttributeExplorer
Basis Palete
Broker NwBroker
Buffer NwIOBuffer
Button NwButton
CardFile NwRandom
Chart NwChart
Checkbox NwCheckbox
Comment Comment
Connector NwArc
Container Goods
Converter NwConverter
Cycle NwCycle
DePortioner NwDePortioner
Dialog NwDialog
DismantleStation NwDismantle
Display NwDigitDpy
Drain Drain
DropDownList NwDropDownList
Entity Piece
EventController EventCtl
Exporter NwExporter
FileInterface FileSS
FileLink NwFileLink
FlowControl FlowCtrl
FluidDrain NwFluidDrain
FluidSource NwFluidSource
FootPath NwFootPath
Frame Network
GanttChart NwGantt
GAOptimization GaOptimization
GARangeAlloction NwRangeAllocChromoCoding
GASelection NwSelectChromoCoding
GASequence NwSequenceChromoCoding
GASetAllocation NwSetAllocChromoCoding
Generator Generator
HtmlReport NwHtmlReportEX
Interface Interface
Line Line
LockoutZone NwLockoutZone
Method Method
Mixer NwMixer
ODBC NwOdbc
OPCClassicInterface NwOPCInterface
OPCUAInterface OPCUAInterface
Oracle DataBaseOra
ParallelProc Machine
PickAndPlace NwRoboter
Pipe NwPipe
Portioner NwPortioner
PlaceBuffer Buffer
QueueFile NwQueue
Report NwHtmlReport
ShiftCalendar NwShift
SingleProc Place
Socket NwSocket
Sorter Sorter
Source NwSource
SQLite SQLiteIF
StackFile NwStack
Store NW_Store
TableFile NwList2D
Tank NwTank
TimeSequence NwTimeSequence
Toolbar NwToolbar
Track NW_Way
Transporter Vehicle
Trigger NwTrigger
Turnplate NwTurnplate
Turntable NwTurnTable
TwoLaneTrack Nw2Way
Variable NwData
Worker NwWorker
WorkerPool NwWorkerPool
Workplace NwWorkplace
XMLInterface NwXML
Return Value
The return value has the data type string.
Related Topic
Dialog Show Attributes and Methods
IsSetUpFor
Syntax: Path.IsSetUpFor
The read-only attribute IsSetUpFor returns the name of the MU which the object designated by Path
is set up for or is setting-up for. Plant Simulation returns an empty string ("") when the object is
not set up for an MU.
Return Value
The return value has the data type string.
Example: -- SimTalk 2.0 notation
if machine.IsSetUpFor = @.name AND NOT machine.setUp
@.move(machine)
else
machine.setUpFor(@)
end
Related Topics
Setting-up for
setUp
setUpFor
Location/ ~
Syntax: Path.Location/~
The read-only attribute Location, for which you can also type the tilde ~, returns the object located
directly above the object designated by Path in the hierarchy. The location of the MU is the object
on which it is currently located. All other objects return the Frame in which they are located as
the location.
Return Value
The return value has the data type object.
Example: print "shaft is located on:", @.Location;
print "shaft is located on:", @.~;
Related Topics
Open Location in the dialog of the objects
NumAttr
Syntax: Path.NumAttr
The read-only attribute NumAttr returns the number of user-defined attributes of the object designated
by Path.
The first user-defined attribute has the number 1. If no user-defined attributes exist, Plant Simulation
returns 0.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
var index: integer
for index := 1 to MySingleProc.NumAttr
print MySingleProc.getAttrName(index)
next
Related Topics
Tab User-defined
New
NumChildren
Syntax: Path.NumChildren
The read-only attribute NumChildren returns the number of children of the object designated by Path
and which inherit their settings from it.
Return Value
The return value has the data type integer.
Example: print MySingleProc.NumChildren;
print Transporter.NumChildren;
Related Topic
Instance
NumMU
Syntax: Path.NumMU
The read-only attribute NumMu returns the number of MUs booked on the object designated by Path.
On length-oriented objects MUs may only be located on a part of the object. In this case they will only
be counted if their booking point is actually located on the object.
When the object is not booked on another object as well, Plant Simulation counts the MU
as being part of the length-oriented object on which a part of the MU is located. This might,
for example, occur, when an MU is moved from a SingleProc onto a Line.
Return Value
The return value has the data type integer.
Related Topics
NumMUParts
Contents
Tab Statistics of the material flow objects
Tab Statistics of the Container
Statistics Values of the Transporter
NumMUParts
Syntax: Path.NumMUParts
The read-only attribute NumMUParts returns the number of MUs located on the object designated by
Path as a whole or in part.
Note that for length-oriented objects an MU may have exited the object with its front part while the
rear is still located on the object. In this case NumMUParts counts both lengths occupied separately,
although they form part of a single MU.
The read-only attribute NumMU returns the number of MUs whose booking point is located
on the object. On point-oriented objects NumMUParts and NumMU always return the
same value.
Return Value
The return value has the data type integer.
Related Topics
Contents
NumMU
NumPred
Syntax: Path.NumPred
The read-only attribute NumPred returns the number of predecessors of the object designated by
Path.
Return Value
The return value has the data type integer.
Related Topics
Show Predecessors
NumPred of the TwoLaneTrack
NumSucc
Syntax: Path.NumSucc
The read-only attribute NumSucc returns the number of successors of the object designated by Path.
Return Value
The return value has the data type integer.
Related Topic
Show Successors
NumSucc of the TwoLaneTrack
NumPartsSinceSetup
Syntax: Path.NumPartsSinceSetup
The read-only attribute NumPartsSinceSetup returns the number of MUs, which by the object
designated by Path has processed since the last set up process.
Return Value
The return value has the data type integer.
Related Topic
After n parts
PowerInput
Syntax: Path.PowerInput
The read-only attribute PowerInput shows the current power input of the object designated by Path
depending on the current energy state in kilowatts.
Return Value
The return value of data type real.
Related Topic
Active
RemainingSetUpTime
Syntax: Path.RemainingSetUpTime
The read-only attribute RemainingSetUpTime returns the remaining setup time of the object
designated by Path.
Return Value
The return value has the data type time.
The value -1 means that the object has finished setting up.
Related Topics
Set-up time
SetupTime
RootFrame
Syntax: Path.RootFrame
The read-only attribute RootFrame returns the root frame of the Plant Simulation object designated
by Path as an object. If no root frame for the object exists, Plant Simulation returns VOID. This
applies to all classes that are not of type Frame.
The root frame is the Frame that is located highest up in the hierarchy of frames. The root frame is
always located in a folder.
Return Value
The return value has the data type object.
The material flow objects provide these read-only attributes for returning the state they are in:
Full, GetDisruptionBeginTime, GetDisruptionEndTime, Occupied, Operational, Ready, ResBlocked,
ResSetUp, ResWaiting, ResWorking, and TimeUntilEntranceOpen.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Source.Empty
Full
The read-only attribute Full returns if the capacity of the object designated by Path is exhausted
(true) or not (false).
For point-oriented objects Full is true, when all processing stations are occupied. If more than one
processing station exists, each one of them might be asked if it is ready to receive MUs. As a station
may process a single MU, Full is identical with occupied.
Parameters
• The parameter X of data type integer designates the x-coordinate of the processing station.
For length-oriented objects Full returns true, when the number of MUs on the object corresponds to
its capacity or the length occupied takes the value of its length.
Return Value
The return value has the data type boolean.
GetDisruptionEndTime
The read-only attribute GetDisruptionEndTime returns the point in time at which the next end of a
failure (compare DisruptionEnd in the List of scheduled events) is scheduled to take place.
The read-only attribute GetDisruptionEndTime only considers automatically created events. The
read-only attribute does not consider a failure event which you manually inserted with the methods
startFailure or startFailureIn.
If no event exists, the method returns -1.
Return Value
The return value has the data type time.
If no event exists, the method returns -1.
Example: print mystation.GetDisruptionEndTime;
Related Topic
GetDisruptionBeginTime
GetDisruptionBeginTime
The read-only attribute GetDisruptionBeginTime returns the point in time at which the next start of a
failure (compare DisruptionBegin in the List of scheduled events) is scheduled to take place.
The read-only attribute GetDisruptionBeginTime only considers automatically created events. The
read-only attribute does not consider a failure event which manually you inserted with the methods
startFailure or startFailureIn.
If no event exists, the method returns -1.
Return Value
The return value has the data type time.
If no event exists, the method returns -1.
Example: print mystation.GetDisruptionBeginTime;
Related Topic
GetDisruptionEndTime
Occupied
The read-only attribute Occupied returns if the object designated by Path contains at least one MU in
whole or in part (true) or not (false).
Return Value
The return value has the data type boolean.
Example: if not MySingleProc.Occupied then
@.move(SingleProc);
end;
For objects with more than one station, such as the ParallelProc, you can use the read-only attribute
Occupied to find out if a specific station contains MUs (true) or not ( alse).
Parameters
• The parameter X of data type integer designates the x-coordinate of the processing station.
Related Topic
Working
Operational
Syntax: Path.Operational → boolean
The read-only attribute Operational returns if the object designated by Path is operational (true), i.e.,
is neither failed nor paused, or not operational (false).
Return Value
The return value has the data type boolean.
Example: print MySingleProc.Operational;
Related Topic
Working
Ready
Syntax: Path.Ready → boolean
The read-only attribute Ready returns if the object designated by Path is occupied and an MU
is ready to exit (true) or not (false).
For the ParallelProc the read-only attribute Ready returns if it is occupied and at least one MU
is ready to exit (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print MySingleProc.Ready;
Related Topic
Working
ResBlocked
Syntax: Path.ResBlocked → boolean
The read-only attribute ResBlocked returns if the object designated by Path is Blocked (true) or not
(false). An object is Blocked when it is fully occupied, it is neither failed nor paused, and all of its
locations are not processing.
Example: print MySingleProc.ResBlocked;
Plant Simulation can observe the read-only attribute ResBlocked, i.e., you can use it in
waituntil-constructs or the object TimeSequence may record it in watch/observe mode. This only
works when you activate statistics by selecting Resource statistics on the
tab Statistics.
Return Value
The return value has the data type boolean.
Example: waituntil ParallelProc.ResBlocked prio 1;
DeleteMovables; -- empties all occupied stations
ResSetUp
Syntax: Path.ResSetUp → boolean
The read-only attribute resSetUp returns if the object designated by Path is Setting-Up and not failed,
not paused, or not stopped (true) or not (false).
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
if machA.ResSetUp
@.move(machineB)
end
Related Topics
IsSetUpFor
setUpFor
Methods for Setting-Up the Material Flow Objects
ResWaiting
Syntax: Path.ResWaiting → boolean
The read-only attribute ResWaiting returns if the object designated by Path is Waiting (true) or
not (false). A resource is waiting when it is not paused, it is not failed, has free capacity left, and
stations occupied are not processing.
Plant Simulation can observe the read-only attribute ResWaiting, i.e., you can use it in
waituntil-constructs or the object TimeSequence may record it in watch/observe mode. This only
works when you activate statistics by selecting Resource statistics on the
tab Statistics.
Return Value
The return value has the data type boolean.
Example: print MySingleProc.ResWaiting;
ResWorking
Syntax: Path.ResWorking → boolean
The read-only attribute ResWorking returns if the object designated by Path is Working (true) or
not (false).
Plant Simulation can observe the read-only attribute ResWorking, i.e., you can use it in
waituntil-constructs or the object TimeSequence may record it in watch/observe mode. This only
works when you activate statistics by selecting Resource statistics on the
tab Statistics.
The definition of working depends on the object doing the processing:
The object Is working when
SingleProc, ParallelProc, Assembly Station,
it processes at least one MU
DismantleStation, PlaceBuffer, Drain
Track, TwoLaneTrack at least one MU is moving on it
its current speed is not 0. It can also be working
Line when it is moving and when it does not transport
any part
it has a speed or when it is rotating, no matter if it
Turnplate, Turntable
moves a part or not
Converter, AngularConverter has a speed or when the moving time is running
PickAndPlace Robot it is rotating, no matter if it moves a part or not
Source, Store, Buffer, Transporter, Container,
—
Tank
—The processing time is identical with the sorting
time, i.e., it is always zero. This means the sorting
Sorter takes place instantaneously. Even though the
processing time is zero, each sorting action counts
as a processing procedure.
FluidDrain, FluidSource material flows
Mixer when materials are mixed
Return Value
The return value has the data type boolean.
Related Topic
Failure relates to > The processing time
TimeUntilEntranceOpen
The read-only attribute TimeUntilEntranceOpen returns the time until the entrance of the object
designated by Path opens again after the recovery time has elapsed.
Return Value
The return value has the data type real.
Plant Simulation provides these read-only attributes for sensors of the material flow objects:
Origin and NumSensors
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print MyTrack.NumSensors
Related Topics
Attributes of the Sensors of the Length-Oriented Objects
Methods of the Sensors of the Length-Oriented Objects
NumSensors
Syntax: Path.NumSensors → integer
The read-only attribute NumSensors returns the number of sensors defined for the object (Track,
TwoLaneTrack, Line) designated by Path.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Return Value
The return value has the data type integer.
Example: print MyTrack.NumSensors;
Related Topic
Sensors
Origin
Syntax: Path.Sensor.Origin
The read-only attribute Origin returns the origin of the sensor of the object designated by Path. If the
sensor does not have an origin, it returns VOID.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Related Topic
Sensors
The material flow objects provide these read-only attributes for accessing the statistics values they
collected which they show on the Tab Statistics:
StatBlockingCount, StatBlockingDelta, StatBlockingMu, StatBlockingPortion, StatBlockingTime,
StatEmptyCount, StatEmptyDelta, StatEmptyMu, StatEmptyPortion, StatEmptyTime,
StatFailCount, StatFailDelta, StatFailMu, StatFailPortion, StatFailTime, StatisticsStartRes,
StatMaxNumMUs, StatMinNumMU, StatNumIn, StatNumOut, StatPausingCount, StatPausingDelta,
StatPausingMu, StatPausingPortion, StatPausingTime, StatPoweringUpDownCount,
StatPoweringUpDownDelta, StatPoweringUpDownMu, StatPoweringUpDownPortion,
StatPoweringUpDownTime, StatPredeposition, StatRelativeEmptyPortion, StatRelativeFullPortion,
StatRelativeOccupation, StatRelativeOccupationIR, StatSetUpCount, StatSetUpDelta,
StatSetUpMu, StatSetUpPortion, StatSetupTime, StatStoppedCount, StatStoppedDelta,
StatStoppedMu, StatStoppedPortion, StatStoppedTime, StatUnplannedCount, StatUnplannedDelta,
StatUnplannedMu, StatUnplannedPortion, StatUnplannedTime, StatWaitingCount, StatWaitingDelta,
StatWaitingMu, StatWaitingPortion, StatWaitingResCount, StatWaitingResDelta, StatWaitingResMu,
StatWaitingResPortion, StatWaitingResTime, StatWaitingSetUpExpBlockingPortion,
StatWaitingSetUpExpCount, StatWaitingSetUpExpDelta, StatWaitingSetUpExpMu,
StatWaitingSetUpExpPortion, StatWaitingSetUpExpTime, StatWaitingSetUpExpWaitingPortion,
StatWaitingSetUpExpWorkingPortion, StatWaitingTime, StatWorkingCount, StatWorkingDelta,
StatWorkingMu, StatWorkingPortion, and StatWorkingTime.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print MySingleProc.StatBlockingCount
StatBlockingCount
Syntax: Path.StatBlockingCount → integer
The read-only attribute StatBlockingCount returns how often the object designated by Path was
Blocked. The state will not be terminated by failures, pauses, or shift changes but only interrupted.
Return Value
The return value has the data type integer.
Example: print MySingleProc.StatBlockingCount;
Related Topic
Statistics report, Blocked Time
StatBlockingDelta
Syntax: Path.StatBlockingDelta → real
The read-only attribute StatBlockingDelta returns the standard deviation of the time spans during
which the object designated by Path was Blocked from the mean value.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatBlockingDelta;
Related Topic
StatBlockingMu
Syntax: Path.StatBlockingMu → real
The read-only attribute StatBlockingMu returns the mean duration of the time spans during which
the object designated by Path was Blocked. The state will not be terminated by failures, pauses,
or shift changes but only interrupted.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatBlockingMu;
Related Topic
Statistics report, Blocked Time
StatBlockingPortion
Syntax: Path.StatBlockingPortion → real
The read-only attribute StatBlockingPortion returns the portion of the statistics collection period
during which the object was Blocked.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatBlockingPortion;
Related Topics
Tab Statistics of the material flow objects
Statistics report, Blocked Time
StatBlockingTime
Syntax: Path.StatBlockingTime → time
The read-only attribute StatBlockingTime returns the total time during which the object designated
by Path was Blocked.
Return Value
The return value has the data type time.
Example: print ParallelProc.StatBlockingTime;
Related Topic
StatEmptyCount
Syntax: Path.StatEmptyCount → integer
The read-only attribute StatEmptyCount returns the number of time spans during which the object
designated by Path was Empty, i.e., not Failed, not Paused, or not Stopped.
Return Value
The return value has the data type integer.
Example: print MySingleProc.StatEmptyCount;
Related Topics
Statistics report, Empty Time of the stationary objects
Statistics report, Empty Time of the mobile objects
StatEmptyDelta
Syntax: Path.StatEmptyDelta → real
The read-only attribute StatEmptyDelta returns the standard deviation of the time spans from the
mean value during which the object designated by Path was Empty, i.e., not Failed, not Paused,
or not Stopped.
Return Value
The return value has the data type real.
Example: print MyAssembly.StatEmptyDelta;
Related Topics
Statistics report, Empty Time of the stationary objects
Statistics report, Empty Time of the mobile objects
StatEmptyMu
Syntax: Path.StatEmptyMu → real
The read-only attribute StatEmptyMu returns the mean duration of the time span during which the
object designated by Path was Empty, i.e., not Failed, not Paused, or not Stopped.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatEmptyMu;
Related Topics
Statistics report, Empty Time of the stationary objects
Statistics report, Empty Time of the mobile objects
StatEmptyPortion
Syntax: Path.StatEmptyPortion → real
The read-only attribute StatEmptyPortion returns the portion of the statistics collection period during
which the object was Empty, i.e., not Failed, not Paused , or not Stopped.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatEmptyPortion;
Related Topics
Tab Statistics of the material flow objects
Tab Statistics of the Container
Statistics Values of the Transporter
Statistics report, Empty Time of the stationary objects
Statistics report, Empty Time of the mobile objects
Statistics report, Material Flow Properties of the mobile objects
StatEmptyTime
Syntax: Path.StatEmptyTime → time
The read-only attribute StatEmptyTime returns the total time during which the object designated by
Path was Empty, was not Failed, was not Paused and was not Stopped.
Return Value
The return value has the data type time.
Example: print ParallelProc.StatEmptyTime;
Related Topics
Statistics report, Empty Time of the stationary objects
Statistics report, Empty Time of the mobile objects
StatFailCount
Syntax: Path.StatFailCount → integer
The read-only attribute StatFailCount returns how often the object designated by Path Failed.
Return Value
The return value has the data type integer.
Example: print MySingleProc.StatFailCount;
Related Topic
Statistics report, Failed Time
StatFailDelta
The read-only attribute StatFailDelta returns the standard deviation of the failure time of the object
designated by Path from the mean value.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatFailDelta;
Related Topics
Statistics report, Failed Time
Failed
StatFailMu
The read-only attribute StatFailMu returns the mean duration of a failure of the object designated by
Path.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatFailMu;
Related Topics
Statistics report, Failed Time
Failed
StatFailPortion
The read-only attribute StatFailPortion returns the portion of the statistics collection period during
which the object was Failed.
Return Value
Related Topics
StatFailTime
The read-only attribute StatFailTime returns the total time during which the object designated
by Path was Failed.
Return Value
Related Topic
StatMaxNumMUs
The read-only attribute StatMaxNumMUs returns the maximum number of stations which were
occupied in the object up until the time of the query. Note that the number of actually occupied
stations at the same time is counted, not the cargo of the MUs.
Return Value
Related Topics
Tab Statistics of the material flow objects
Statistics Values of the Transporter
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatMinNumMU
Syntax: Path.StatMinNumMU → integer
The read-only attribute StatMinNumMU returns the minimum number of stations which were occupied
in the object up until the time of the query. Note that the number of actually occupied stations at the
same time is counted, not the cargo of the MUs.
Return Value
The return value has the data type integer.
Example: print ParallelProc.StatMinNumMU;
Related Topics
Tab Statistics of the material flow objects
Statistics Values of the Transporter
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatNumIn
Syntax: Path.StatNumIn → integer
The read-only attribute StatNumIn returns the number of MUs that entered the object designated
by Path. Note that Plant Simulation only counts the MU itself, not its contents, i.e., the parts that it
transports. Let‘s say a Container loaded with several Entities enters an object, then the StatNumIn is
increased by one, not by the number of Entities on the Container.
Return Value
The return value has the data type integer.
Example: print MySingleProc.StatNumIn;
Related Topics
Tab Statistics of the material flow objects
Tab Statistics of the Container
Statistics Values of the Transporter
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatNumOut
The read-only attribute StatNumOut returns the number of MUs that exited the object. Note that Plant
Simulation only counts the MU itself, not its contents, i.e., the parts that it transports. Let‘s say a
Container loaded with several Entities leaves an object, then the StatNumOut is increased by one,
not by the number of Entities on the Container.
Return Value
The return value has the data type integer.
Related Topics
Tab Statistics of the material flow objects
Tab Statistics of the Container
Statistics Values of the Transporter
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatPausingCount
The read-only attribute StatPausingCount returns how often the object designated by Path was
Paused.
Return Value
The return value has the data type integer.
Related Topics
Statistics report, Paused Time
StatPausingDelta
Syntax: Path.StatPausingDelta → real
The read-only attribute StatPausingDelta returns the standard deviation from the mean value of the
length of the pauses of the object designated by Path.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatPausingDelta;
Related Topics
Statistics report, Paused Time
Paused
StatPausingMu
Syntax: Path.StatPausingMu → real
The read-only attribute StatPausingMu returns the mean duration of a pause of the object designated
by Path.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatPausingMu;
Related Topics
Statistics report, Paused Time
Paused
StatPausingPortion
Syntax: Path.StatPausingPortion → real
The read-only attribute StatPausingPortion returns the portion of the statistics collection period
during which the object was Paused.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatPausingPortion;
Related Topics
Tab Statistics of the material flow objects
StatPausingTime
The read-only attribute StatPausingTime returns the total time during which the object designated
by Path was Paused.
Return Value
The return value has the data type time.
Related Topic
Statistics report, Paused Time
StatPoweringUpDownCount
The read-only attribute StatPoweringUpDownCount returns how often the object designated by
Path was Powering up/down. The state will not be terminated by failures, pauses, or shift changes
but only interrupted.
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
Return Value
The return value has the data type integer.
Related Topic
Statistics report, Powering up/down Time
StatPoweringUpDownDelta
The read-only attribute StatPoweringUpDownDelta returns the standard deviation from the mean
value of the powering up time or the powering down time of the object designated by Path.
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatPoweringUpDownDelta;
Related Topics
Statistics report, Powering up/down Time
Powering up/down
StatPoweringUpDownMu
Syntax: Path.StatPoweringUpDownMu → real
The read-only attribute StatPoweringUpDownMu returns the mean duration of the powering up time
or the powering down time of the object designated by Path. The state Powering up/down will not be
terminated by failures, pauses, or shift changes but only interrupted.
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatPoweringUpDownMu;
Related Topics
Statistics report, Powering up/down Time
Powering up/down
StatPoweringUpDownPortion
Syntax: Path.StatPoweringUpDownPortion → real
The read-only attribute StatPoweringUpDownPortion returns the portion of the statistics collection
period during which the object was Powering up/down.
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
Return Value
Related Topics
Tab Statistics of the material flow objects
Statistics report, Powering up/down Time
StatPoweringUpDownTime
Syntax: Path.StatPoweringUpDownTime → time
The read-only attribute StatPoweringUpDownTime returns the total time during which the object
designated by Path was Powering up/down.
Plant Simulation only records this value if the station is not failed, not paused, not
stopped, or not unplanned.
Return Value
The return value has the data type time.
Example: print ParallelProc.StatPoweringUpDownTime;
Related Topic
Statistics report, Powering up/down Time
StatPredeposition
Syntax: Path.StatPredeposition → integer
The read-only attribute StatPredeposition returns the number of MUs that were located on the object
at the beginning of the statistics collection.
Return Value
The return value has the data type integer.
Example: print ParallelProc.StatPredeposition;
StatRelativeEmptyPortion
Syntax: Path.StatRelativeEmptyPortion → real
The read-only attribute StatRelativeEmptyPortion returns the relative portion of the statistics collection
period during which the object was Empty in relation to the time during which the object was available.
Return Value
Related Topics
Tab Statistics of the material flow objects
Tab Statistics of the Container
Statistics Values of the Transporter
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatRelativeFullPortion
Syntax: Path.StatRelativeFullPortion → real
The read-only attribute StatRelativeFullPortion returns the relative portion of the statistics collection
period during which all temporary storage places of the Buffer, the PlaceBuffer, and of the Sorter
were occupied in relation to the time during which the object was available.
Return Value
The return value has the data type real.
Example: print MyBuffer.StatRelativeFullPortion;
Related Topics
Tab Statistics of Buffer, PlaceBuffer, and Sorter
Statistics report, Material Flow Properties of the stationary objects
StatRelativeOccupation
Syntax: Path.StatRelativeOccupation → real
The read-only attribute StatRelativeOccupation returns the relative, i.e., capacity-based, occupancy
of the object designated by Path. The relative occupancy is determined by the sum of the dwelling
times, that are located within the statistics collection period, of all MUs on an object during which
the object was not paused and not failed, divided by the capacity and the entire statistics collection
period without counting pauses and failures. The return value 0 stands for 0 percent, the return
value 1 stands for 100 percent.
You can also use this method to compute the average waiting time of an MU:
EventController.SimTime * Buffer.StatRelativeOccupation * Buffer.Capacity / Buffer.StatNumIn
In addition you can compute the average number of MUs on the object designated by Path:
Buffer.StatRelativeOccupation * Buffer.Capacity
Return Value
Related Topics
Relative Occupation
Tab Statistics of the material flow objects
Tab Statistics of the Container
Statistics Values of the Transporter
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatRelativeOccupationIR
StatRelativeOccupationIR
The read-only attribute StatRelativeOccupationIR returns the relative, i.e., capacity-based, occupancy
with interruptions, i.e., with pauses and failures, of the object designated by Path. The relative
occupancy with interruptions is calculated from the relation of the sum of the dwelling times of the
MUs and the product of statistics collection period and capacity. The return value 0 stands for 0
percent, the return value 1 stands for 100 percent.
Return Value
The return value has the data type real.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Example Collection and click Open Model.
Related Topics
Statistics report, Material Flow Properties of the stationary objects
Statistics report, Material Flow Properties of the mobile objects
StatRelativeOccupation
StatSetUpCount
Syntax: Path.StatSetUpCount → integer
The read-only attribute StatSetUpCount returns how often the object designated by Path was
Setting-Up. The state will not be terminated by failures, pauses, or shift changes but only interrupted.
Return Value
The return value has the data type integer.
Example: print ParallelProc.StatSetUpCount;
Related Topic
Statistics report, Set-up Time
StatSetUpDelta
Syntax: Path.StatSetUpDelta → real
The read-only attribute StatSetUpDelta returns the standard deviation from the mean value of the
set-up time of the object designated by Path.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatSetUpDelta;
Related Topics
Statistics report, Set-up Time
Setting-Up
StatSetUpMu
Syntax: Path.StatSetUpMu → real
The read-only attribute StatSetUpMu returns the mean duration of a set-up process of the object
designated by Path. The state Setting-Up will not be terminated by failures, pauses, or shift changes
but only interrupted.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatSetUpMu;
Related Topics
Statistics report, Set-up Time
Setting-Up
StatSetUpPortion
Syntax: Path.StatSetUpPortion → real
The read-only attribute StatSetUpPortion returns the ratio of the time during which the object
designated by Path was Setting-Up to the statistics collection period.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatSetUpPortion;
Related Topics
Tab Statistics of the material flow objects
Statistics report, Set-up Time
Tab Type Statistics of the Drain
StatSetupTime
Syntax: Path.StatSetupTime → time
The read-only attribute StatSetupTime returns the total time during which the object designated by
Path was Setting-Up.
Return Value
The return value has the data type time.
Example: print ParallelProc.StatSetupTime;
Related Topic
Statistics report, Set-up Time
StatStoppedCount
Syntax: Path.StatStoppedCount → integer
The read-only attribute StatStoppedCount returns how often the LockoutZone Stopped the object
designated by Path.
Return Value
The return value has the data type integer.
Example: print MySingleProc.StatStoppedCount;
Related Topic
Statistics report, Stopped Time
StatStoppedDelta
The read-only attribute StatStoppedDelta returns the standard deviation from the mean value during
which the object designated by Path was Stopped by the LockoutZone.
Return Value
The return value has the data type real.
Related Topic
Statistics report, Stopped Time
StatStoppedMu
The read-only attribute StatStoppedMu returns the mean duration of the time during which the object
designated by Path was Stopped by the LockoutZone.
Return Value
The return value has the data type real.
Related Topic
Statistics report, Stopped Time
StatStoppedPortion
The read-only attribute StatStoppedPortion returns the portion of the statistics collection period during
which the object designated by Path was Stopped by the LockoutZone.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics
Statistics report, Stopped Time
StatStoppedTime
The read-only attribute StatStoppedTime returns the total time during which the object designated by
Path was Stopped by the LockoutZone.
Return Value
The return value has the data type time.
Related Topic
Statistics report, Stopped Time
StatUnplannedCount
The read-only attribute StatUnplannedCount returns how often the object designated by Path was
not planned to work.
Return Value
The return value has the data type integer.
Related Topic
Unplanned
StatUnplannedDelta
The read-only attribute StatUnplannedDelta returns the standard deviation from the mean value
during which the object designated by Path was not planned to work.
Return Value
The return value has the data type real.
Related Topic
Unplanned
StatUnplannedTime
The read-only attribute StatUnplannedTime returns the total time during which the object designated
by Path was not planned to work.
Return Value
The return value has the data type time.
Related Topic
Unplanned
StatUnplannedMu
The read-only attribute StatUnplannedMu returns the mean duration of the time during which the
object designated by Path was not planned to work.
Return Value
The return value has the data type real.
Related Topic
Unplanned
StatWaitingDelta
The read-only attribute StatWaitingDelta returns the standard deviation of the Waiting times from the
mean value of the object designated by Path.
Return Value
The return value has the data type real.
Related Topic
Statistics report, Waiting Time
StatWaitingCount
Syntax: Path.StatWaitingCount → integer
The read-only attribute StatWaitingCount returns how often the object designated by Path was
Waiting. The state will not be terminated by failures, pauses, or shift changes but only interrupted.
Return Value
The return value has the data type integer.
Example: print ParallelProc.StatWaitingCount;
Related Topic
Statistics report, Waiting Time
StatWaitingMu
Syntax: Path.StatWaitingMu → real
The read-only attribute StatWaitingMu returns the mean duration of the time during which the object
designated by Path was Waiting. The state will not be terminated by failures, pauses, or shift
changes but only interrupted.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatWaitingMu;
StatWaitingPortion
Syntax: Path.StatWaitingPortion
The method StatWaitingPortion returns the portion of the statistics collection period during which
the object was Waiting.
Example: print ParallelProc.StatWaitingPortion;
Related Topics
Tab Statistics of the material flow objects
Statistics report, Waiting Time
StatWaitingResMu
Syntax: Path.StatWaitingResMu → real
The read-only attribute StatWaitingResMu returns the mean duration of a time span during which the
object designated by Path was Blocked and was Waiting for MUs and for Exporters / Services.
Return Value
The return value has the data type real.
Example: print MyAssembly.StatWaitingResMu;
Related Topic
Statistics report, Waiting Times for Services and Parts
StatUnplannedPortion
Syntax: Path.StatUnplannedPortion → real
The read-only attribute StatUnplannedPortion returns the ratio of the time during which the object
designated by Path was not planned to work.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatUnplannedPortion;
Related Topics
Tab Statistics of the material flow objects
Unplanned
StatWaitingResPortion
Syntax: Path.StatWaitingResPortion → real
The read-only attribute StatWaitingResPortion returns the portion of the statistics collection period the
object designated by Path was Waiting for Exporters.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatWaitingResPortion;
Related Topics
Statistics report, Importers Waiting for Services and Parts
Statistics report, Waiting Times for Services and Parts
StatWaitingResTime
Syntax: Path.StatWaitingResTime → time
The read-only attribute StatWaitingResTime returns the total time during which the object designated
by Path was Waiting for Exporters.
Return Value
The return value has the data type time.
Example: print MySingleProc.StatWaitingResTime;
Related Topic
Statistics report, Waiting Times for Services and Parts
StatWaitingSetUpExpBlockingPortion
Syntax: Path.StatWaitingSetUpExpBlockingPortion → real
The read-only attribute StatWaitingSetUpExpBlockingPortion returns the total time during which the
object designated by Path was Waiting for set-up Exporters while the object was Blocked.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatWaitingSetUpExpBlockingPortion;
Related Topic
Statistics report, Waiting Times for Set-up Exporters
StatWaitingSetUpExpTime
Syntax: Path.StatWaitingSetUpExpTime → time
The read-only attribute StatWaitingSetUpExpTime returns the total time during which the object
designated by Path was Waiting for set-up Exporters.
Return Value
The return value has the data type time.
Example: print ParallelProc.StatWaitingSetUpExpTime;
Related Topics
Statistics report, Waiting Times for Set-up Exporters
Statistics report, Importers Waiting for Services and Parts
StatWaitingSetUpExpWorkingPortion
Syntax: Path.StatWaitingSetUpExpWorkingPortion → real
The read-only attribute StatWaitingSetUpExpWorkingPortion returns the total portion the object
designated by Path was waiting for set-up Exporters while the object was Working.
Return Value
Related Topic
Statistics report, Waiting Times for Set-up Exporters
statWaitingTimeTable
Syntax: Path.statWaitingTimeTable(WaitingTimes:table)
The method statWaitingTimeTable returns the table that contains the summed-up waiting times for
the mounting parts of all predecessors of the Assembly station designated by Path.
In our example below the main part arrives along the connector with the number 1 from
the SourceMainParts. As only waiting times for mounting parts are shown, the first row
shows 0.
Parameter
The parameter WaitingTimes of data type table designates the name of the table.
Example: -- SimTalk 2.0 notation
var myWaitingTimesTable: table
MyAssembly.statWaitingTimeTable(myWaitingTimesTable)
Related Topic
StatWaitingSetUpExpDelta
Syntax: Path.StatWaitingSetUpExpDelta → real
The read-only attribute StatWaitingSetUpExpDelta returns the standard deviation from the mean
value during which the object designated by Path was Setting-Up and Waiting for Exporters.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatWaitingSetUpExpDelta
Related Topic
Statistics report, Waiting Times for Set-up Exporters
StatWorkingDelta
Syntax: Path.StatWorkingDelta → real
The read-only attribute StatWorkingDelta returns the standard deviation of the time spans during
which the object designated by Path was Working from the mean value.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatWorkingDelta;
Related Topic
Statistics report, Working Time
StatWorkingCount
Syntax: Path.StatWorkingCount → real
The read-only attribute StatWorkingCount returns how often the object designated by Path was
Working. The state working will not be terminated by failures, pauses, or shift changes but only
interrupted.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatWorkingCount;
Related Topics
Tab Statistics of the material flow objects
StatWaitingSetUpExpCount
Syntax: Path.StatWaitingSetUpExpCount → integer
The read-only attribute StatWaitingSetUpExpCount returns number of time spans during which the
object designated by Path was Blocked, Setting-Up, and Waiting for Exporters.
Return Value
The return value has the data type integer.
Example: print MyAssembly.StatWaitingSetUpExpCount;
Related Topics
Statistics report, Waiting Times for Set-up Exporters
Statistics report, Importers Waiting for Services and Parts
StatWorkingMu
Syntax: Path.StatWorkingMu → real
The read-only attribute StatWorkingMu returns the mean duration of the time spans during which
the object designated by Path was Working. The state working will not be terminated by failures,
pauses, or shift changes but only interrupted.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatWorkingMu;
Related Topic
Statistics report, Working Time
StatWaitingTime
Syntax: Path.StatWaitingTime → time
The read-only attribute StatWaitingTime returns the total time during which the object designated
by Path was Waiting.
Return Value
The return value has the data type time.
Example: print ParallelProc.StatWaitingTime;
Related Topic
StatWaitingSetUpExpWaitingPortion
Syntax: Path.StatWaitingSetUpExpWaitingPortion → real
The read-only attribute StatWaitingSetUpExpWaitingPortion returns the total portion during which the
object designated by Path was waiting for set-up Exporters while the object was Waiting.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatWaitingSetUpExpWaitingPortion;
Related Topic
Statistics report, Waiting Times for Set-up Exporters
StatWaitingSetUpExpMu
Syntax: Path.StatWaitingSetUpExpMu → real
The read-only attribute StatWaitingSetUpExpMu returns the mean duration of a set-up process of the
object designated by Path during which Exporters were missing.
Return Value
The return value has the data type real.
Example: print ParallelProc.StatWaitingSetUpExpMu;
Related Topic
Statistics report, Waiting Times for Set-up Exporters
StatWaitingSetUpExpPortion
Syntax: Path.StatWaitingSetUpExpPortion → real
The read-only attribute StatWaitingSetUpExpPortion returns the portion of the statistics collection
period during which the object designated by Path was Setting-Up while Exporters were missing.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatWaitingSetUpExpPortion;
Related Topics
Statistics report, Waiting Times for Set-up Exporters
Statistics report, Importers Waiting for Services and Parts
StatWorkingPortion
Syntax: Path.StatWorkingPortion → real
The read-only attribute StatWorkingPortion returns the portion of the statistics collection period
during which the object was Working.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatWorkingPortion;
Related Topics
Tab Statistics of the material flow objects
Tab Type Statistics of the Drain
Statistics report, Working Time
StatWorkingTime
Syntax: Path.StatWorkingTime → time
The read-only attribute StatWorkingTime returns the total time during which the object designated
by Path was Working.
Return Value
The return value has the data type time.
Example: print MySingleProc.StatWorkingTime;
Related Topic
Statistics report, Working Time
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print MySingleProc.StatEnergyFailConsumption
Related Topic
Miscellaneous Read-Only Attributes of the Material Flow Objects
StatEnergyFailConsumption
The read-only attribute StatEnergyFailConsumption returns the total energy consumption during
which the object designated by Path was failed.
Return Value
The return value has the data type real.
StatEnergyFailConsumptionPortion
The read-only attribute StatEnergyFailConsumptionPortion returns the portion of the total energy
consumption during which the object designated by Path was failed.
Return Value
The return value has the data type real.
Related Topics
Energy Statistics
Statistics report, Energy Statistics - Energy Statistics
StatEnergyFailTime
The read-only attribute StatEnergyFailTime returns the total time during which the object designated
by Path was failed.
Return Value
The return value has the data type time.
Example: print MySingleProc.StatEnergyFailTime;
StatEnergyOffConsumption
The read-only attribute StatEnergyOffConsumption returns the total energy consumption during
which the object designated by Path was off.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatEnergyOffConsumption;
StatEnergyOffConsumptionPortion
The read-only attribute StatEnergyOffConsumptionPortion returns the portion of the total energy
consumption during which the object designated by Path was off.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatEnergyOffConsumptionPortion;
Related Topics
Energy Statistics
Statistics report, Energy Statistics - Energy Statistics
StatEnergyOffTime
Syntax: Path.StatEnergyOffTime → time
The read-only attribute StatEnergyOffTime returns the total time during which the object designated
by Path was off.
Return Value
The return value has the data type time.
Example: print MySingleProc.StatEnergyOffTime;
StatEnergyOperationalConsumption
Syntax: Path.StatEnergyOperationalConsumption → real
StatEnergyOperationalConsumptionPortion
Syntax: Path.StatEnergyOperationalConsumptionPortion → real
Related Topics
Energy Statistics
Statistics report, Energy Statistics - Energy Statistics
StatEnergyOperationalTime
Syntax: Path.StatEnergyOperationalTime → time
The read-only attribute StatEnergyOperationalTime returns the total time during which the object
designated by Path was operational.
Return Value
StatEnergySetupConsumption
The read-only attribute StatEnergySetupConsumption returns the total energy consumption during
which the object designated by Path was setting-up.
Return Value
The return value has the data type real.
StatEnergySetupConsumptionPortion
The read-only attribute StatEnergySetupConsumptionPortion returns the portion of the total energy
consumption during which the object designated by Path was setting-up.
Return Value
The return value has the data type real.
Related Topic
Energy Statistics
StatEnergySetupTime
The read-only attribute StatEnergySetupTime returns the total time during which the object
designated by Path was setting-up.
Return Value
The return value has the data type time.
StatEnergyStandbyConsumption
The read-only attribute StatEnergyStandbyConsumption returns the total energy consumption during
which the object designated by Path was on standby.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatEnergyStandbyConsumption;
StatEnergyStandbyConsumptionPortion
Syntax: Path.StatEnergyStandbyConsumptionPortion → real
The read-only attribute StatEnergyStandbyConsumptionPortion returns the portion of the total energy
consumption during which the object designated by Path was standing by.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatEnergyStandbyConsumptionPortion;
Related Topics
Energy Statistics
Statistics report, Energy Statistics - Energy Statistics
StatEnergyStandbyTime
Syntax: Path.StatEnergyStandbyTime → time
The read-only attribute StatEnergyStandbyTime returns the total time during which the object
designated by Path was on standby.
Return Value
The return value has the data type time.
Example: print MySingleProc.StatEnergyStandbyTime;
StatEnergyTotalConsumption
Syntax: Path.StatEnergyTotalConsumption → real
The read-only attribute StatEnergyTotalConsumption returns the total energy consumption of the
object designated by Path.
Return Value
The return value has the data type real.
Example: print MySingleProc.StatEnergyTotalConsumption;
Related Topics
Energy Statistics
Statistics report, Energy Statistics - Energy Statistics
StatEnergyWorkingConsumption
The read-only attribute StatEnergyWorkingConsumption returns the total energy consumption during
which the object designated by Path was working.
Return Value
The return value has the data type real.
StatEnergyWorkingConsumptionPortion
The read-only attribute StatEnergyWorkingConsumptionPortion returns the portion of the total energy
consumption during which the object designated by Path was working.
Return Value
The return value has the data type real.
Related Topics
Energy Statistics
Statistics report, Energy Statistics - Energy Statistics
StatEnergyWorkingTime
The read-only attribute StatEnergyWorkingTime returns the total time during which the object
designated by Path was working.
Return Value
The return value has the data type time.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topics
Attributes for Animating MUs on the Material Flow Objects
Attributes for the State of the Material Flow Objects
Attributes for Setting Times of the Material Flow Objects
Attributes for Setting-Up the Material Flow Objects
Attributes for Defining Failures of the Material Flow Objects
Attributes for Statistics Values of the Material Flow Objects
Attributes for Controls of the Material Flow Objects
Attributes for Setting the Exit Strategy of the Material Flow Objects
Attributes of the Importer
Attributes of the Sensors of the Length-Oriented Objects
Attributes of the Curved Objects
This applies, for example, to the lists and tables on the tab Exit of the material flow objects, to the
tabs Exit Strategy and Entry Strategy of the FlowControl and to a number of other tables, which you
can open by clicking the button Open List/Open Table.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
RotateMUs
Syntax: Path.RotateMUs
The attribute RotateMUs sets if Plant Simulation rotates the icons of the MUs to match the rotation of
the point-oriented material flow object, when the parts transfer onto a rotated object as they move
across any of the material flow objects. When you type in true, the part is rotated to match the rotation
of the material flow object. When you type in false, the part keeps its previous rotation/direction.
When Plant Simulation shows a length-oriented object in curve mode, Plant Simulation
evaluates the setting Rotate movables (RotateMovables).
When Plant Simulation shows the object as an icon , Plant Simulation evaluates the setting
Same as the Object ( RotateMUs ).
We advise to not deactivate Rotate movables as this setting does not influence the
behavior in the 3D Viewer.
For Transporter and Container applies: When Same as the object is active, loaded parts
are rotated in the same direction as Transporter or Container.
Related Topics
Same as the Object
RotateMovables for length-oriented objects
RotateMUs in the Frame
The material flow objects provide the attributes EntranceLocked, ExitLocked, Failed, Pause,
RootFolder, Stopped, and Unplanned for setting the state they are in.
You can also select these settings in the dialogs of the objects.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
EntranceLocked
Syntax: Path.EntranceLocked
The attribute EntranceLocked locks (true) or unlocks (false) the entrance of the object designated
by Path, so that no MU can enter. Plant Simulation enters MUs attempting to enter unsuccessfully
into the Forward Blocking List of the object. When setting EntranceLocked to false, MUs entered
into the blocking list will make another attempt to enter the object.
You can also lock or unlock the entrance with the check box Entrance locked.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: -- SimTalk 2.0 notation
if pp.NumMU > 10
pp.EntranceLocked := true
waituntil pp.numMu 10
pp.EntranceLocked := false
end
ExitLocked
Syntax: Path.ExitLocked
The attribute ExitLocked locks (true) or unlocks (false) the exit of the object designated by Path,
so no MU can exit. Plant Simulation enters MUs attempting to exit unsuccessfully into the Exit
Blocking List of the object. When you set ExitLocked to false MUs entered into the blocking list will
make another attempt to exit the object.
You can also lock or unlock the exit with the check box Exit locked.
Failed
Syntax: Path.Failed
The attribute Failed sets if the object designated by Path is failed (true) or not (false).
You can also fail the object or remove the failure with the check box Failed.
When you manually fail a station, it remains failed while any of the failure profiles you defined is
active. It will change to not failed once the last failure (DisruptionEnd ) of the last failure profile
ends or when you assign false to this attribute.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
During the reset phase of the simulation Plant Simulation resets all failures.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for removing the failure, you have to use the method name
of station.failImp.import.
When you requested the service for removing the failure with the method <name of
station.failImp.import, you have to release the imported service, after the failure has been
removed, with the method name of station.failImp.releaseExporters.
Pause
Syntax: Path.Pause
The attribute Pause sets if the object designated by Path is paused (true) or not (false).
Plant Simulation resets the pause, when you reset the EventController.
You can also pause the object or remove the pause with the drop-down list
Paused/Planned/Unplanned.
To check if the object is only paused and not paused and unplanned, you can query the
state of the attribute Unplanned. If Unplanned returns false, the object is paused only.
RootFolder
Syntax: Path.RootFolder
The attribute RootFolder sets if the anonymous identifier RootFolder takes this folder into account
when searching the Class Library. The attribute sets which folder Plant Simulation uses as the root
folder. Plant Simulation adds an upper-case R to the icon of the folder in the Class Library.
You can also set the attribute RootFolder in the dialog Show Attributes and Methods.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: .ApplicationObjects.Transport.RootFolder := true;
Related Topic
Set the Root Folder for Your Simulation Model
Stopped
Syntax: Path.Stopped
The attribute Stopped sets if the object designated by path is stopped (true) by the LockoutZone or if
it is not Stopped (false). Stopped means that all of its processing operations come to a halt.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyStation.Stopped := true;
Unplanned
Syntax: Path.Unplanned
The attribute Unplanned sets if the object designated by Path is not planned to be Working for the
time you entered into the ShiftCalendar (true) or if it is planned to work (false).
You can also set the object to planned or unplanned with the drop-down list
Paused/Planned/Unplanned.
To check if the object is only paused and not paused and unplanned, you can query the
state of the attribute Unplanned. If Unplanned returns false, the object is paused only.
Normally, the processing time (ProcTime) of the object determines how long an MU remains on it.
After the processing time has elapsed, the object moves the MU on to the next object in the flow of
materials. When a set-up is required to process the MU, the processing time may be increased by the
SetupTime. The same is true when failures or pauses take place. Recovery and cycle times control if
an object may receive MUs. During recovery and between cycle times no MUs may enter the object.
You can set the times to be constants or define them as probability distributions. Note that you have
to set the distribution type and the data of the distribution accordingly (see Probability Distributions).
The material flow objects provide the attributes CycleTime, ProcTime, RandomSeed, RecoveryTime,
RecoveryTimeMode, and SetupTime for setting times.
You can also select these settings in the dialogs of the objects on the Tab Times.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CycleTime
Syntax: Path.CycleTime
The attribute CycleTime sets the Cycle time, i.e., the times at which MUs may enter the object
designated by Path. The value 34, for example, means that MUs can enter at the simulation times 0,
34, 68, 102, …
The cycle time is the time during which the second gate at the entrance of a material flow object
opens and closes cyclically, regardless of MUs entering the object. The cycle time is useful to model
chain conveyors with a fixed chain interval that only transport materials when a free hook is available.
When you select a distributed time, then Plant Simulation computes the value for the cycle
time interval only once to arrive at equidistant intervals.
The value 0 allows MUs to move onto the object at any time.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MySingleProc.CycleTime := 120; -- 2 minutes
Related Topic
Times and Distributions
ProcTime
Syntax: Path.ProcTime
The attribute ProcTime sets the duration of the Processing time of the object designated by Path.
The processing time is the time during which the MU is located on the object to be processed. It
designates the interval between setting-up and the time at which the material flow object moves
the part on to its successor.
The successor is the object that is connected to the selected object with a Connector and that
succeeds it in the sequence of stations in the simulation model.
For a processing time of 0 Plant Simulation does not request a Worker. For this reason the
processing time will be calculated when the MU enters the station or when set-up is done.
If you would like to request a Worker in spite of a processing time of 0. enter a processing time
that is slightly greater than 0, for example 0.001.
For the PlaceBuffer you can only enter a constant processing time .
For the Buffer you can only enter a constant processing time. As the processing time of
the Buffer really is a dwell time, is not prolonged by failures or pauses.
Each MU remains at least for the time in the Buffer, which you entered as the dwell
time. For the buffer type > Stack an MU can only exit the Buffer, when all parts which
entered the Buffer after the current part, have already exited the Buffer, i.e., when the
MU is located at the very top of the stack.
Related Topics
Times and Distributions
Attributes of the Distributions
Methods of the Distributions
RandomSeed
Syntax: Path.RandomSeed
The attribute RandomSeed sets, together with the attribute Random Numbers Variant of the
Eventcontroller, the seed values which are required for creating the random numbers of the object
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MySingleProc.RandomSeed := 40;
Related Topics
Simulating Random Processes
Increment Variant on Reset of the EventController
IncrementRandomNumbersVariantOnReset of the EventController
Random Numbers Variant of the EventController
RecoveryTime
Syntax: Path.RecoveryTime
The attribute RecoveryTime sets the duration of the Recovery time of the object designated by Path.
When you enter 0 MUs can enter continually.
The recovery time is the time which is required to set a station into a defined state before it can
start processing the next part. The recovery time is, for example, useful to model materials handling
equipment, such as a robot, which requires a certain time to insert work pieces into or remove
them from processing stations.
You can use the attribute EntranceOpen to check if the entrance is currently open. You can use the
attribute TimeUntilEntranceOpen to query the time at which the entrance will be open again.
Related Topic
RecoveryTimeMode
Syntax: Path.RecoveryTimeMode
The attribute RecoveryTimeMode sets when the Recovery time of the object designated by Path
starts:
• When processing of the part is finished. The recovery time elapses after the part is processed,
no matter if the part is still located on the station or has left it.
• When the part exits the station. The recovery time elapses after the part is processed and
has left the station.
You can only set this for the SingleProc, the Assembly station, the DismantleStation,
and for the PickAndPlace robot.
Related Topics
Recovery time starts
Times and Distributions
SetupTime
Syntax: Path.SetupTime
The attribute SetupTime sets the duration of the Set-up time of the object designated by Path.
A material flow object has to set up, whenever the name of the MU differs from the name of its
predecessor.
The set-up time is the time it takes to set the object up for processing a different type of MU. An
identical name designates that parts are of the same type.
You can also arrange if the object sets-up automatically or if set-up will be started explicitly from within
a Method, compare the Tab Set-Up.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MySingleProc.SetupTime := 120; -- 2 minutes
Related Topics
Times and Distributions
RemainingSetUpTime
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
AutomaticSetUp
Syntax: Path.AutomaticSetUp
The attribute AutomaticSetUp sets if the object designated by Path is set up automatically, whenever
it is necessary (true) or not (false).
• When you enter true for AutomaticSetUp, Plant Simulation triggers the set-up process of objects
as soon as the respective differing MU class intends to move onto the object.
• When you enter false for AutomaticSetUp, you have to define the set-up process yourself, for
example with the Method setUpFor.
If the object cannot be set up at the current point in time, for example because it is
failed, Plant Simulation does not attempt to set the object up anew.
Related Topic
Automatic
SetupAfterNPartsMode
Syntax: Path.SetupAfterNPartsMode
The attribute SetupAfterNPartsMode sets if the object sets up immediately after the n-th part was
processed (Before Next Part) or after the n-plus-first part wants to move onto the station (After
Last Part).
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MySingleProc.SetupAfterNumParts := 250;
MySingleProc.SetupAfterNPartsMode := "After Last Part";
Related Topic
After n parts
SetupAfterNumParts
Syntax: Path.SetupAfterNumParts
The attribute SetupAfterNumParts sets after how many parts the object designated by Path sets up.
Entering 0 deactivates setting-up after the number of parts.
If you do not want this, select the setting Off for Setup depends on or set the attribute SetupForType
to false. Then the station only sets up after the selected number of parts.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MySingleProc.SetupAfterNumParts := 250;
MySingleProc.SetupAfterNPartsMode := "After Last Part";
Related Topic
After n parts
SetupAttrName
Syntax: Path.SetupAttrName
The attribute SetupAttrName sets if the object designated by Path sets up depending on a MU name
or depending on a user-defined attribute. For the former, you have to enter an empty string (""), for
the latter the name of the attribute.
Data Type of Value You Can Assign
You can assign a value of data type string.
Related Topic
Set-up depends on
SetupCtrl
Syntax: Path.SetupCtrl
The attribute SetupCtrl designates a Method object, the Set-up control, that is called, whenever a
set-up process starts or ends. You can use the method setUp to find out if the set-up process starts
or ends. When ?.setup returns true, the set-up process just started. When you did not enter the
name of a method, the attribute SetupCtrl returns VOID.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MySingleProc.SetupCtrl := &mySetUpControl
SetupForType
Syntax: Path.SetupForType
The attribute SetupForType sets if the object designated by Path sets up when the type of MU
changes (true) or does not set up (false). When you assign f the station will the station will only be
set-up after the number of parts that you selected.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MySingleProc.SetupForType := true –- sets up when the MU type changes
MySingleProc.SetupForType := false –- does not set up when the MU type changes
Related Topic
Set-up depends on
SetUpOnlyWhenEmpty
Syntax: Path.SetUpOnlyWhenEmpty
The attribute SetUpOnlyWhenEmpty sets if MUs may remain on the object designated by Path
during the set up process (true) or not (false).
The set-up time begins when all set-up processes which you specified are finished. MUs located on
the object will be processed with the settings for the MU class for which the object was set-up before.
Related Topic
Only when empty
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Failed
Syntax: Path.Failed
The attribute Failed sets if the object designated by Path is failed ( true ) or not ( false ).
You can also fail the object or remove the failure with the check box Failed.
When you manually fail a station, it remains failed while any of the failure profiles you defined is
active. It will change to not failed once the last failure (DisruptionEnd ) of the last failure profile
ends or when you assign false to this attribute.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
During the reset phase of the simulation Plant Simulation resets all failures.
When you set the failed state of a material flow object with the attribute Failed, and you
would like to import a Service for removing the failure, you have to use the method name
of station.failImp.import.
When you requested the service for removing the failure with the method <name of
station.failImp.import, you have to release the imported service, after the failure has been
removed, with the method <name of station.failImp.releaseExporters.
Related Topics
Attributes of the Failure Profiles
Attributes for Failures in the Simplified Notation
FailureActive
Syntax: Path.FailureActive
The attribute FailureActive sets if failures for the object designated by Path are Active (true) or
not (false).
The failure of the object is only active, when you activate this attribute and the attribute
Active of the corresponding failure profile!
Related Topics
Attributes of the Failure Profiles
Attributes for Failures in the Simplified Notation
The static material flow objects provide the attributes Active, Availability, AvailabilityOn, Duration,
Failed, Interval, Mode, MTTR, Name, Start, and Stop for defining failure profiles.
The objects address failure profile attributes as sub-attributes of Failures.
Related Topics
Tab Failures
Attributes for Failures in the Simplified Notation
Active
Syntax: Path.Failures.NameOfFailureProfile.Active
The attribute Active sets if this failure profile designated by NameOfFailureProfile is Active (true) or
not (false).
The failure of the object is only active, when you activate this attribute, i.e., the failure
profile itself, and the attribute FailureActive of the object as such!
Availability
Syntax: Path.Failures.NameOfFailureProfile.Availability
The attribute Availability sets the Availability in percent of the object designated by Path. Availability is
the proportion of time during which a machine is in an operable state.
You can only query the Availability, when the representation Availability % and MTTR
is active, otherwise the Debugger opens!
When you selected the representation Interval and Duration, and you assign a value to the
Availability %, either in SimTalk, with the AttributeExplorer, etc., Plant Simulation changes the
representation to Availability % and MTTR. It then uses the percentage value you entered for the
Availability % and enters a default value of 1 hour for the MTTR.
When you set these two values via information flow with these attributes, the following assignments
MySingleProc.Failures.MyFailureProfile1.MTTR := 60;
MySingleProc.Failures.MyFailureProfile1.availability := 100;
result in an MTTR of 0, i.e., the SingleProc will not fail during the simulation.
result in an availability of the SingleProc of 95 percent. This is a typical value for the availability of a
machine. For these settings the SingleProc will fail during the simulation.
When you change failure settings, this does not affect the already computed failure
events. If you would like the changed settings to take effect immediately, you first have to
assign the value false to the attribute Active, and then reassign the value true again to
the attribute Active after changing the duration of the failure. This causes a new failure
event to be calculated.
When you set an availability of 100 percent, meaning that the station will never fail, and
subsequently change the availability to a more realistic value, say 50 percent, Plant
Simulation will only apply this new setting when you first assign the value false to the
attribute Active, and then reassign the value true to the attribute Active again after setting
the attribute Availability.
Example: -- Reduces the availability and the MTTR during the simulation run.
-- This method is called by the init method via a methCall after 12 hours.
print EventController.SimTime," Simulated availability in the morning: ",round
MyStation.InitStat;
-- reduce the availability:
MyStation.Availability := 80;
MyStation.MTTR := str_to_time("10:00");
MyStation.FailureActive := false;
MyStation.FailureActive := true; -- activate failures
Related Topic
MTTR
AvailabilityOn
Syntax: Path.Failures.NameOfFailureProfile.AvailabilityOn
The read-only attribute AvailabilityOn returns, if the object designated by Path uses the representation
Availability and MTTR or the representation Interval and Duration for failures.
Example: print MySingleProc.Failures.MyFailureProfile1.AvailabilityOn;
Duration
Syntax: Path.Failures.NameOfFailureProfile.Duration
The attribute Duration sets the Duration of a failure for the object designated by Path.
When you change failure settings, this does not affect the already computed EndFailure
event.
When a station fails, and a pause occurs during the failure, the failure time of the station
will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap as pause time.
Failed
Syntax: Path.Failures.NameOfFailureProfile.Failed
The attribute Failed sets if the failure profile designated by Path is Failed (true) or not (false). The
attribute is observable.
Interval
Syntax: Path.Failures.NameOfFailureProfile.Interval
The attribute Interval sets the Interval between two failures for the object designated by Path. Note
that failures only occur when Interval or Duration have a value greater than 0.
When you change failure settings, this does not affect the already computed failure events.
If you would like the changed settings to take effect immediately, you first have to assign
the value false to the attribute Active, and then reassign the value true to the attribute
Active again after changing the interval of the failure. This causes a new failure event to
be calculated.
Mode
Syntax: Path.Failures.NameOfFailureProfile.Mode
The attribute Mode sets to which time failures of the object designated by Path relate: The simulation
time, The processing time, or The operating time.
Data Type of Value You Can Assign
You can assign a value of data type string, namely SimulationTime, ProcessingTime, or OperatingTime.
When a station fails, and a pause takes place during the failure, the failure time of the
station will still be consumed, although the station is paused. The DisruptionEnd event
will not be changed.
When a station, which fails based on the processing time or the operating time and which
is interrupted by a pause or failure, the processing time or the operating time of the station
for simulating the MTBF will not be consumed. The points in time for the DisruptionBegin
event will be moved forward into the future.
Statistics counts the times during which these two states overlap as pause time.
Example: MySingleProc.Failures.MyFailureProfile1.Mode := "OperatingTime";
Related Topic
Failure relates to
MTTR
Syntax: Path.Failures.NameOfFailureProfile.MTTR
The attribute MTTR sets the mean time to repair (MTTR) of the object designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MySingleProc.Failures.MyFailureProfile1.MTTR := 3600; -- 1 hour
You can only query the MTTR, when the representation Availability % and MTTR is active,
otherwise the Debugger opens!
When you selected the representation Interval and Duration, and you assign a value
to the MTTR, in SimTalk, with the AttributeExplorer, etc., Plant Simulation changes the
representation to Availability % and MTTR. It then uses the value you entered for the
MTTR and enters a default value of 95 percent for the Availability %.
When you set these two values via information flow with these attributes, the following assignments
MySingleProc.Failures.NameOfFailureProfile.MTTR := 60;
MySingleProc.Failures.NameOfFailureProfile.Availability := 100;
result in an MTTR of 0, i.e., the SingleProc will not fail during the simulation.
The following sequence of assignments
MySingleProc.Failures.NameOfFailureProfile.Availability := 100;
MySingleProc.Failures.NameOfFailureProfile.MTTR := 60;
result in an availability of the SingleProc of 95 percent. This is a typical value for the availability of a
machine. For these settings the SingleProc will fail during the simulation.
When you change failure settings, this does not affect the already computed failure events.
If you would like the changed settings to take effect immediately, you first have to assign
the value false to the attribute Active, and then reassign the value true again to the
attribute Active after changing the MTTR. This causes a new failure event to be calculated.
When you set the MTTR to 0, meaning that the station will never fail, and subsequently
change the MTTR to a more realistic value, say 60 seconds, Plant Simulation will only
apply this new setting when you first assign the value false to the attribute Active, and
then reassign the value true to the attribute Active again.
Related Topic
Availability
MTTR.getBounds
Syntax: Path.Failures.NameOfFailureProfile.MTTR.getBounds(byref LowerBound:<time, byre
The sub-method MTTR.getBounds gets the bounds of the mean time to repair (MTTR) of the object
designated by Path.
It writes them to the local variables designated by the parameters of data type time.
Example: -- SimTalk 2.0 notation
var lower,upper: time
MySingleProc.Failures.MyFailureProfile1.MTTR.getBounds(lower, upper)
print lower, " ", upper
MTTR.setBounds
Syntax: Path.Failures.NameOfFailureProfile.MTTR.setBounds(LowerBound:<time, UpperBound
The sub-method MTTR.setBounds sets the bounds of the mean time to repair (MTTR) of the object
designated by Path.
If you would like to delete the bound of the MTTR, enter MTTR. setBounds(0,0).
When you use bounds, both bounds have to have positive values and the mean time to repair has to
be located between the bounds. For given bonds the mean time to repair might not be realizable
although both conditions are met.
The Availability and the MTTR are internally converted into the parameters of the
statistical distributions of the failure interval and of the failure duration. During the
conversion inexact calculations may happen which might slightly influence the simulated
value of the MTTR. If you change the bounds of the MTTR, we recommend to also set
the value of the MTTR.
Parameters
• The parameter LowerBound of data type time designates the lower bound
• The parameter UpperBound of data type time designates the upper bound.
Name
Syntax: Path.Failures.NameOfFailureProfile.Name
The attribute Name sets the Name of the failure profile. of the object designated by Path.
Start
Syntax: Path.Failures.NameOfFailureProfile.Start
The attribute Start sets the Start time that has to pass before the first failure of the object designated
by Path occurs.
When you enter 0, Plant Simulation uses the failure Interval to set the point in time of
the first failure.
When you change failure settings, this does not affect the already computed failure
events. If you would like the changed settings to take effect immediately, you first have
to assign the value false to the attribute Active, and then reassign the value true again
to the attribute Active after setting the start time of the failure. This causes a new failure
event to be calculated.
Stop
Syntax: Path.Failures.NameOfFailureProfile.Stop
The attribute Stop sets the Stop time that has to pass before a new failure for the object designated
by Path takes place.
When you change failure settings, this does not affect the already computed failure events.
If you would like the changed settings to take effect immediately, you first have to assign the
value false to the attribute Active, and then reassign the value true again to the attribute
after setting the stop time of the failure. This causes a new failure event to be calculated.
When a material flow object has a single failure profile, we recommend to use the simplified notation
without specifying the profile. Plant Simulation then always addresses the first failure profile. When
you did not define a failure profile, the objects do not provide the attributes below.
The static material flow objects provide the attributesAvailability, FailDuration, FailInterval, FailStart,
FailStop, FailureMode, and MTTR for simplified access to failures.
You can also select these settings in the dialogs of the objects on the Tab Failures.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Availability
Syntax: Path.Availability
The attribute Availability sets the Availability in percent of the object designated by Path. Availability is
the proportion of time during which a machine is in an operable state.
Data Type of Value You Can Assign
You can assign a value of data type real.
You can only query the Availability, when the representation Availability % and MTTR
is active, otherwise the Debugger opens!
When you selected the representation Interval and Duration, and you assign a value to the
Availability %, either in SimTalk, with the AttributeExplorer, etc., Plant Simulation changes the
representation to Availability % and MTTR. It then uses the percentage value you entered for the
Availability % and enters a default value of 1 hour for the MTTR.
When you set these two values via information flow with these attributes, the following assignments
MySingleProc.MTTR := 60;
MySingleProc.Availability := 100;
result in an MTTR of 0, i.e., the SingleProc will not fail during the simulation.
The following sequence of assignments
MySingleProc.Availability := 100;
MySingleProc.MTTR := 60;
result in an availability of the SingleProc of 95 percent. This is a typical value for the availability of a
machine. For these settings the SingleProc will fail during the simulation.
When you change failure settings, this does not affect the already computed failure events.
If you would like the changed settings to take effect immediately, you first have to assign the
value false to the attribute Active, and then reassign the value true again to the attribute
after changing the Duration of the failure. This causes a new failure event to be calculated.
When you set an availability of 100 percent, meaning that the station will never fail, and
subsequently change the availability to a more realistic value, say 50 percent, Plant
Simulation will only apply this new setting when you first assign the value false to the
attribute Active, and then reassign the value true to the attribute Active again after setting
the attribute Availability.
FailDuration
Syntax: Path.FailDuration
The attribute FailDuration sets the Duration of a failure for the object designated by Path.
When you change failure settings, this does not affect the already computed EndFailure
event.
When a station fails, and a pause occurs during the failure, the failure time of the station
will still be consumed, although the station is paused.
Statistics counts the times during which these two states overlap as pause time.
You can assign a value of data type time.
Example: MySingleProc.FailDuration := 6.85; -- 6.85 seconds
FailInterval
Syntax: Path.FailInterval
The attribute FailInterval sets the Interval between two failures for the object designated by Path.
Note that failures only occur when FailInterval or FailDuration have a value greater than 0.
When you change failure settings, this does not affect the already computed failure events.
If you would like the changed settings to take effect immediately, you first have to assign
the value false to the attribute Active, and then reassign the value true to the attribute
Active again after changing the interval of the failure. This causes a new failure event to
be calculated.
FailStart
Syntax: Path.FailStart
The attribute FailStart sets the Start time that has to pass before the first failure of the object
designated by Path occurs.
When you change failure settings, this does not affect the already computed failure
events. If you would like the changed settings to take effect immediately, you first have
to assign the value false to the attribute Active, and then reassign the value true again
to the attribute Active after setting the start time of the failure. This causes a new failure
event to be calculated.
FailStop
Syntax: Path.FailStop
The attribute FailStop sets the Stop time that has to pass before a new failure for the object
designated by Path takes place. Enter 0, so that no time limit applies.
When you change failure settings, this does not affect the already computed failure
events. If you would like the changed settings to take effect immediately, you first have
to assign the value false to the attribute Active, and then reassign the value true again
to the attribute Active after setting the stop time of the failure. This causes a new failure
event to be calculated.
FailureMode
Syntax: Path.FailureMode
The attribute FailureMode sets what failures relate to for the object designated by Path: The
simulation time, The processing time or The operating time.
Data Type of Value You Can Assign
You can assign a value of data type string, namely SimulationTime, ProcessingTime, or OperatingTime.
Related Topic
Failure relates to
MTTR
Syntax: Path.MTTR
The attribute MTTR sets the mean time to repair (MTTR) of the object designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type time.
You can only query the Availability , when the representation Availability % and MTTR
is active, otherwise the Debugger opens!
When you selected the representation Interval and Duration, and you assign a value to the
Availability %, either in SimTalk, with the AttributeExplorer, etc., Plant Simulation changes the
representation to Availability % and MTTR. It then uses the percentage value you entered for the
Availability % and enters a default value of 1 hour for the MTTR.
When you set these two values via information flow with these attributes, the following assignments
MySingleProc.MTTR := 60;
MySingleProc.Availability := 100;
result in an MTTR of 0, i.e., the SingleProc will not fail during the simulation.
The following sequence of assignments
MySingleProc.Availability := 100;
MySingleProc.MTTR := 60;
result in an availability of the SingleProc of 95 percent. This is a typical value for the availability of a
machine. For these settings the SingleProc will fail during the simulation.
When you change failure settings, this does not affect the already computed failure events.
If you would like the changed settings to take effect immediately, you first have to assign
the value false to the attribute Active, and then reassign the value true again to the
attribute Active after changing the MTTR. This causes a new failure event to be calculated.
When you set the MTTR to 0, meaning that the station will never fail, and subsequently
change the MTTR to a more realistic value, say 60 seconds, Plant Simulation will only
apply this new setting when you first assign the value false to the attribute Active, and
then reassign the value true to the attribute Active again.
Plant Simulation provides the attributes for the energy simulation of the material flow objects:
EnergyCurrentState, EnergyActive, EnergyPauseEndState, EnergyPausePowerUpEarly,
EnergyPauseStartState, EnergyUnplannedEndState, EnergyUnplannedPowerUpEarly,
EnergyUnplannedStartState, PowerInput, PowerInputFailed, PowerInputOff, PowerInputOperational,
PowerInputSettingUp, PowerInputStandby, PowerInputWorking, TransitionTimeOffToOperational,
TransitionTimeOffToStandby, TransitionTimeOperationalToOff, TransitionTimeOperationalToStandby,
TransitionTimeStandbyToOff, and TransitionTimeStandbyToOperational.
You can also select these settings in the dialogs of the material flow objects on the Tab Energy.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Also compare the Methods for Querying Energy Consumption Statistics of the Material Flow Objects.
EnergyActive
Syntax: Path.EnergyActive
The attribute EnergyActive sets if the energy features for the object designated by Path are Active
(true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Active
EnergyCurrentState
Syntax: Path.EnergyCurrentState
The attribute EnergyCurrentState sets the energy state of the object designated by Path.
You can only set the target energy state of the object, provided it is not failed.
• If the current energy state is Operational, Standby or Off, you can set the states Operational,
Standby, or Off.
• If the current energy state is Setting-up or Working, you can set the states Standby, or Off.
After you set another state, the current state is interrupted first.
Related Topic
State
EnergyPauseEndState
Syntax: Path.EnergyPauseEndState
The attribute EnergyPauseEndState sets the energy end state for a pause of the object designated
by Path. You can enter Previous state, Operational, Standby, or Off.
The previous state is the state the object was in before the pause.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: SingleProc.EnergyPauseEndState := "Operational";
Related Topic
End
EnergyPausePowerUpEarly
Syntax: Path.EnergyPausePowerUpEarly
The attribute EnergyPausePowerUpEarly sets if the object designated by Path powers up early
during a pause so that the machine has the correct energy state at the end of the pause (true) or not
(false). When you assign false, powering up starts at the end of the pause.
When you set the attribute EnergyPausePowerUpEarly to true, the machine powers
up/down while the machine is paused. Therefore the powering up/down time is part
of the paused time.
Related Topic
Power up early
EnergyPauseStartState
Syntax: Path.EnergyPauseStartState
The attribute EnergyPauseStartState sets the energy start state for a pause of the object designated
by Path. You can enter No change, Standby, or Off.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: SingleProc.EnergyPauseStartState := "Standby";
Related Topic
Start
EnergyTargetState
Syntax: Path.EnergyTargetState
The attribute EnergyTargetState sets the target energy state of the object designated by Path.
You can only set the target energy state of the object, provided it is not failed.
• If the current energy state is Operational, Standby or Off, you can set the states Operational,
Standby, or Off.
After you set another state, the power transition uses the time which you entered under Transition
Times.
• If the current energy state is Setting-up or Working, you can set the states Standby or Off.
After you set another state, the current state is interrupted, resulting in the state Operational.
(This process does not use up any time.) Then the power transition uses the time which you
entered under Transition Times.
Related Topic
State
EnergyUnplannedEndState
Syntax: Path.EnergyUnplannedEndState
The attribute EnergyUnplannedEndState sets the energy end state for the unplanned state of the
object designated by Path. You can enter Previous state, Operational, Standby, or No change.
The previous state is the state the object was in before the unplanned phase.
Data Type of Value You Can Assign
You can assign a value of data type string.
Related Topic
End
EnergyUnplannedPowerUpEarly
Syntax: Path.EnergyUnplannedPowerUpEarly
The attribute EnergyUnplannedPowerUpEarly sets if the object designated by Path powers up early
during an unplanned phase so that the machine has the correct energy state at the end of that phase
(true ) or not (false ). When you assign false, powering up starts at the end of the unplanned phase.
When you set the attribute EnergyUnplannedPowerUpEarly to true, the machine powers
up/down while the machine is unplanned. Therefore the powering up/down time is part
of the unplanned time.
Related Topic
Power up early
EnergyUnplannedStartState
Syntax: Path.EnergyUnplannedStartState
The attribute EnergyUnplannedStartState sets the energy start state for the unplanned state of the
object designated by Path. You can enter No change, Standby, or Off.
Data Type of Value You Can Assign
You can assign a value of data type string.
Related Topic
Start
PowerInput
Syntax: Path.PowerInput
The read-only attribute PowerInput shows the current power input of the object designated by Path
depending on the current energy state in kilowatts.
Return Value
The return value of data type real.
Related Topic
Active
PowerInputFailed
Syntax: Path.PowerInputFailed
The attribute PowerInputFailed sets the power input of the state failed of the object designated by
Path.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.PowerInputFailed := 2;
Related Topic
Failed
PowerInputOff
Syntax: Path.PowerInputOff
The attribute PowerInputOff sets the power input of the state off of the object designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.PowerInputOff := 1;
Related Topic
Off
PowerInputOperational
Syntax: Path.PowerInputOperational
The attribute PowerInputOperational sets the power input of the state operational of the object
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.PowerInputOperational := 0.5;
Related Topic
Operational
PowerInputSettingUp
Syntax: Path.PowerInputSettingUp
The attribute PowerInputSettingUp sets the power input of the state setting-up of the object
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.PowerInputSettingUp := 0.001;
Related Topic
Setting-up
PowerInputStandby
Syntax: Path.PowerInputStandby
The attribute PowerInputStandby sets the power input of the state standby of the object designated
by Path.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.PowerInputStandby := 0.1;
Related Topic
Standby
PowerInputWorking
Syntax: Path.PowerInputWorking
The attribute PowerInputWorking sets the power input of the state working of the object designated
by Path.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.PowerInputWorking := 3;
Related Topic
Working
TransitionTimeOffToOperational
Syntax: Path.TransitionTimeOffToOperational
The attribute TransitionTimeOffToOperational sets the transition time which passes when the object
designated by Path changes its energy state from off to operational.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.TransitionTimeOffToOperational := 2:30;
Related Topic
Off to Operational
TransitionTimeOffToStandby
Syntax: Path.TransitionTimeOffToOperational
The attribute TransitionTimeOffToStandby sets the transition time which passes when the object
designated by Path changes its energy state from off to standby.
Related Topic
Off to Standby
TransitionTimeOperationalToOff
Syntax: Path.TransitionTimeOffToStandby
The attribute TransitionTimeOperationalToOff sets the transition time which passes when the object
designated by Path changes its energy state from operational to off.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.TransitionTimeOffToStandby := 4:00;
Related Topic
Operational to Off
TransitionTimeOperationalToStandby
Syntax: Path.TransitionTimeOperationalToStandby
The attribute TransitionTimeOperationalToStandby sets the transition time which passes when the
object designated by Path changes its energy state from operational to standby.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Example: SingleProc.TransitionTimeOperationalToStandby := 3:00;
Related Topic
Operational to Standby
TransitionTimeStandbyToOff
Syntax: Path.TransitionTimeStandbyToOff
The attribute TransitionTimeStandbyToOff sets the transition time which passes when the object
designated by Path changes its energy state from standby to off.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Related Topic
Standby to Off
TransitionTimeStandbyToOperational
Syntax: Path.TransitionTimeStandbyToOperational
The attribute TransitionTimeStandbyToOperational sets the transition time which passes when the
object designated by Path changes its energy state from standby to operational.
Data Type of Value You Can Assign
You can assign a value of data type real or a formula.
Related Topic
Standby to Operational
The material flow objects provide the attributes ResourceType and ResStatOn or setting and
activating resource statistics. The objects show most of these values on the Tab Statistics.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
ResourceType
Syntax: Path.ResourceType
The attribute ResourceType sets the type of resource for the object designated by Path: Production,
Storage, or Transport. The attribute only affects the statistics collection of the MUs located on the
object. Compare Additional Statistical Data of the MUs.
Related Topic
Resource type
ResStatOn
Syntax: Path.ResStatOn
The attribute ResStatOn activates statistics collection of the object designated by Path (true) or
deactivates it (false). The attribute is inherited, so if you want to turn statistics collection on or off for
all instances of a class, assign true or false to ResStatOn.
As opposed to the method InitStat the attribute does not set the point in time at which statistics
collection starts.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Resource statistics
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
BwEntranceCtrl
Syntax: Path.BwEntranceCtrl
The attribute BwEntranceCtrl designates a Method object that Plant Simulation activates when the
MU enters the length-oriented objects Line, Track, or TwoLaneTrack designated by Path via their
exit and/or when it moves towards their entrance after entering.
Data Type of Value You Can Assign
You can assign a value of data type object.
Related Topic
Backward entrance control
BwEntranceCtrlFront
Syntax: Path.BwEntranceCtrlFront
The attribute BwEntranceCtrlFront sets if the length-oriented objects Line, Track or TwoLaneTrack
designated by Path activate the Backward entrance control, when the Front of the MU enters the
length-oriented objects via their exit and/or when it moves towards their entrance after entering
(true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTrack.BwEntranceCtrlFront := false;
MyTwoLaneTrack.B.BwEntranceCtrlFront := true;
MyLine.BwEntranceCtrlFront := false;
Related Topic
Backward entrance control
BwEntranceCtrlRear
Syntax: Path.BwEntranceCtrlRear
The attribute BwEntranceCtrlRear sets if the length-oriented objects Line, Track or TwoLaneTrack
designated by Path activate the Backward entrance control, when the Rear of the MU enters the
length-oriented objects via their exit and/or when it moves towards their entrance after entering
(true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTrack.BwEntranceCtrlRear := true;
MyTwoLaneTrack.B.BwEntranceCtrlRear := true;
MyLine.BwEntranceCtrlRear := false;
Related Topic
Backward entrance control
BwExitCtrl
Syntax: Path.BwExitCtrl
The attribute BwExitCtrl designates a Method object that Plant Simulation when the MU exits the
length-oriented objects Line, Track, or TwoLaneTrack designated by Path via their entrance and/or
when it moves towards their entrance when exiting.
Data Type of Value You Can Assign
You can assign a value of data type method.
Related Topic
Backward exit control
BwExitCtrlFront
Syntax: Path.BwExitCtrlFront
The attribute BwExitCtrlFront sets if the length-oriented objects Line, Track, or TwoLaneTrack
designated by Path activate the Backward exit control, when the front of the MU exits the objects via
their entrance and/or when it moves towards their entrance when exiting (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Backward exit control
BwExitCtrlRear
Syntax: Path.BwExitCtrlRear
The attribute BwExitCtrlRear sets if the length-oriented objects Line, Track, or TwoLaneTrack
designated by Path activate the Backward exit control, when the rear of the MU exits via their
entrance and/or when it moves towards their entrance when exiting (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
EntranceCtrl
Syntax: Path.EntranceCtrl;
The attribute EntranceCtrl designates a Method object, the Entrance control, which the object
designated by Path calls as soon as an MU enters. When you did not enter a method, the attribute
EntranceCtrl returns the value VOID.
As the MU is already located on the object when the entrance control is called, set-up
and processing times for this MU cannot be changed any more. You can set the set-up
time and the processing time with a formula.
AttemptToRemoveNextPart
AttemptToRemoveNextPart;
Related Topics
Create Entrance and Exit Controls
Change the Processing Time in the Entrance Control
Change the Services of the Importer in the Entrance Control
Change the Assembly List in the Entrance Control
EntranceCtrlBeforeActions
Syntax: Path.EntranceCtrlBeforeActions
The attributeEntranceCtrlBeforeActions sets if the object designated by Path activates the Entrance
control before the standard actions are executed (true) or after they are executed (false).
Actions encompass starting the processing time or the set-up time, requesting services through
the importer, or changing the assembly table of the Assembly station.
Related Topics
Entrance control > Before actions
Create Entrance and Exit Controls
Change the Processing Time in the Entrance Control
Change the Services of the Importer in the Entrance Control
Change the Assembly List in the Entrance Control
EntranceCtrlFront
Syntax: Path.EntranceCtrlFront
The attributeEntranceCtrlFront sets if the object designated by Path triggers the entrance control as
soon as the front of the MU enters the object (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: -- SimTalk 2.0 notation
if MyTrack.EntranceCtrlFront = false
MyTrack.EntranceCtrlFront := true
end
Related Topic
Entrance control > Front
EntranceCtrlRear
Syntax: Path.EntranceCtrlRear
The attributeEntranceCtrlRear sets if the object designated by Path triggers the entrance control as
soon as the rear of the MU enters the object (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: MyLine.EntranceCtrlRear := true;
Related Topic
Entrance control > Rear
ExitCtrl
Syntax: Path.ExitCtrl
The attribute ExitCtrl designates a Method object, the Exit control, which is called as soon as an MU
exits the object designated by Path. When you did not enter the name of a method, the attribute
ExitCtrl returns VOID.
When the MU is a Transporter with a destination control, the destination control will
not be called.
Parameter
The exit control can have an optional parameter of data type object. When the method
has this parameter, then the successor object, which pulls the MU because the MU was
contained in the blocking list of the object, will be assigned to this parameter. The MU
will be pulled, for example, when the successor becomes available again or when its
entrance is opened.
is
WorkPlan : table;
NextStation : object;
do
WorkPlan := root.MyWorkPlan["Operations",@.EntityType];
if @.PositionInWorkPlan = WorkPlan.ydim
then
@.Move(root.Shipping); -- end of production
else
NextStation := WorkPlan["Operation", @.PositionInWorkPlan + 1];
if @.Move(NextStation)
then
@.PositionInWorkPlan := @.PositionInWorkPlan + 1;
end;
end;
end;
Related Topics
Create Entrance and Exit Controls
Distribute Parts with an Exit Control
ExitCtrlFront
Syntax: Path.ExitCtrlFront
The attributeExitCtrlFront sets if the object designated by Path triggers the Exit control as soon as
the front of the MU exits (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyLine.ExitCtrlFront := false;
Related Topic
Exit control > Front
ExitCtrlOnce
Syntax: Path.ExitCtrlOnce
The attribute ExitCtrlOnce sets if the object designated by Path triggers the Exit control only once
when the part intends to exit the object ( true) or if the exit control is triggered again when the part
is unblocked (false).
If the target station cannot receive the part, the part is entered into the entrance blocking list of the
target station. As soon as the target station becomes available again, the part is unblocked. If you
would like to call the exit control again now, enter false.
When the station is failed or paused, all transfer processes are canceled and the parts are
removed from the entrance blocking lists of the succeeding stations. When the station
becomes operational again, the fully processed parts get a new Out event and the exit
control is called again independent of this setting.
Related Topic
Exit control > Exit control once
ExitCtrlRear
Syntax: Path.ExitCtrlRear
The attributeExitCtrlRear sets if the object designated by Path triggers the Exit control as soon as
the rear of the MU exits ( true ) or not (false).
Data Type of Value You Can Assign
Related Topic
PullCtrl
Syntax: Path.PullCtrl
The attribute PullCtrl designates a Method object, that is called, whenever the object designated by
Path is ready to receive a new MU or when it is ready, when a new MU is waiting at its entrance. In
the Pull control you can determine which of the parts, which intends to move onto the object, the
object will accept. For this you have to get the forward blocking list with the method fwBlockList and
unblock an MU in the list with the method unblock.
Let us assume that red parts are especially important and thus have to priority for being processed.
Then you can always pull red parts first from the predecessors and only then pull parts in other colors.
For the objects Line, Track, and TwoLaneTrack the pull control only applies to MUs
moving in the forward direction, i.e., to objects, which move onto them at their entrance and
exit them at their exit. It does not apply to MUs moving onto them backwards at their exit!
SetupCtrl
Syntax: Path.SetupCtrl
The attribute SetupCtrl designates a Method object, the Set-up control, that is called, whenever a
set-up process of the object designated by Path starts or ends. When you did not enter the name of a
method, the attribute SetupCtrl returns VOID.
You can use the method setUp to find out if the set-up process starts or ends. When ?.setup returns
true, the set-up process just started.
ShiftCalendarObject
Syntax: Path.ShiftCalendarObject
The attribute ShiftCalendarObject sets the ShiftCalendar which the material flow object designated by
Path uses when it is working in shifts.
Related Topic
Shift calendar
Attributes for Setting the Exit Strategy of the Material Flow Objects
Attributes for Setting the Exit Strategy of the Material Flow Objects
The Source, the SingleProc, the ParallelProc, the PlaceBuffer, the Buffer, the Sorter, the Line, the
Track, and the TwolaneTrack provide these attributes for setting and getting their exit strategy:
AttributeType, DefaultSuccessor, ExitStrategy, ExitStrategyBlocking, ExitStrategyMUAttributeList,
ExitStrategyPercentageValues, ExitStrategySequence, MaxDwellTime, and MUTarget.
You can also select these settings in the dialogs of the objects on the Tab Exit.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected nstance.
AttributeType
Syntax: Path.AttributeType
For the exit strategy MU Attribute the attribute AttributeType sets the data type of the attributes that
determine how the object designated by Path moves the MUs on to its successors.
Data Type of Value You Can Assign
You can assign a value of data type string.
DefaultSuccessor
Syntax: Path.DefaultSuccessor
The attribute DefaultSuccessor sets the number of the Default Successor to which the object
designated by Path moves the part, when you set the attribute ExitStrategy to MU Attribute. This
is the successor to which the material flow object moves the MU, when this MU does not have an
attribute with the Value you entered into the TableFile.
To not move a part, which does not meet one of the conditions on the table, enter 0.
To show a message, when a part is to be moved which does not meet any of the conditions in the
TableFile, enter a negative number.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: ParallelProc.DefaultSuccessor := 1;
ExitStrategy
Syntax: Path.ExitStrategy
The attribute ExitStrategy sets the transfer strategy for MUs which leave the material flow object
designated by Path. You can enter Cyclic, Start at successor 1, Random, Percentage, Cyclic
sequence, Linear sequence, Least recent demand, Most recent demand, Max. contents, Min.
contents, Max. proc. time, Min. proc. time, Max. set-up time, Min. set-up time, Max. num. in, Min.
num. in, Max. rel. occu., Min. rel. occu., MU Attribute, or Carry part away.
Plant Simulation only takes the exit strategy for length-oriented objects into account, when
the part moves in the forward direction.
ExitStrategyBlocking
Syntax: Path.ExitStrategyBlocking
The attribute ExitStrategyBlocking sets whether the material flow object designated by Path uses the
Blocking logic when an MU exits (true) or not (false).
• When you activate ExitStrategyBlocking, the material flow object always moves the part to the
designated successor. If that successor is not ready to receive it, the part will be blocked.
When moving the part fails, Plant Simulation enters the part into the Forward Blocking List of
the designated successor.
• When you deactivate ExitStrategyBlocking, the material flow object moves the part to any of
its successors, which can receive it. The part will only be blocked, if none of the successors
can receive it.
When none of the successors can accept the part, Plant Simulation enters it into the forward
blocking list of all successors.
The non-blocking strategy of the exit strategy > MU Attribute moves the part on when
any of the desired successors can receive it.
In both cases Plant Simulation schedules an Out event for the part, when a successor whose forward
blocking list contains the part can accept it.
Data Type of Value You Can Assign
ExitStrategyMUAttributeList
Syntax: Path.ExitStrategyMUAttributeList
The attribute ExitStrategyMUAttributeList sets the contents of the attribute list of the material flow
object designated by Path for the Exit strategy MU Attribute.
You can enter several numbers of the desired successors into the attribute list for
attribute value. In the non-blocking case Plant Simulation checks which of the desired
successors can receive the MU.
Related Topic
Data Held in Tabular Form in Attributes
ExitStrategyPercentageValues
Syntax: Path.ExitStrategyPercentageValues
The attribute ExitStrategyPercentageValues sets the contents of the internal exit list of the material
flow object designated by Path for the Exit strategies Percentage and Random.
Data Type of Value You Can Assign
Related Topic
Data Held in Tabular Form in Attributes
ExitStrategySequence
Syntax: Path.ExitStrategySequence
The attribute ExitStrategySequence sets the contents of the internal exit list of the material flow object
designated by Path for the Exit strategies Cyclic sequence and Linear sequence.
Data Type of Value You Can Assign
You can assign a value of data type array.
Example: MySingleProc.ExitStrategy := "Cyclic sequence";
MySingleProc.ExitStrategySequence := makeArray(2,1,3);
MaxDwellTime
Syntax: Path.MaxDwellTime
The attribute MaxDwellTime sets the time during which the Worker waits for the parts, which he is to
carry to the target station (MU target). This applies to the exit strategy Carry part away. Once the
Maximum dwell time has passed, he walks to the target station, no matter if his carrying capacity is
met or not. You can use the anonymous identifier @ to access the Worker for whom the maximum
dwell time applies. The Worker picks up the parts which the station finished processing within the
maximum dwelling time.
If you want the Worker to wait until he can pick up all parts up to his carrying capacity,
enter a very long time.
The maximum dwell time only applies to the objects, which provide a transport-importer,
i.e., for the SingleProc, the ParallelProc, the Assembly Station, the DismantleStation,
the Sorter, the Buffer and the PlaceBuffer.
MUTarget
Syntax: Path.MUTarget;
The attribute MUTarget sets the station to which the Worker carries the part for the exit strategy
Carry part away. The MU target is the Workplace attached to the work station, which processes the
part next, or the work station itself.
Data Type of Value You Can Assign
You can assign a value of data type object.
The importer provides the attributes Active, BrokerPath, Common, Interruptible, Priority,
ReleaseAllServices, ReceiveCtrl, ReleaseCtrl, and RequestCtrl.
Only the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation, the Mixer, the
Portioner, the DePortioner, and the Tank can import services, which you define on the Tab Importer.
• Plant Simulation addresses all failure-importer attributes as sub-attributes of failImp in attributes.
Related Topics
Tab Importer
Methods of the Importer
Active
Syntax: Path.imp.Active
Path.failImp.Active
Path.setupImp.Active
The attribute Active activates (true) or deactivates (false) the importer/failure importer/setup importer
of the object designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topics
Sub-tab Processing > Active
Sub-tab Set-up > Active
Sub-tab Failure > Active
BrokerPath
Syntax: Path.failImp.BrokerPath
Path.imp.BrokerPath
Path.setupImp.BrokerPath
Path.transportImp.BrokerPath
The attribute BrokerPath designates the Broker of the object designated by Path, which the Exporter
uses to provide its services.
For Broker hierarchies Plant Simulation only calls the control of this Broker, not the controls
of any existing sub Brokers.
Related Topics
Broker for the importer
Broker for the failure importer
Broker for the transport importer
Common
Syntax: Path.imp.Common
The attribute Common activates Common resources (true) or deactivates it (false) for the
object designated by Path. Selecting Common resources deactivates the set-up-importer. The
processing-importer requests Exporters when set-up starts and releases them when processing is
finished. When you clear Common resources, the processing-importer will only request Exporters
when processing starts. At the beginning of setting-up, the set-up-importer requests Exporters
and releases them when setting-up is finished.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MySingleProc.imp.Common := true;
Interruptible
Syntax: Path.failImp.Interruptible
Path.imp.Interruptible
Path.transpImp.Interruptible
The attribute Interruptible sets if importers with a higher priority can withdraw resources, i.e., Workers
or Exporters, from this importer from the object designated by Path (true) or not (false).
When an importer with higher priority requests services, which the freely available resources cannot
fulfill, and when sufficient interruptible importers with lower priority are available, to which the required
services are brokered at the moment, then as many interruptible importers are interrupted as required
to satisfy the importer with higher priority. The tasks ( processing/setting-up/repair/transport ),
which process the interrupted importer, will then be interrupted and the resources are brokered to the
importer with higher priority
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: ParallelProc.imp.Interruptible := false;
MySingleProc.failImp.Interruptible := true;
MySingleProc.transpImp.Interruptible := true;
Related Topics
Can be interrupted and drawn off for the importer
Can be interrupted and drawn off for the failure importer
Can be interrupted and drawn off for the transport importer
Priority
Syntax: Path.failImp.Priority
Path.imp.Priority
Path.setupImp.Priority
Path.transportImp.Priority
The attribute Priority sets the priority of a request of the object designated by Path. If the Exporter
is not assigned an importer immediately after a request, the importer will be entered in a list of
unsatisfied requests that is arranged according to priority. The higher the value that you enter, the
higher is the priority, i.e., the sooner the job will get done.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: ParallelProc.imp.Priority := 4;
MySingleProc.failImp.Priority := 15;
Related Topics
Priority for the importer
Priority for the failure importer
Priority for the transport importer
ReceiveCtrl
Syntax: Path.failImp.ReceiveCtrl
Path.imp.ReceiveCtrl
Path.setupImp.ReceiveCtrl
Path.transportImp.ReceiveCtrl
The attribute ReceiveCtrl designates a Method object, which the object designated by Path calls,
whenever Exporters were assigned to the importer (string). The Exporter is already located at the
station and provides the service.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Parameters
A Receive control method you enter here has to define two parameters:
• The parameter Type of data type integer designates the type of the importers: 0 designates
the failure/remove failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the
transport-importer.
• The second parameter is a table containing all assigned Exporters. When Exporters were
requested for an MU, you have to start processing of the MU with the method startProcessing.
By calling the method startProcessing later you can also display times the part spent moving
between objects.
Reformatting the method: When you manually enter a request control and click Apply or OK, Plant
Simulation automatically checks if the method expects the correct parameters. When this is not the
case, it shows a message asking to reformat the method or not. Plant Simulation automatically
reformats empty methods. Note that you cannot suppress the checking of the format of the method.
Example: -- SimTalk 2.0 notation
MySingleProc.failImp.ReceiveCtrl := &myReceiveCtrl
ReleaseAllServices
Syntax: Path.imp.ReleaseAllServices
Path.setupImp.ReleaseAllServices
Path.failImp.ReleaseAllServices
The attribute ReleaseAllServices sets if the importer releases all services of the object designated
by Path when one or more of these services are failed, paused, or interrupted (true) or only the
failed services (false).
This only works, when you also select the check box Fail services of the Exporter or set the attribute
FailServices to true.
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: MySingleProc.Imp.ReleaseAllServices := true;
Related Topics
Importer > Release all services, when one of them is failed
Failure Importer > Release all services when one of them is failed
ReleaseCtrl
Syntax: Path.failImp.ReleaseCtrl
Path.imp.ReleaseCtrl
Path.setupImp.ReleaseCtrl
Path.transportImp.ReleaseCtrl
The attribute ReleaseCtrl designates a Method object, which the object designated by Path calls as
soon as the importer releases the Exporters by default.
A Release control method you enter here has to define a parameter characterizing the type of the
importer (integer ): 0 designates the failure/remove failure-importer, 1 the set-up-importer, 2 the
processing-importer, and 3 the transport-importer.
You have to release the Exporters with the method releaseExporters.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Reformatting the method: When you manually enter a request control and click Apply or OK, Plant
Simulation automatically checks if the method expects the correct parameters. When this is not the
case, Plant Simulation shows a message asking to reformat the method or not. Plant Simulation
automatically reformats empty methods. Note that you cannot suppress the checking of the format
of the method.
RequestCtrl
Syntax: Path.failImp.RequestCtrl
Path.imp.RequestCtrl
Path.setupImp.RequestCtrl
Path.transportImp.RequestCtrl
The attribute ReleaseCtrl designates a Method object, which the object designated by Path calls,
whenever the importer sends a request to the Broker.
A Request control method you enter here has to define a parameter characterizing the type of the
importer (integer): 0 designates the failure/remove failure-importer, 1 the set-up-importer, 2 the
processing-importer, and 3 the transport-importer.
The request control, the receive control, and the release control are not called when you reset
the simulation.
You have to make sure that Exporters are assigned to the importer! You can, for example, accomplish
this in the method import. You also have to make sure that the MUs are processed using the method
startProcessing.
Reformatting the method: When you manually enter a request control and click Apply or OK, Plant
Simulation automatically checks if the method expects the correct parameters. When this is not the
case, Plant Simulation shows a message asking to reformat the method or not. Plant Simulation
automatically reformats empty methods. Note that you cannot suppress the checking of the format
of the method.
The length-oriented objects Line, Track, TwoLaneTrack, Turntable, and Transporter provide the
attributes Activate, Ctrl, Destination, Front, Lanes, Lightbarriermode, Position, PositionType, and
Rear for modifying the settings of Sensors.
The path to the attributes has to reference a sensor, which you defined for the object designated by
Path, i.e., it has to have the notation:
Path.sensorID(SensorID:integer)
Path.sensorNo(SensorNumber:integer)
For the loading space of the Transporter, the dialog Show Attributes and Methods , which
you can open by pressing the F8 key, only shows the attributes and methods pertaining
to the selected type of loading space. If you select Track for example, the dialog only
shows the attributes and methods pertaining to the loading space of type Track , not those
pertaining to the loading space of type Store or Line.
Related Topic
Methods of Sensors of the Length-Oriented Objects
Activate
Syntax: Path.Sensor.Activate
The attribute Activate sets when the Transporter triggers the sensor of the Track designated by Path.
• Always, independent of the destination of the Transporter.
• Only when the Transporter has the same destination as the one, which you entered into the
sensor.
Related Topics
Sensors
Activate
Ctrl
Syntax: Path.Sensor.Ctrl
The attribute Ctrl designates a Method object, the sensor Control , which the sensor of the object
designated by Path activates. A value, which you assign, has to be the reference to a Method
(object) or the name of the Method.
As soon as the sensor calls this Method, it passes the Sensor-ID as optional parameter. When the
Method expects an integer parameter, the sensor passes the Sensor ID to the Method; if you do not
enter an integer parameter, the Method will be called without a parameter.
The second optional parameter of data type boolean shows the user if the front or the rear of the
part triggers the control.
Data Type of Value You Can Assign
You can assign a value of data type tring.
else
/*ˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉ
the sensor was triggered by the rear of the MU
_________________________________________________________________________*/
end
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Destination
Syntax: Path.Sensor.Destination
The attribute Destination designates the object to which the Transporter on the Track designated
by Path drives.
Data Type of Value You Can Assign
You can assign a value of data typeobject.
Related Topic
Destination
Front
Syntax: Path.Sensor.Front
The attribute Front sets if object designated by Path calls the Method you entered in the attribute Ctrl,
when the front of the MU passes the sensor (true) or not (false).
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of the
part is located on the right-hand side and moves towards the right. When you insert a
length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box Backwards of the
Line or the Transporter! The Front of the part keeps on pointing towards the end of the length-oriented
object into the direction with which you inserted it along the direction of motion of the material flow.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Related Topic
Sensor > Front
Lanes
Syntax: Path.Sensor.Lanes
The attribute Lanes sets on which lane of the TwoLaneTrack designated by Path the sensor is going
to be inserted: On "Lane A", on "Lane B" or on "Both Lanes".
For a sensor on a Track, the attribute always has the value "Lane A".
Related Topic
Lanes
Lightbarriermode
Syntax: Path.Sensor.Lightbarriermode
The attribute Lightbarriermode sets if a light barrier triggers the sensor when the Line or the
Transporter designated by Path move backwards (true) or not (false). When you activate Front,
the front of the part in the direction of motion triggers the sensor.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Related Topic
Light barrier mode
Position
Syntax: Path.Sensor.Position
The attribute Position sets the position of the sensor on the object designated by Path. Values you
can enter depend on the type of the position. For length you can enter values between 0.0 and the
length of the object, for relative values between 0.0 and 1.0.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Related Topic
Position
PositionType
Syntax: Path.Sensor.PositionType
The attribute PositionType sets the position type of the sensor of the object designated by Path:
relative or length.
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Related Topic
Position
Rear
Syntax: Path.Sensor.Rear
The attribute Front sets if the object designated by Path calls the Method you entered in the attribute
Ctrl, when the rear of the MU passes the sensor (true) or not (false).
Creating and manipulating sensors via SimTalk for the Transporter only works if you select
the loading space Types Track or Line!
Related Topic
Sensor > Rear
You can also select these settings in the dialogs of the objects on the Tab Curve.
To view all of the methods and attributes of the material flow object, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Related Topics
Methods of Curved Objects
Tab Curve
AnimateOnEveryXthPixel
Syntax: Path.AnimateOnEveryXthPixel
The attribute AnimateOnEveryXthPixel sets the distance in pixels at which Plant Simulation animates
the MU on the curved object designated by Path. When you enter 1, it animates the MU on every
pixel, when you enter 10, it animates it on every tenth pixel. The higher the number you enter, the
better the performance will be. When you enter 1, performance may suffer if your model contains a
large number of MUs.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyLine.AnimateOnEveryXthPixel := 6;
Related Topics
Animate every x-th pixel
Tab Curve
BaseHeight
Syntax: Path.BaseHeight
Related Topics
Base height
Base height in 3D
_3D.BaseHeight in 3D
Insert Curved and Straight Segments > anchor point height
Color
Syntax: Path.Color
The attribute Color sets the color of the curved object designated by Path. You can set the RGB
values of the color with the method makeRGBValue. When you assign an invalid value to the attribute
Color, Plant Simulation retains the current color.
Related Topics
Color
Tab Curve
CurveActive
Syntax: Path.CurveActive
The attribute CurveActive activates (true) curve mode for the curved object designated by Path or
deactivates it (false).
Then, you can insert the length-oriented objects that contain curves into your simulation model.
With the attribute AnimateOnEveryXthPixel you can set how often the MUs are animated on the
length-oriented objects.
Related Topic
Active
Tab Curve
CurveWidth
Syntax: Path.CurveWidth
The attribute CurveWidth sets the width of the curved object designated by Path. You can enter
a number between 1 and 500 pixels.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Related Topics
Curve width
Width
Tab Curve
MidLine
Syntax: Path.MidLine
The attribute MidLine sets the style for the line in the middle of the curved object designated by Path.
The icons of the MUs move on this line across your tracks, lines, or conveyors.
Example: MyTrack.MidLine := 3;
Related Topics
Midline style
Tab Curve
ObjectAngle
Syntax: Path.ObjectAngle
The attribute ObjectAngle sets the angle by which Plant Simulation rotates the curved object
designated by Path. Plant Simulation does not re-compute the anchor points, but retains the original
curve and saves the rotation to the attribute ObjectAngle.
When you assign a value in the Segments table, Plant Simulation changes the original anchor points.
Data Type of Value You Can Assign
You can assign a value of data type real.
Related Topics
ObjectMirrored
_3D.Rotation for 3D objects
ObjectMirrored
Syntax: Path.ObjectMirrored
The attribute ObjectMirrored sets if the curved object designated by Path will be mirrored on the
y-axis (true) or not (false). Plant Simulation does not re-compute the anchor points, but retains the
original curve and saves the inversion to the attribute ObjectMirrored.
When you assign a value in the Segments table, Plant Simulation changes the original anchor points.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyLine.ObjectMirrored := true;
print MyLine.ObjectMirrored;
Related Topics
Mirror Vertically
Mirror Horizontally
ObjectAngle
_3D.Rotation for 3D objects
PenColor
Syntax: Path.PenColor
The attribute PenColor sets the color of the outline around the border of the curved object designated
by Path. You can set the RGB values of the color with the method makeRGBValue.
Related Topics
Pen color
Tab Curve
PenWidth
Syntax: Path.PenWidth
The attribute PenWidth sets the line width of the outline around the border of the length-oriented
curved object designated by Path. This can be a value between -1 and 100. The value -1 makes
the outline invisible. The value 0 stands for a pen width of 1 pixel. The value 1 stands for a stroke
weight of 1. This affects zooming in the Frame.
The 3D Viewer does not use this setting.
Example: MyTrack.PenWidth := 4;
Related Topics
Pen width
Tab Curve
RotateMovables
Syntax: Path.RotateMovables
The attribute RotateMovables sets if the MU turns in the direction of motion when it turns in a curve
(true) on the curved object designated by Path. When you type in false, the parts keep their
previous direction/rotation.
We advise to not deactivate Rotate movables as this setting does not influence the
behavior in the 3D Viewer.
When Plant Simulation shows the length-oriented object in curve mode, Plant Simulation
evaluates the setting Rotate MUs ( RotateMovables).
When Plant Simulation shows the object as an icon , Plant Simulation evaluates the setting Same
as the Object (RotateMUs).
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: -- SimTalk 2.0 notation
if MyLine.CurveActive
MyLine.RotateMovables := true
else
MyLine.RotateMUs := true
end
Related Topics
Rotate movables
RotateMUs for point-oriented object
RotateMUs in the Frame
Tab Curve
TransferLengthToObject
Syntax: Path.TransferLengthToObject
The attribute TransferLengthToObject sets if Plant Simulation uses the length of the curved object
designated by Path which you inserted in the layout within the Frame as the Length of the object
(true) or not (false). When the dialog is open, Plant Simulation enters this value into the text box
Length.
When you select transfer length, the program adapts the length of the graphic, when you change
the length if the object only consists of a single straight segment.
When the length cannot be exactly displayed in pixels, the program adapts the length of the graphic.
If you need to use the exact length, clear transfer length.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyLine.TransferLengthToObject := true;
Related Topics
Transfer length
Tab Curve
Transparent
Syntax: Path.Transparent
The attribute Transparent sets if Plant Simulation makes the inside of the curved object designated by
Path transparent, so that the background color of the Frame shines through, (true) or not (false).
Note that the border of the objects remains as it is. To completely hide the curved object, enter a
value less than 0 for the PenWidth.
Not transparent Transparent
Related Topics
Transparent
Tab Curve
AngularConverter
AngularConverter
The AngularConverter changes the conveying direction of the mobile objects from lengthwise to
crosswise conveyance or from crosswise to lengthwise conveyance. The AngularConverter can
contain a single part at any one time.
The AngularConverter moves the part on to its successor within the flow of materials like this:
• The part moves onto the first leg of the AngularConverter. When the Booking point length has
reached the entrance of the AngularConverter, the part drives along the Entry length with the
Entry speed until the booking point length reaches the point at which the conveying direction
changes. There the part triggers the Moving time and changes the conveying direction. At this
point in time the part has to be entirely located on the first leg of the AngularConverter. To enable
the first leg to completely accommodate the entering part, the difference between the MU length
and the booking point length may not be greater than the entry length.
The MU width is then used for all calculations, such as the time until it can exit the object, from
here to the exit point.
After the part has reached the point at which the conveying direction changes, it can continue on the
AngularConverter like this:
Forward. The part moves with its front in the direction of motion of the
material flow.
After changing the conveying direction, the MU retains this direction, meaning
that its front does not point in the direction of the material flow.
Lateral right. The part moves with its right hand side in the direction of
motion. After changing the conveying direction, the MU retains this direction,
meaning that its front does not point in the direction of the material flow.
Backward. The part is turned 180° and moves backwards against the
direction of motion. After changing the conveying direction, the MU retains
this direction, meaning that its front does not point in the direction of the
material flow.
Lateral left. The part moves with its left hand side in the direction of motion.
After changing the conveying direction, the MU retains this direction, meaning
that its front does not point in the direction of the material flow.
Container and Entity show the Conveying direction in their dialog window:
• After the moving time has been consumed and the part has changed its conveying direction,
it continues on the second leg of the AngularConverter. The part drives along the Exit length
with the Exit speed until the Booking point width has reached the exit of the AngularConverter.
When the part has completely exited the AngularConverter, the Moving time is triggered anew
to return the AngularConverter to its original position. After the moving time has passed, the
next part can enter.
To enable the second leg to completely accommodate the leaving part, the difference between the
MU width and the booking point width may not exceed the exit length when the part turns left.
When the part turns right the value for the booking point width may not exceed the exit length.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Examples/Info, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Example Collection and click Open Model.
Related Topics
Double-click the icon of the AngularConverter, which you inserted into a Frame, to open its dialog
window. To change the properties of the Class of the object, double-click it in the Class Library or
on the tab Material Flow in the Toolbox. The dialog elements and menus, which all material flow
objects share, are described under Dialog Items of the Objects.
Related Topics
Label
Tab Attributes
Tab Attributes
Entry length
Enter the length of the first leg of the AngularConverter. It covers the distance from the entry point to
the point at which the AngularConverter switches the conveying direction.
When Transfer length on the Tab Curve is active, the program adapts the graphic
of the AngularConverter, when you change the entry length. When the length cannot be exactly
displayed in pixels, the program adapts the length of the graphic. If you need to use the exact
length, clear transfer length.
SimTalk:
EntryLength
Exit length
Enter the length of the second leg of the AngularConverter. It covers the distance from the point at
which the AngularConverter switches the conveying direction to the point at which the part exits
the object.
When Transfer length on the Tab Curve is active, the program adapts the graphic
of the AngularConverter, when you change the exit length. When the length cannot be exactly
displayed in pixels, the program adapts the length of the graphic. If you need to use the exact
length, clear transfer length.
SimTalk:
ExitLength
Width
Enter the width of the AngularConverter. The width only applies when the setting Transfer length is
activated.
You can only enter the Curve width when you deactivate Transfer length. When you
activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Entry speed
Enter the speed with which the MUs moves on the AngularConverter from the entry point to the point
at which the AngularConverter switches the conveying direction.
SimTalk:
EntrySpeed
Exit speed
Enter the speed with which the MUs moves on the AngularConverter from the point at which the
AngularConverter switches the conveying direction to the point at which it exits the object.
SimTalk:
ExitSpeed
Automatic stop
To set the current speed of the conveying object to 0 when it does not transport a part, select this. This
might, for example, be the case when it is empty or when it is blocked when a part cannot leave it.
When the speed of the conveying object is 0, the energy state changes to Operational.
SimTalk:
AutomaticStop
Tab Times
Tab Times
Define times as described under the Tab Times. In addition the AngularConverter provides the
Moving time.
Related Topics
Moving time
The moving time is the time it takes the AngularConverter to switch from lengthwise to crosswise
conveyance and vice versa.
The moving time is consumed, when the part arrives at the corner at which the AngularConverter
switches conveyance and again, when it has completely left the AngularConverter to return the
AngularConverter to its original position. Only then can another part move onto the AngularConverter,
as it can only accommodate a single part at any one time.
Select a distribution from the drop-down list, and enter the values, which that distribution requires,
into the text box. The program shows these values along the top border of the tab. You can also
enter a constant time (Const). When you select the Formula distribution, you can enter a numeric
expression or the name of a Method. You can use the anonymous identifier @ to access the part
for which the moving time applies.
SimTalk:
MovingTime
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object into which you entered the source code of the respective control
in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the name of the Shift calendar, which controls the shifts during which the object
works.
Related Topics
Pull control
Shift calendar
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
Related Topics
Resource statistics
Resource type
Tab Curve
As opposed to the regular length-oriented objects, the AngularConverter consists of two straight
segments formed by three points, not of a sequence of straight and curved segments. You can apply
all of the settings described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the part while it is located on the
object AngularConveyor during a simulation run.
• Click the icon of the AngularConveyor with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and click Set Animation Events. Enter a number
into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every
x-th pixel.
Related Topics
Working with Curved Objects
Context Menu of Curved Objects
Methods of Curved Objects
Attributes of the Curved Objects
Set and Link Animation Points and Animation Lines
Tab Energy
Select energy settings for the station on the Tab Energy.
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Edit Controls
Edit Observers
3D
To view all of the methods and attributes of the AngularConverter, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Source.Empty
IsUp
Syntax: Path.IsUp
The read-only attribute IsUp returns if an MU is located on the exit leg of the AngularConverter
designated by Path after the moving time has elapsed and after the MU has exited while the moving
time is still running (true) or not (false).
The method is observable.
Return Value
The return value has the data type boolean.
To view all of the methods and attributes of the AngularConverter, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyAngularConverter.AutomaticStop := false
AutomaticStop
Syntax: Path.AutomaticStop
The attribute AutomaticStop sets the current speed of the AngularConverter to 0 when it does not
transport a part. This might, for example, be the case when it is empty or when it is blocked when a
part cannot leave it.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyAngularConverter.AutomaticStop := true;
Related Topic
Automatic stop
EntryLength
Syntax: Path.EntryLength
The attribute EntryLength sets the length of the first leg of the AngularConverter designated by Path.
It covers the distance from the entry point to the point at which the AngularConverter switches the
conveying direction.
Example: MyAngularConverter.EntryLength := 2;
Related Topics
Entry length
ExitLength
EntrySpeed
Syntax: Path.EntrySpeed
The attribute EntrySpeed sets the speed with which the MUs moves on the AngularConverter
designated by Path from the entry point to the point at which the AngularConverter switches the
conveying direction.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: MyAngularConverter.EntrySpeed := 2;
Related Topics
Entry speed
ExitSpeed
ExitLength
Syntax: Path.ExitLength
The attribute ExitLength sets the length of the second leg of the AngularConverter designated by
Path. It covers the distance from the point at which the AngularConverter switches the conveying
direction to the point at which the MU exits the object.
Related Topics
Exit length
EntryLength
ExitSpeed
Syntax: Path.ExitSpeed
The attribute ExitSpeed sets the speed with which the MUs moves on the AngularConverter
designated by Path from the point at which the AngularConverter switches the conveying direction to
the point at which it exits the object.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: MyAngularConverter.ExitSpeed := 2;
Related Topics
Exit speed
EntrySpeed
MovingTime
Syntax: Path.MovingTime
The attribute MovingTime sets the time it takes the AngularConverter designated by Path to switch
from lengthwise to crosswise conveyance and vice versa. The moving time is consumed, when the
MU arrives at the corner at which the AngularConverter switches conveyance and again, when
it has exited the AngularConverter altogether.
When you use the Formula distribution, you can enter a numeric expression or the name of a Method.
You can use the anonymous identifier @ to access the part for which the moving time applies.
Data Type of Value You Can Assign
You can assign a value of data type time.
Related Topic
Moving time
Width
Syntax: Path.Width
The attribute Width sets the width of the AngularConverter designated by Path. The Width only
applies when the setting Transfer length/TransferLengthToObject is deactivated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Example: MyAngularConverter.Width := 4;
Related Topics
Width
Curve width
CurveWidth
Assembly Station
Assembly Station
The Assembly station adds mounting parts to a main part, for example doors and fenders to a car
body. It moves the mounting parts either to the main MU—according to the value you enter into the
Assembly Table—or it deletes them. When the assembly process requires services, you can assign
the order in which the Assembly station requests mounting parts and services. To dismantle parts,
you can use the DismantleStation.
You cannot move a part via information flow, i.e., by using methods, to the Assembly station!
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Example Collection and click Open Model.
Related Topics
Assembling Parts with the Assembly Station Attributes of the Assembly Station
Dialog Window of the Assembly Station Shared Properties of the Material Flow Objects
Double-click the icon of the Assembly station, which you inserted into a Frame, to open its dialog
window. To change the properties of the Class of the object, double-click it in the Class Library or
on the tab Material Flow in the Toolbox. The dialog elements and menus, which all material flow
objects share, are described under Dialog Items of the Objects.
Related Topics
Tab Controls OK
Tab Attributes
Tab Attributes
On the tab Attributes you can define how the Assembly station fits mounting parts to the main part.
The tab Attributes provides these dialog items:
Assembly mode
Assembly table
Assembly table
Select if the Assembly station uses an assembly table and if so which kind:
• None: The Assembly station does not use an Assembly Table. Instead, it expects a part from
each predecessor.
• Predecessors: Enter the number of the predecessor, which moves the part, into column 1 of the
table and the amount into column 2 of the Assembly Table.
• MU Types: Enter the name of the part, such as Entity, Container, Transporter, Shaft, etc., into
column 1 and the amount into column 2 of the Assembly Table.
• Depends on Main MU: Enter the name of the main MU, the name of the MU, such as Entity,
Container Transporter, Shaft, etc. and the amount of the parts. You can also enter an asterisk
*, which handles all main parts which you did not explicitly enter with names of their own into
the assembly table.
For the settings MU Types and Depends on Main MU this applies: When the
Assembly station has objects of type Store as predecessors, it requests the required
mounting parts from the Store. If the required parts are not available in the Store at
the moment, the Store records the request and delivers the parts to the Assembly
station when they are available again.
The parts can also be carried from the Store to the Assembly station by a Worker. The
Store can only provide mounting parts, but no main parts and has to be connected with
a Connector, even when the Worker carries the part away.
To open the Assembly Table, click Open, and enter the respective values into the columns.
Enter the number of the predecessor or the type of MU of the mounting parts, not the
number of the main MU!
The columns Predecessor and MU Name may not contain duplicate entries.
SimTalk:
AssemblyList
PartListMode
Related Topic
Open
To open the assembly table, click this. Depending on the setting you selected from the drop-down
list, you either enter the numbers of the Predecessors or the MU types into the cells of column
1 and their amount into the cells of column 2.
Enter the number of the predecessor or the type of MU-types for the assembled parts into
the table, not for the main MU!
Enter the number of the Predecessor object which moves the main MU to the Assembly station.
The predecessor is the object that is connected to the selected object with a Connector and that
precedes it in the sequence of stations in the simulation model.
As the Assembly station is connected to at least two stations, the order in which you connect it
with the predecessors is important. If the assembly process does not work as expected, check
the numbering of the predecessors by activating More View Options > Show Predecessors
on the ribbon tab General of the Frame.
SimTalk:
MainMU
Assembly mode
Select how the Assembly station handles MUs:
• Attach MUs: It attaches the mounting part onto the main MU.
• Delete MUs: It deletes the mounting part after the assembly operation is finished.
SimTalk:
AssemblyMode
Exiting MU
Select how the Assembly station handles the MU, which is leaving the station:
When you select New MU, the Assembly station shows the button and the text box MU. Click this
to open the dialog Select Object and select the new MU in the dialog.
SimTalk:
ExitingMU,
NewMU
Sequence
Select the sequence in which the Assembly station requests parts and/or services:
• MUs then services: It requests the MUs before it requests the required services.
Select this, when the services are not required until all mounting parts are available. The services
are requested, when all attachment parts have been moved to the Assembly station or have
been deleted, compare Assembly mode. When all attachment parts are available, set-up and
processing operations can start, when the Assembly station has received the associated services.
• Services then MUs: It requests the services before it requests the MUs required.
Select this, when services are already required for providing the attachment parts. The services
are requested before the main part arrives, when the main part is ready to exit the preceding
station. When the attachment parts arrive at the Assembly station, the Exporters are already
positioned at the Assembly station. Set-up and processing procedures only begin, when all
attachment parts are available.
The attachment parts are moved to the main part or are deleted, before the processing time
starts, compare Assembly mode.
If the services are not available for the Assembly station, the attachment parts will not be moved
to the main part or will not be deleted. The Assembly station then records a special blocking time.
• MUs and Services: It requests the MUs and the services at the same time.
Select this, when services are already required for providing the attachment parts, but not for
the assembly proper.
For the setting Services then MUs the services are requested before the main part arrives.
When the Assembly station can receive the services immediately, it behaves identically for the
settings Services then MUs and MUs and Services.
When the Assembly station cannot receive the services, the attachment parts will be moved to
the main part anyway and then be deleted.
The Assembly station requests set-up services when the main MU enters or attempts
to enter.
SimTalk:
OrderSequence
Tab Failures
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Times
Related Topics
Set-up time
Tab Set-Up
Define properties for setting the object up as described under the Tab Set-Up.
Related Topics
Tab Statistics
Statistics is described under the Tab Statistics. In addition, the Assembly station collects these
statistical values:
To open the table Waiting Times, which shows the sum of the waiting times for mounting parts for
each predecessor, click this.
Plant Simulation only shows waiting times for mounting parts. The waiting time for
the main part always is 0.
To view the Waiting Times for Parts in the Statistics Report, click the object in the Frame, and press
F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
StatWaitingPartsPortion StatWaitingResDelta
StatWaitingPartsCount StatWaitingResMU
StatWaitingPartsDelta StatWaitingResTime
StatWaitingPartsMu StatWaitingTimePerPredecessor
StatWaitingPartsTime StatWaitingTimeTable
Tab Controls
Click and select a Method object into which you entered the source code of the respective control
in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Set-up control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts
self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
To view Importer Statistics in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Services
Exporters
Exporters
The menu command Exporters opens a table showing the names of all Exporters.
Related Topic
getExporters
Services
The menu command Services opens a table showing the names of all imported services. The name
of the service is identical with the name of the sub-table.
Double-click the name of the service to open the sub-table. Column 1 shows the Name of the
Exporter, the column Amount the number of services provided.
Related Topic
getImportedServices
Unavailable Services
The menu command Unavailable services opens a table showing the names of the four service
types (failure, set-up, processing, and transport) that are unavailable at the moment.
The table shows the name of the unavailable service white on a red background in the respective cell.
Double-click the name of the service to open the sub-table. Its columns show the Name of the
Exporter, the Amount of services defined, the Amount of services missing, and the name of the
associated Alternative.
Related Topic
getUnavailableServices
Associated Workplaces
The menu command Associated Workplaces opens a list showing the names of all the Workplaces
which are assigned to the Assembly station.
Related Topics
assignedWorkplaces
Station
MUs To Be Deleted
The menu command MUs To Be Deleted opens a list with the MUs located at present on the
Assembly station that it deletes when the main part exits.
Related Topics
muToBeDeleted
musToBeDeleted
NumMUsToBeDeleted
To view all of the methods and attributes of the Assembly station, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
muToBeDeleted
Syntax: Path.MUToBeDeleted(NumberOfTheMU:integer) → object
The method MUToBeDeleted returns an MU from the table MUs To Be Deleted of the Assembly
station designated by Path.
Parameter
The parameter NumberOfTheMU of data type integer designates the number of the MU on the table.
Return Value
The return value has the data type object.
Related Topics
musToBeDeleted
NumMUsToBeDeleted
musToBeDeleted
Syntax: Path.musToBeDeleted[(Table:table])
The method MUsToBeDeleted returns the contents of the table MUs To Be Deleted of the Assembly
station designated by Path, and writes it into a table.
Parameter
The optional parameter Table of data type table designates the name of the table.
If you specify the optional parameter, the return value has the data type boolean.
If you do not specify the optional parameter, Plant Simulation returns an array with the MUs that
are to be deleted.
Example: MyAssembly.musToBeDeleted(myEvalTable);
MyAssembly.musToBeDeleted;
Related Topics
muToBeDeleted
NumMUsToBeDeleted
statWaitingTimeTable
Syntax: Path.statWaitingTimeTable(WaitingTimes:table)
The method statWaitingTimeTable returns the table that contains the summed-up waiting times for
the mounting parts of all predecessors of the Assembly station designated by Path.
In our example below the main part arrives along the connector with the number 1 from
the SourceMainParts. As only waiting times for mounting parts are shown, the first row
shows 0.
Parameter
The parameter WaitingTimes of data type table designates the name of the table.
Example: -- SimTalk 2.0 notation
var myWaitingTimesTable: table
MyAssembly.statWaitingTimeTable(myWaitingTimesTable)
Related Topic
Tab Statistics of the Assembly station > Waiting Times Table
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print AssemblyStation.StatWaitingPartsCount
NumMUsToBeDeleted
Syntax: Path.NumMUsToBeDeleted
The read-only attribute NumMUsToBeDeleted returns the number of MUs from the table MUs To Be
Deleted of the Assembly station designated by Path.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
for i := 1 to MyAssembly.NumMUsToBeDeleted
print MyAssembly.MUToBeDeleted(i)
next
Related Topics
muToBeDeleted
musToBeDeleted
StatWaitingPartsCount
Syntax: Path.StatWaitingPartsCount
The read-only attribute StatWaitingPartsCount returns how often the Assembly station designated by
Path was Waiting for MUs.
Return Value
The return value has the data type integer.
Example: print MyAssembly.StatWaitingPartsCount;
Related Topics
Statistics report, Waiting Times for Parts
Statistics report, Waiting Times for Services and Parts
StatWaitingPartsDelta
Syntax: Path.StatWaitingPartsDelta
The read-only attribute StatWaitingPartsDelta returns the deviation from the mean value of the time
spans during which the Assembly station designated by Path was Waiting for MUs.
Return Value
The return value has the data type real.
Example: print MyAssembly.StatWaitingPartsDelta;
Related Topic
Statistics report, Waiting Times for Parts
StatWaitingPartsMu
Syntax: Path.StatWaitingPartsMu
The read-only attribute StatWaitingPartsMu returns the mean duration of the time spans during which
the Assembly station designated by Path was Waiting for MUs.
Return Value
The return value has the data type real.
Example: print MyAssembly.StatWaitingPartsMu;
Related Topic
Statistics report, Waiting Times for Parts
StatWaitingPartsPortion
Syntax: Path.StatWaitingPartsPortion
The read-only attribute StatWaitingPartsPortion returns the portion of the statistics collection period
during which the Assembly station designated by Path was Waiting for mounting parts.
Example: print MyAssembly.StatWaitingPartsPortion;
Related Topics
Tab Statistics of the Assembly station
Statistics report, Waiting Times for Parts
StatWaitingPartsTime
Syntax: Syntax: Path.StatWaitingPartsTime
The read-only attribute StatWaitingPartsTime returns the entire time which the Assembly station
designated by Path was Waiting for MUs.
Return Value
The return value has the data type time.
Example: print MyAssembly.StatWaitingPartsTime;
Related Topic
Statistics report, Waiting Times for Parts
StatWaitingResCount
Syntax: Path.StatWaitingResCount
The read-only attribute StatWaitingResCount returns how often the Assembly station designated by
Path was Waiting for mounting parts and/or for Exporters/services.
Return Value
The return value has the data type integer.
Example: print MyAssembly.StatWaitingResCount;
Related Topic
Statistics report, Waiting Times for Services and Parts
StatWaitingResDelta
Syntax: Path.StatWaitingResDelta
The read-only attribute StatWaitingResDelta returns the standard deviation of the times during the
Assembly station designated by Path was Waiting for mounting parts and/or for Exporters/services.
Return Value
The return value has the data type real.
Related Topic
Statistics report, Waiting Times for Services and Parts
StatWaitingResMU
Syntax: Path.StatWaitingResMU
The read-only attribute StatWaitingResMU returns the average duration of a period of time
during which the Assembly station designated by Path was Waiting for mounting parts and/or for
Exporters/services.
Return Value
The return value has the data type real.
StatWaitingResPortion
Syntax: Path.StatWaitingResPortion
The read-only attribute StatWaitingResPortion returns the ratio of the time during which the Assembly
station designated by Path was Waiting for mounting parts and/or for Exporters/services to the
statistics collection period.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Assembly station
Statistics report, Importers Waiting for Services and Parts
Statistics report, Waiting Times for Services and Parts
StatWaitingResTime
Syntax: Path.StatWaitingResTime
The read-only attribute StatWaitingResTime returns the entire time during which the Assembly station
designated by Path was Waiting for mounting parts and/or for Exporters/services.
Return Value
The return value has the data type time.
Related Topic
Statistics report, Waiting Times for Services and Parts
StatWaitingTimePerPredecessor
Syntax: Path.StatWaitingTimePerPredecessor(Predecessor:integer)
The read-only attribute StatWaitingTimePerPredecessor returns the summed-up waiting times for the
mounting parts of the designated predecessor of the Assembly station designated by Path.
Parameter
The parameter Predecessor of data type integer designates the number of the predecessor.
The return value for the predecessor number, along which the main part arrives at the
Assembly station, always is 0.
Return Value
The return value has the data type time.
Related Topic
Tab Statistics of the Assembly station > Waiting Times Table
To view all of the methods and attributes of the Assembly station, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyAssembly.AssemblyMode := "attach MUs"
AssemblyList
Syntax: Path.AssemblyList
The attribute AssemblyList sets the table of the mounting parts. Depending on the setting you
selected under Assembly table (or PartListMode) you enter:
• None: The Assembly station does not use an Assembly Table. Instead, it expects a part from
each predecessor.
• Predecessors: Enter the number of the predecessor, which moves the part, into column 1 of the
table and the amount into column 2 of the Assembly Table.
• MU Types: Enter the name of the part, such as Entity, Container, Transporter, Shaft, etc., into
column 1 and the amount into column 2 of the Assembly Table.
• Depends on Main MU: Enter the name of the main MU, the name of the MU, such as Entity,
Container Transporter, Shaft, etc. and the amount of the parts. You can also enter an asterisk
*, which handles all main parts which you did not explicitly enter with names of their own into
the assembly table.
For the settings MU Types and Depends on Main MU this applies: When the
Assembly station has objects of type Store as predecessors, it requests the required
mounting parts from the Store. If the required parts are not available in the Store at
the moment, the Store records the request and delivers the parts to the Assembly
station when they are available again.
The parts can also be carried from the Store to the Assembly station by a Worker. The
Store can only provide mounting parts, but no main parts and has to be connected with
a Connector, even when the Worker carries the part away.
Related Topic
Assembly table
AssemblyMode
Syntax: Path.AssemblyMode
The attribute AssemblyMode sets how the Assembly station moves the MUs.
Data Type of Value You Can Assign
You can assign a value of data type string: Attach MUs to move them to the main part or Delete MUs
to delete them.
Related Topic
Assembly mode
ExitingMU
Syntax: Path.ExitingMU
Related Topic
Exiting MU
MainMU
Syntax: Path.MainMU
The attribute MainMU sets the number of the predecessor from which the Assembly station draws the
main MU.
As your Assembly station is connected to at least two stations, the order in which you connect
the predecessors with it is important. If the assembly process does not work as expected,
check the numbering of the predecessors by activating General > More > Show Predecessors
on the ribbon tab General of the Frame.
Related Topic
NewMU
Syntax: Path.NewMU
When the Assembly station removes the main MU and creates a new MU instead, the attribute
NewMU sets the path of the MU to be created.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyAssembly.NewMU := ".MUs.basicMU";
Related Topic
Exiting MU
OrderSequence
Syntax: Path.OrderSequence
The attribute OrderSequence sets the order in which the Assembly station first requests MUs and
services. requests the MUs and then the services required (MUs then Services), first requests the
services and then the MUs (Services then MUs) or if it requests both at the same time (MUs and
Services).
Related Topic
Sequence
PartListMode
Syntax: Path.PartListMode
The attribute PartListMode sets if you do not want to use an Assembly Table (None), or if you enter
the numbers of the Predecessors or the MU types into column 1 of the Assembly Table (AssemblyList).
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyAssembly.PartListMode := "None";
Related Topic
Assembly table
Buffer
Buffer
A Buffer placed between two components of your plant serves two purposes:
• It temporarily holds parts, when one of the components following it in the sequence of stations fail.
• It moves parts on, when the preceding components stop working, preventing the production
process from grinding to a halt.
Dimensioning a Buffer with a large enough capacity for covering all failures leads to a complete
decoupling of both components of your plant. The Buffer not only tides over failure times but also
serves as a compensating station for fluctuating transport and operating times, which lead to queues
forming in front of a machine or a component. But even then it cannot always prevent the material
flow from being interrupted or coming to a halt.
As the object Buffer does not have individual stations, it does not have to divide the processing time,
i.e., the time during which the part remains in it, into small individual steps. Instead, you can select
the sequence in which the parts exit the buffer. When you select Buffer type
• Queue the parts exit the Buffer in the same order in which they entered it (First In First Out).
• Stack the part, which entered last, leaves the Buffer first (Last In First Out).
Each MU remains at least for the time in the Buffer, which you entered as the Dwell
time. For the buffer type > Stack an MU can only exit the Buffer, when all parts which
entered the Buffer after the current part, have already exited the Buffer, i.e., when the
MU is located at the very top of the stack.
The Buffer is ideally suited for modeling a buffer with a great Capacity requiring high performance. If
you need more advanced functions, you can use the PlaceBuffer .
Related Topics
Buffering Parts within the Production Line Shared Properties of the Material Flow Objects
Double-click the icon of the Buffer, which you inserted into a Frame, to open its dialog window. To
change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Attributes
Tab Attributes
The tab Attributes provides the dialog items Capacity, Buffer type, and Show fill level.
Capacity
Enter the Capacity, i.e., the number of MUs, which the Buffer can hold, into this text box. Enter -1
for an infinite capacity.
Remember that the capacity is not implemented in a matrix, so that you cannot access any individual
locations! You can only reduce the capacity, when the new capacity you enter is greater than or equal
to the actual number of MUs which are located in the Buffer.
Related Topic
Capacity
Buffer type
Select the Buffer type, i.e., the exit behavior of the MUs from the Buffer:
• Queue: The parts exit the Buffer in the same order in which they entered it (First In First Out).
• Stack: The part, which entered last, leaves the Buffer first (Last In First Out).
SimTalk:
BufferType
To show the relative fill level of the buffer as a colored bar at the bottom of its icon in the Frame,
select this.
SimTalk:
ShowFillLevel
Tab Times
Tab Times
Define times as described under the Tab Times.
As opposed to the other material flow objects, you can only enter a constant Dwell time
for the Buffer.
Related Topics
Recovery time
Cycle time
Dwell time
For the Buffer you can only enter a constant dwell time. For the PlaceBuffer you can only enter a
constant processing time. Statistics counts the dwell time as waiting time and not as processing
time. The dwell time thus is not prolonged by failures or pauses.
Each MU remains at least for the time in the Buffer, which you entered as the dwell
time. For the buffer type > Stack an MU can only exit the Buffer, when all parts which
entered the Buffer after the current part, have already exited the Buffer, i.e., when the
MU is located at the very top of the stack.
SimTalk:
ProcTime
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Tab Statistics
Statistics are described under the Tab Statistics.
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in the
Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Check the Fill Level of the Buffers in the Facility
Resource statistics
Resource type
Tab Energy
Select energy settings for the station on the Tab Energy.
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Edit Controls
Edit Observers
3D
Contents
Index
Help on Object
To view all of the methods and attributes of the Buffer, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
To view all of the methods and attributes of the Buffer, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
Buffer.BufferType := "Queue";
BufferType
Syntax: Path.BufferType
• Stack: The part, which entered last, leaves the Buffer first (Last In First Out).
Related Topic
Buffer type
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity, i.e., the maximum number of MUs that may be located in
the Buffer. The value -1 designates an infinite capacity.
Remember that the capacity is not implemented in a matrix, so that you cannot access any individual
locations! You can only reduce the capacity, when the new capacity you enter is greater than or equal
to the actual number of MUs located in the Buffer.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: Buffer.Capacity := 12;
Related Topic
Capacity
ShowFillLevel
Syntax: Path.ShowFillLevel
The attribute ShowFillLevel sets if the buffer shows its fill level below its icon in the Frame (true) or
not (false).
Related Topic
Show fill level
Connector
Connector
The Connector establishes material flow connections between two objects in the same Frame
on which the parts move from object to object. It also connects an object with an exit or
entrance—modeled with the Interface—of a Frame. when you modeled hierarchically, i.e., when you
nest Frames within Frames. The Connector shows the direction of the connection with an arrowhead
in the middle of the connecting line.
When you select Options > Show Predecessors and/or Show Successors on the General ribbon tab
of the Frame, it also shows a number, which designates the order in which you connected the objects:
• For the first connection from another object to the current object, the Connector shows >1,
denoting that this is the first predecessor, for the second >2, etc.
• For the first connection from the current object to another object, the Connector shows the
number 1>, denoting that this is the first successor, for the second 2, etc.
To show the source and the target of the Connector in the Frame as a Tooltip, drag the mouse
over the Connector.
By default the D Viewer does not show Connectors, when you create a model in 2D and
then update it in 3D. To display them, click on the View ribbon tab in 3D.
To reorder the sequence of the successors of the selected object, right-click the object in the Frame
and select Reorder Successors on the context menu.
Related Topics
connect
Double-click the Connector in a simulation model, which you inserted into a Frame, to open its
dialog window. The dialog elements and menus, which all material flow objects share, are described
under Dialog Items of the Objects.
Related Topics
Cancel
Tab Drawing
Tab Drawing
The tab Drawing provides the dialog items Width and Color.
Width
Enter the line Width of the Connector. This can be a number between -1 and 100.
The value -1 makes the Connector invisible. The value 0 stands for a Connector width of 1 pixel. The
value 1 stands for a stroke weight of 1. This affects zooming in the Frame.
The Connectors in the 3D Viewer use the line width you define here as well.
SimTalk:
Width
Color
To select the color of the Connector, click the field next to Color.
You can select one of the predefined colors or you can click More Colors and click the Select
button to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to
More Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
SimTalk:
Color
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Related Topic
Using HTML Help
Help on Object
The menu command Help on Object opens the help topic pertaining to the Connector.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
To view all of the methods and attributes of the Frame, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
connect
The method connect connects objects within a Frame with the Connector designated by Connector
path.
Using the method connect you can also connect any end of a TwoLaneTrack with any end of another
TwoLaneTrack. To do so, you have to pass two lanes to the method connect. The exit of the first
lane, which you specify, will then be connected with the entrance of the second lane. Note that the
method still connects the TwoLaneTracks and not the individual lanes.
Parameters
• The parameter StartOfConnection of data type any designates the beginning of the connection.
• The parameter EndOfConnection of data type any designates the end of the connection.
You can also set an Interface object as first or as second parameter.
• The optional parameter SideOfConverterStart of data type integer sets at which side of the
Converter the Connector is to dock: 0 designates right, 1 designates bottom, 2 designates
left, and 3 designates top.
• The optional parameter SideOfConverterEnd of data type integer is only required when you insert
a Connector between two Converters. The parameter SideOfConverterStart then designates
the side of the source Converter, the parameter SideOfConverterEnd designates the side of the
target Converter at which the Connector ends.
Return Value
The return value has the data type object.
The method returns the Connector that has been created.
getEndPoint
The method getEndPoint returns the coordinates of the end point of the Connector designated by
Connector path> and assigns them to the local variables, whose names you enter.
Local Variables
• The local variable XResult designates the x-coordinate of the end point of the Connector.
Related Topic
getStartPoint
getStartPoint
Syntax: ConnectorPath.getStartPoint(byRef XResult:integer, byRef YResult:integer)
The method getStartPoint returns the coordinates of the starting point of the Connector designated by
Connector path> and assigns them to the local variables, whose names you enter.
Local Variables
• The local variable XResult designates the x-coordinate of the starting point of the Connector.
Related Topic
getEndPoint
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Connector.SuccInterface
PredInterface
Syntax: Connector_path.PredInterface
The read-only attribute PredInterface returns the direct predecessor object of the Connector
designated by Connector path. When this preceding object is a Frame, the read-only attribute
PredInterface returns the Interface object, as opposed to the method pred, which returns the Frame.
Example: print Connector2.predinterface;
Related Topics
Show predecessors
SuccInterface
PredLane
Syntax: Connector_path.PredLane
The read-only attribute PredLane returns the lane of a TwoLaneTrack, whose end point is connected
with the Connector designated by Connector path. This is the lane which leads to the Connector in
the forward direction.
If the predecessor in not a TwoLaneTrack, the method returns the predecessor object.
Example: print Connector2.PredLane;
Related Topic
SuccLane
SuccInterface
Syntax: Connector_path.SuccInterface
The read-only attribute SuccInterface returns the direct successor object of the Connector designated
by Connector path. When this succeeding object is a Frame, the read-only attribute SuccInterface
returns the Interface object, as opposed to the method succ, which returns the Frame.
Related Topics
Show successors
SuccInterface
SuccLane
Syntax: <Connector_path.SuccLane
The read-only attribute SuccLane returns the lane of a TwoLaneTrack, whose starting point is
connected with the Connector designated by Connector path. This is the lane to which the Connector
leads in the forward direction.
If the successor in not a TwoLaneTrack, the method returns the successor object.
print Connector2.SuccLane;
Related Topic
PredLane
To view all of the methods and attributes of the Connector, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MySingleProc.succConnector(3).Color := makeRGBValue(0,10,100);
The data type of the attribute is listed in parenthesis. <connector_path> designates a valid path to a
Connector for which the method applies, either an absolute path to the Connector in the Class Library
(.materialflow.Connector) or an access by the methods predConnector or succConnector.
Color
Syntax: Connector_path.Color
Related Topic
Color
CornerPoints
Syntax: Connector_path.CornerPoints
The attribute CornerPoints sets the coordinates of the anchor points in a two-columned table. You
can, among others, use anchor points to prevent connectors from intersecting objects. Each row
contains the x-coordinate and the y-coordinate of one anchor point. The origin is always located in
the upper left corner of the Frame.
Data Type of Value You Can Assign
You can assign a value of data type table.
Width
Syntax: Connector_path.Width
The attribute Width sets the line weight of the Connector in pixels. You can enter a number between
1 and 100.
The value -1 makes the Connector invisible. The value 0 stands for a Connector width of 1 pixel. The
value 1 stands for a stroke weight of 1. This affects zooming in the Frame.
The Connectors in the 3D Viewer use the line width you define here as well.
Related Topic
Width
Converter
Converter
The Converter is intended for modeling materials handling equipment. When the part moves onto
the Converter it either passes straight through in the conveying direction or it is, for example, lifted
onto a laterally moving transport level by a lifting mechanism and then conveyed laterally to the
left or laterally to the right.
When the part enters on side 1 or 3, straight means that the part keeps its conveying direction and
exits on the opposite side.
The Converter can only be connected to a single object per side. The numbers designate the side of
the Converter at which the part exits. The figures below illustrate the sides depending on the direction
in which you inserted the Converter into your simulation model.
As long as parts are only conveyed in one direction, the Converter can accommodate any number of
parts. If the part is to change its conveying direction, the Converter can only lift and transport a single
part. Parts can arrive from all sides and be conveyed to all sides.
You can determine the side to which the Converter conveys the part in the Strategy method. The
target objects can be switched to the respective conveying direction at the same time.You can also
select the conveying Strategy according to which the Converter conveys the parts. The preferred
direction is the direction in which you inserted the Converter. It then conveys the parts without any
time delay in this direction. If a part leaves the preferred direction, it has to move onto the Converter,
is then lifted, while the Moving time elapses, and can then exit on either side.
After it conveyed a part to the side, the Converter has to be lowered back into its default position,
before it can convey the next part. You can specify the lifting time and the lowering time of the
Converter, i.e., the Moving time.
When you connect the Converter with its predecessor or successor, you can determine with the
mouse at which side of the Converter the Connector docks. To do so, click the left side, the bottom
side, the top, or the right side of the Converter. You can also set the side with the method connect of
the Connector.
The Converter is a length-oriented object. You can control how often the part is shown on the
Converter with the setting Animate every x-th pixel. When you insert the Converter with its icon ,
the Number of Animation Events controls these steps.
You can also enter the Relative converting point for the length and/or the Relative converting point for
the width.
Related Topics
Dialog Window of the Converter Shared Properties of the Material Flow Objects
Double-click the icon of the Converter, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Controls OK
Failed
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Length
Enter the length of the Converter. After you inserted it, Plant Simulation shows its length here. When
the part is conveyed straight through along the direction of insertion, its length and the length of the
parts determine how many parts it can accommodate.
When the Converter is to convey parts perpendicular, it has to provide enough room for the
length and the width of the MU to completely fit on the Converter, when the booking point
is located on the change over point in the center of the Converter.
SimTalk:
Length
Width
Enter the width of the Converter. Plant Simulation inserts the Converter with the standard width
of 1 meter.
When the Converter is to convey parts perpendicular, it has to provide enough room for the
length and the width of the MU to completely fit on the Converter, when the booking point
is located on the change over point in the center of the Converter.
You can only enter the Curve width in pixels when you deactivate Transfer length. When
you activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Speed
Enter the speed with which the Converter conveys the parts. You can also enter -1 for an infinite
speed.
SimTalk:
Speed
Capacity
Enter the Capacity, i.e., the number of MUs, which the Converter can hold, into this text box. The
default value of -1 stands for an infinite capacity.
When the Converter conveys parts along the insertion direction, you can, for example, use the
Capacity to allow the Converter to only convey this number of MUs at the same time.
Note that this only limits the possible number of MUs. When the Converter conveys parts it still
conveys a single MU at a time though.
Related Topic
Capacity
The Converter does not show the location of the converting point on its graphic in the
Frame.
SimTalk:
RelConvertingPointL
Enter the relative position of the converting point along the width of the Converter. The
converting point is the point at which the Converter changes the conveying direction of the parts it
conveys. You can enter a value between 0.0 and 1.0, denoting a position between 0 % and 100 %.
The Converter does not show the location of the converting point on its graphic in the
Frame.
SimTalk:
RelConvertingPointW
Automatic stop
To set the current speed of the Converter to 0 when it does not transport a part, select this. This
might, for example, be the case when it is empty or when it is blocked when a part cannot leave it.
When the speed of the Converter is 0, the energy state changes to Operational.
SimTalk:
AutomaticStop
Strategy
Select the strategy according to which the Converter conveys the parts to the next material flow object:
• Default exit makes all parts exit through the Default exit which you select to the successor
attached to that exit.
• Feed in allows parts from a branch line to only enter the main line when no part is located on the
main line within the free space which you enter. The free space is the distance between two
successive parts on the main line.
• MU Attribute conveys the part according to a built-in or a user-defined attribute of the part. Click
Open List and enter the name of the attribute of the part, the value of the attribute, and select
on which side it is to exit. Enter the number of the Default exit. Repeat this for each attribute
you enter.
The figures below illustrate the sides depending on the direction in which you inserted the
Converter into your simulation model.
• MU Name conveys the part according to its name. Click Open List and enter the name of the part
and select on which side it is to exit.
Enter the number of the Default exit.
• Method conveys the part according to the source code you enter into the strategy method in
which you determine the side of the Converter at which the part will exit the Converter. Enter the
name of the method into the text box Strategy method.
For all strategies, except for Feed in, the first-come-first-served principle applies,
meaning a part, which has a matching entrance and a matching destination, still cannot
enter the object after the moving time has passed if an when another past is already
waiting even if moving time is required for this part as well. The main line only has
precedence for the strategy Feed in. Waiting parts from a branch line still have to wait
unless the moving time has already started.
SimTalk:
Strategy
Related Topic
Conveying Parts Laterally with the Converter
Default exit
For the Strategy > Default Exit, MU Attribute, and MU Name you can select the default exit.
Select the number of the default exit at which the part exits the Converter. 1 is laterally to the right
in the insertion direction, 2 is against the insertion direction, 3 is laterally to the left in the insertion
direction, 0 is along the insertion direction.
The figures below illustrate the sides depending on the direction in which you inserted the Converter
into your simulation model.
SimTalk:
DefaultExit
Open List
For the Strategy > MU Attribute and MU Name you can open the exit list and enter the information
pertaining to the respective strategy.
To open the exit list for the parts, click this. For the Strategy > MU Attribute you can enter the
name of the attribute of the part, its value and select on which side it exits. Repeat this for each
attribute you enter.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
For the Strategy > MU Name you can enter the name of the attribute of the part and select on which
side it exits. Repeat this for each attribute you enter.
SimTalk:
setAttributeList
getAttributeList
Attribute type
For the Strategy > MU Attribute you can select the data type of the attribute that determines the
station to which the Converter moves the part.
Select the data type of the attribute that determines to which station the Converter moves the part.
SimTalk:
AttributeType
Strategy method
Click this and select a Method object in the dialog Select Object. Enter the source code of the
strategy method in which you determine the side of the Converter at which the part will exit the
Converter. The Converter calls the control as soon as the part wants to enter it. Set the side with
the attribute ExitForNextEnteringMU.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Do not use an entrance control or exit control for determining the target of the part.
This point in time is too late though, as the target has to be determined earlier in time.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
StrategyCtrl
Tab Times
Tab Times
Define times as described under the Tab Times. In addition, the Converter provides the Moving time.
Related Topics
Recovery time
Cycle time
Moving time
Moving time
The moving time is the time it takes the Converter to lift the part onto a different conveying level
and to then lower itself and move back to the default position. This time always elapses when the
Converter has to change the direction of the part and when a part enters from a side, i.e., not along
the preferred insertion direction.
Select a distribution from the drop-down list, and enter the values, which that distribution requires,
into the text box. The program shows these values along the top border of the tab. You can also
enter a constant time ( Const ). When you select the Formula distribution, you can enter a numeric
expression or the name of a Method. You can use the anonymous identifier @ to access the part
for which the moving time applies.
SimTalk:
MovingTime
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Tab Statistics
To view the Moving Time in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
Tab Curve
As opposed to the regular length-oriented objects, the Converter consists of a single straight
segment, not of a sequence of straight and curved segments. You can apply most of the settings
described under the Tab Curve.
As opposed to the other curved objects, you cannot enter the width of the object here, but on the
Tab Attributes.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the MU while it is located on the
object Line during a simulation run.
• Click the icon of the Converter with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Related Topics
Tab Energy
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Edit Controls
Edit Observers
3D
To view all of the methods and attributes of the Converter, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getAttributeList
Syntax: Path.getAttributeList(AttributeList:table)
The method getAttributeList returns the target list for the Strategy > MU Attribute of the Converter
designated by Path. It contains the names of the attributes of the part, their values and on which
side they exit.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
For the Strategy > MU Name it contains the names of the parts and on which side they exit.
Parameter
The parameter AttributeList of data type table designates the name of the list.
Example: Converter.getAttributeList(MyAttributesList);
Related Topics
setAttributeList
Open List
getSideOfConnector
The method getSideOfConnector returns the side at which the designated Connector is attached to
the Converter designated by Path.
Parameter
The parameter Connector of data type object designates the Connector.
Return Value
The return value has the data type integer.
getSuccessorAtExit
The method getSuccessorAtExit returns the successor object, which is connected to the Converter
designated by Path at the side designated by the parameter integer.
Parameter
The parameter Side of data type integer designates the Connector.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
Return Value
The return value has the data type object.
Example: MyLine := ?.getSuccessorAtExit(1);
setAttributeList
Syntax: Path.setAttributeList(AttributeList:table)
The method setAttributeList sets the target list for the Strategy > MU Attribute of the Converter
designated by Path. It contains the names of the attributes of the part, the values of the attributes,
and the angle.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
For the Strategy > MU Name you can enter the names of the parts and on which side they exit.
Parameter
The parameter AttributeList of data type any designates the path to a list or a variable of the same data
type. Plant Simulation then copies the contents of the passed list to the target list of the Converter.
Example: Converter.setAttributeList(MyAttributes);
Related Topics
getAttributeList
Open List
Data Held in Tabular Form in Attributes
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Converter.GetCurrentExit
GetCurrentExit
Syntax: Path.GetCurrentExit
The read-only attribute GetCurrentExit returns the number of the side at which the part exits the
Converter designated by Path.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
Return Value
The return value has the data type integer.
Example: No := ?.GetCurrentExit;
GetNextEntranceNumber
Syntax: Path.GetNextEntranceNumber
The read-only attribute GetNextEntranceNumber returns the number of the side at which the next
part can enter the Converter designated by Path.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
Return Value
The return value has the data type integer.
Example: No := ?.GetNextEntranceNumber;
IsUp
Syntax: Path.IsUp
The read-only attribute IsUp returns if the Converter is in the up position (true) or in the down
position (false).
Return Value
The return value has the data type boolean.
Example: PosUpDown := MyConverter.IsUp;
You can also use the attribute IsUp to start the lifting process.
Example: MyConverter.IsUp := true;
StatMovingEmptyPortion
Syntax: Path.StatMovingEmptyPortion
The read-only attribute StatMovingEmptyPortion returns the portion of the statistics collection period
during which the Converter designated by Path was raising or lowering itself and was not conveying
a part.
Return Value
The return value has the data type real.
Example: print Converter.StatMovingEmptyPortion;
Related Topics
Tab Statistics of the Converter
Statistics report, Moving Time
StatMovingEmptyTime
Syntax: Path.StatMovingEmptyTime
The read-only attribute StatMovingEmptyTime returns the total time during which the Converter
designated by Path was raising or lowering itself and was not conveying a part.
Return Value
The return value has the data type time.
Example: print Converter.StatMovingEmptyTime;
Related Topic
Statistics report, Moving Time
StatMovingLoadedPortion
Syntax: Path.StatMovingLoadedPortion
The read-only attribute StatMovingLoadedPortion returns the portion of the statistics collection period
during which the Converter designated by Path was raising or lowering itself and was conveying a part.
Return Value
The return value has the data type real.
Example: print Converter.StatMovingLoadedPortion;
Related Topics
Tab Statistics of the Converter
Statistics report, Moving Time
StatMovingLoadedTime
Syntax: Path.StatMovingLoadedTime
The read-only attribute StatMovingLoadedTime returns the total time during which the Converter
designated by Path was raising or lowering itself and was conveying a part.
Return Value
The return value has the data type time.
Example: print Converter.StatMovingLoadedTime;
Related Topic
Statistics report, Moving Time
To view all of the methods and attributes of the Converter, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an 3, you might, for example, type:
Converter.Length := false;
print Converter.Length;
posit := MySingleProc.Cont.XPos;
AttributeType
Syntax: Path.AttributeType
The attribute AttributeType sets the Attribute type of the Strategy > MU Attribute of the Converter.
Related Topic
Attribute type
AutomaticStop
Syntax: Path.AutomaticStop
The attribute AutomaticStop sets the current speed of the Converter to 0 when it does not transport
a part. This might, for example, be the case when it is empty or when it is blocked when a part
cannot leave it.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Automatic stop
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity, i.e., the number of MUs, which the Converter designated by
Path can hold,. The default value of Example:-1 stands for an infinite capacity.
When the Converter conveys parts along the insertion direction, you can, for example, use the
Capacity to allow the Converter to only convey this number of MUs at the same time.
Note that this only limits the possible number of MUs. When the Converter conveys parts it still
conveys a single MU at a time though.
Example: Converter.Capacity := 8;
Related Topic
Capacity
DefaultExit
Syntax: Path.DefaultExit
The attribute DefaultExit sets the Default exit of the Converter for the Strategy > Default Exit, MU
Attribute, and MU Name.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
Related Topic
Default exit
ExitForNextEnteringMU
Syntax: Path.ExitForNextEnteringMU
The attribute ExitForNextEnteringMU sets the side at which the next entering part wants to exit the
Converter. You will typically use ExitForNextEnteringMU in the Strategy method/StrategyCtrl.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
Example: ?.ExitForNextEnteringMU := 1;
Length
Syntax: Path.Length
When the Converter is to convey parts perpendicular, it has to provide enough room for the
length and the width of the MU to completely fit on the Converter, when the booking point
is located on the change over point in the center of the Converter.
Related Topic
Length
MovingTime
Syntax: Path.MovingTime
The attribute MovingTime sets the Moving time which the Converter needs to lift the part onto a
different conveying level and to then lower itself and move back to the default position.
Data Type of Value You Can Assign
Related Topic
Moving time
RelConvertingPointL
Syntax: Path.RelConvertingPointL
The attribute RelConvertingPointL sets the relative position of the converting point along the length
of the Converter. The converting point is the point at which the Converter changes the conveying
direction of the parts it conveys. You can enter a value between 0.0 and 1.0, denoting a position
between 0 % and 100 %.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyConverter.RelConvertingPointL := 0.2;
Related Topic
Relative converting point for the length
RelConvertingPointW
Syntax: Path.RelConvertingPointW
The attribute RelConvertingPointW sets the relative position of the converting point along the width
of the Converter. The converting point is the point at which the Converter changes the conveying
direction of the parts it conveys. You can enter a value between 0.0 and 1.0, denoting a position
between 0 % and 100 %.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyConverter.RelConvertingPointW := 0.8;
Related Topic
Relative converting point for the width
Speed
Syntax: Path.Speed
The attribute Speed sets the Speed with which the Converter conveys the parts. You can also
enter -1 for an infinite speed.
Example: MyConverter.Speed := 2;
Related Topic
Speed
Strategy
Syntax: Path.Strategy
• Feed in allows parts from a branch line to only enter the main line when no part is located on the
main line within the free space which you enter. The free space is the distance between two
successive parts on the main line.
• MU Attribute moves the part on according to a built-in or a user-defined attribute of the part.
You can set the attributes with the method setAttributeList. You can set the default exit with the
attribute DefaultExit.
• MU Name moves the part on according to its name. You can set the default exit with the attribute
DefaultExit. You can set the attributes with the method setAttributeList.
The numbers designate the side of the Converter at which the part exits. The figures below
illustrate the sides depending on the direction in which you inserted the Converter into your
simulation model.
• Method conveys the part according to the source code you enter into the strategy method in
which you determine the side of the Converter at which the part will exit the Converter. You can
set the control with the attribute StrategyCtrl.
Related Topic
Strategy
StrategyCtrl
Syntax: Path.StrategyCtrl
The attribute StrategyCtrl designates a Method object, the Strategy method, in which you determine
the side of the Converter at which the part will exit the Converter.
The numbers designate the side of the Converter at which the part exits. The figures below illustrate
the sides depending on the direction in which you inserted the Converter into your simulation model.
The Converter calls the control as soon as the part wants to enter it. You have to set the side with
the attribute ExitForNextEnteringMU.
The default strategy method looks like this:
You can assign a value of data type object.
Related Topic
Strategy method
Width
Syntax: Path.Width;
When the Converter is to convey parts perpendicular, it has to provide enough room for the
length and the width of the MU to completely fit on the Converter, when the booking point
is located on the change over point in the center of the Converter.
Example: MyConverter.Width := 2;
Related Topic
Width
Cycle
Cycle
The object Cycle synchronizes the transfer of MUs from station to station. You can use it to only move
a part on to the next station within a balanced line, when all stations have finished processing their
parts and when none of the stations is failed, paused, or unplanned. In addition, the successor of the
balanced line has to be ready to receive the part.
To define the balanced line, enter the name of the first station and of the last station into the text
boxes. All stations between the first and the last station, which are connected with Connectors, form
the balanced line. Each station has to have a predecessor and a successor and can only have
a single predecessor and a single successor.
At the moment only objects of type SingleProc and Assembly station can be part of the
balanced line. When an Assembly station is part of the balanced line, the Cycle only
continues balancing, when the assembly process has been finished.
You can insert as many Cycle objects as you need into your model. They all work independent of
each other. When you use several Cycle objects, make sure to only assign each station to a single
Cycle object.
If you did not define any stations for the balanced line yet, drag an allowed object onto the icon of
the object Cycle and drop it there, Plant Simulation enters it as the first station of the balanced
line. When you drag another object onto it and drop it there, Plant Simulation enters it as the last
station. If you already defined the last station and would like to change it, hold down Shift, drag the
object, which you would like to use as the last station of the balanced line over the Cycle and drop it
there. The status bar shows which station you set.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Example. Then, select the respective Category, the Topic, and
the Example in the dialog Example Collection and click Open Model.
Related Topics
Dialog Window of the Object Cycle Shared Properties of the Material Flow Objects
Double-click the icon of the object Cycle, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Attributes
Tab Attributes
Last station
Active
To synchronize the transfer of MUs from station to station, select this. Then a part is only moved on
to the next station within the balanced line, when all stations have finished processing their parts
and when none of the stations is failed, paused or unplanned. To deactivate line balancing, clear
the check box.
SimTalk:
Active
First station
Enter the name of the first station of the group of stations, which you want to balance.
Or click and select a material flow object in the dialog Select Object.
All stations between the first station and the Last station, which are connected with Connectors
form the balanced line.
If you did not define any stations for the balanced line yet, drag an allowed object onto the icon of the
object Cycle and drop it there, Plant Simulation enters it as the first station of the balanced line. When
you drag another object onto it and drop it there, Plant Simulation enters it as the last station. If you
already defined the last station and would like to change it, hold down Shift, drag the object, which
you would like to use as the last station of the balanced line over the Cycle and drop it there. The
status bar shows which object your are setting.
SimTalk:
GetFirstStation,
setFirstAndLastStation
Last station
Enter the name of the last station of the group of stations, which you want to balance.
Or click and select a material flow object in the dialog Select Object.
All stations between the First station and the last station, which are connected with Connectors
form the balanced line.
If you did not define any stations for the balanced line yet, drag an allowed object onto the icon of the
object Cycle and drop it there, Plant Simulation enters it as the first station of the balanced line. When
you drag another object onto it and drop it there, Plant Simulation enters it as the last station. If you
already defined the last station and would like to change it, hold down Shift, drag the object, which
you would like to use as the last station of the balanced line over the Cycle and drop it there. The
status bar shows which object your are setting.
SimTalk:
GetLastStation,
setFirstAndLastStation
To allow parts on the balanced stations to be moved on, although no part is ready to move on from
the predecessor of the balanced line, select this. This results in an idle cycle.
SimTalk:
EmptyCycleAllowed
To allow parts to enter the Cycle only when the cycle moves all MUs one station on, select this. To
allow parts to enter the Cycle at any time, clear the check box.
SimTalk:
EntranceOnlyOnCycle
Tab Statistics
Statistics is described under the Tab Statistics.
To view more detailed statistics, click the object in the Frame, and press F6 (Show Statistics Report),
or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
To view all of the methods and attributes of the object Cycle, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
setFirstAndLastStation
Syntax: Path.setFirstAndLastStation(FirstStation:path, LastStation:path) → boolean
The method setFirstAndLastStation sets the First station and the Last station of the balanced line
which the Cycle station designated by Path sets. All stations between these, which are connected
with Connectors, form the balanced line.
Parameters
• The parameter FirstStation of data type object/path designates the First station.
• The parameter LastStation of data type object/path designates the Last station.
Return Value
The return value has the data type boolean.
Example: MyCycleObject.setFirstAndLastStation(MyStation1,MyStation4);
Related Topics
GetFirstStation
GetLastStation
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Cycle.GetFirstStation
GetFirstStation
Syntax: Path.GetFirstStation
The read-only attribute GetFirstStation returns the first station of the balanced line which the Cycle
station designated by Path sets.
Return Value
The return value has the data type object.
Example: print MyCycleObject.GetFirstStation;
Related Topics
First station
GetLastStation
GetLastStation
Syntax: Path.GetLastStation
The read-only attribute GetLastStation returns the last station of the balanced line which the Cycle
station designated by Path sets.
Return Value
The return value has the data type object.
Example: print MyCycleObject.GetLastStation;
Related Topics
Last station
GetFirstStation
To view all of the methods and attributes of the object Cycle, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyCycleObjekt.Active := true
Active
Syntax: Path.Active
The attribute Active activates line balancing with the Cycle object designated by Path (true) or
deactivates it (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyCycleObject.Active := true;
Related Topic
Active
EmptyCycleAllowed
Syntax: Path.EmptyCycleAllowed
The attribute EmptyCycleAllowed sets if parts within the balanced line can be moved on, although no
part is ready to move on from the predecessor of the synchronized stations (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyCycleObject.EmptyCycleAllowed := true;
Related Topic
Empty cycle allowed
EntranceOnlyOnCycle
Syntax: Path.EmptyCycleAllowed
The attribute EntranceOnlyOnCycle sets that parts are allowed to enter the Cycle only when the cycle
moves all MUs one station on (true). To allow parts to enter the Cycle at any time, enter false.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyCycleObject.EmptyCycleAllowed := true;
Related Topic
Part can only enter on cycle
DismantleStation
DismantleStation
The DismantleStation removes mounting parts from the main MU or it creates new MUs. You can
use it to model dismantle processes in your plant. To model assembly operations, you can use
the Assembly Station.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Example Collection and click Open Model.
Related Topics
Dialog Window of the DismantleStation Shared Properties of the Material Flow Objects
Tab Statistics OK
Label
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Dismantle mode
Dismantle sequence
Select how the DismantleStation distributes MUs to its successors:
o When you select Detach MUs from the drop-down list Dismantle mode, the DismantleStation
moves the MUs to each successor in turn, except for the successor that receives the main
MU.
The DismantleStation moves the main MU to the successor, whose number you entered into
the text box Main MU to Successor with Number.
If the DismantleStation has four successors for example, and if moves the main MU on to
successor number 2, it will pass the new MU on to successors number 1, 3, and 4.
For these settings you have to fill out the Dismantle Table:
• MUs exiting independent of other MUs: It attempts to move each part on to the successor
you defined, as soon as possible.
• Main MU after other MUs: It first moves the mounting parts on to the successor, and then the
main MU.
SimTalk:
Sequence
Dismantle Table
To open the dismantle table, click this. The DismantleStation then opens a table with three columns.
• Enter the path to the class of the MUs into the column MU, such as .MUs.Entity, .MUs.Container
or .MUs.Transporter.
• Enter the number of MUs that are dismantled into the column Number.
o If you do not enter a number, the DismantleStation uses the default value 1, if you selected
the Dismantle mode > Create MUs.
o If you selected the Dismantle mode > Detach MUs, the DismantleStation moves the parts on
to the successor that will also receive the main MU.
• Enter the number of the successor into the column Successor. If you do not enter a value,
the DismantleStation uses the default value 1.
Depending on what you select from drop-down list Dismantle mode: Create MUs or Detach MUs, the
DismantleStation creates the corresponding MUs or searches the table for the successor to which
it moves it. In the latter case the Dismantle Table may contain more information than is required
for moving the MUs.
SimTalk:
DismantleList
Dismantle mode
• Detach MUs: It detaches the mounting parts from the main MU and moves them on to the
successor which you entered into the Dismantle Table.
SimTalk:
DismantleMode
Enter the number of the successor to which the DismantleStation moves the main MU.
SimTalk:
MainMU
Exiting MU
Select how the DismantleStation moves the main MU or a new MU on to its successor.
• New MU: Deletes the main MU, creates a new MU, and moves it on to the successor. The
DismantleStation shows the button and the text box MU.
Enter the path to the class of the new MU into the text box, or click the button and select the
new MU in the dialog Select Object.
SimTalk:
MainMU
ExitingMUMode
NewMU
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Times
Set-up time
Tab Set-Up
Define properties for setting the object up as described under the Tab Set-Up.
Related Topics
Tab Statistics
Statistics is described under the Tab Statistics. In addition the DismantleStation collects blocking
times.
Click Blocking Times to open the table Blocking Times that shows the sum of the blocking times
of the MUs per successor.
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in the
Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
StatBlockingTimePerSuccessor
StatBlockingTimeTable
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Set-up control, and the Pull control.
Plant Simulation calls the exit control for each leaving part. When you only call the method
@.move, Plant Simulation moves the part at the same successor that would receive it
without exit control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Related Topics
Entrance control
Set-up control
Pull control
Shift calendar
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
To view Importer Statistics in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
Tab Energy
Select energy settings for the station on the Tab Energy.
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Services
Exporters
Contents
The menu command Contents opens a list of all MUs that were dismantled on the DismantleStation.
Note that the main MU is displayed in blue, while the mounting parts are displayed in black.
Related Topics
Cont mu
ContentsList NumMU
DeleteMovables NumMUParts
Exporters
The menu command Exporters opens a table showing the names of all Exporters.
Related Topic
getExporters
Services
The menu command Services opens a table showing the names of all imported services. The name
of the failure service is identical with the name of the sub-table.
Double-click the name of the service to open the sub-table. Column 1 shows the Name of the
Exporter, the column Amount the number of services provided.
Related Topic
getImportedServices
Unavailable Services
The menu command Unavailable services opens a table showing the names of the four service
types (failure, set-up, processing, and transport) that are unavailable at the moment.
The table shows the name of the unavailable service white on a red background in the respective cell.
Double-click the name of the service to open the sub-table. Its columns show the Name of the
Exporter, the Amount of services defined, the Amount of services missing, and the name of the
associated Alternative.
Related Topic
getUnavailableServices
Associated Workplaces
The menu command Associated Workplaces opens a list showing the names of all the Workplaces
which are assigned to the DismantleStation.
Related Topic
assignedWorkplaces
Station
Exiting MUs
The menu command Exiting MUs opens a list displaying the MUs located at present on the
DismantleStation, and which it deletes when it moves the main part onto the successor contained in
column 2 of the table.
Related Topics
leavingMU
leavingMUs
NumLeavingMU
To view all of the methods and attributes of the DismantleStation, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
leavingMU
Syntax: Path.leavingMU(MU:integer) → object
The method leavingMU returns an MU from the table Exiting MUs of the DismantleStation
designated by Path.
Parameter
The parameter MU of data type integer designates the MU.
Return Value
The return value has the data type object.
Example: -- SimTalk 2.0 notation
for i := 1 to MyDismantleStation.NumLeavingMU
print MyDismantleStation.leavingMU(i)
next
Related Topics
Exiting MUs
leavingMUs
leavingMUs
Syntax: Path.leavingMUs[(MUsTable:table]) → object
The method leavingMUs returns the contents of the table of the Exiting MUs of the DismantleStation
designated by Path and writes it into a table.
Parameter
The optional parameter MUsTable of data type table designates the name of the table.
Return Value
The return value has the data type boolean.
If you do not specify the optional parameter, Plant Simulation returns an array with the MUs that
wanted to leave the DismantleStation.
Example: MyDismantleStation.leavingMUs(myEvalTable);
MyDismantleStation.leavingMUs;
Related Topics
Exiting MUs
leavingMU
statBlockingTimePerSuccessor
Syntax: Path.statBlockingTimePerSuccessor(Successor:integer) → boolean
The method statBlockingTimePerSuccessor returns the blocking time in relation to a successor from
the table Blocking Times of the DismantleStation designated by Path.
Parameter
The parameter Successor of data type integer designates successor.
Return Value
The return value has the data type boolean.
Related Topic
Tab Statistics of the DismantleStation
statBlockingTimeTable
The method statBlockingTimeTable returns the contents of the table Blocking Times of the
DismantleStation designated by Path and writes it into the table.
Parameter
The parameter BlockingTimes of data type table designates the name of the table.
Return Value
The return value has the data type boolean.
Example: MyDismantleStation.statBlockingTimeTable(myBlockingTimesTable);
Related Topic
Tab Statistics of the DismantleStation
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print DismantleStation.NumLeavingMU
NumLeavingMU
Syntax: Path.NumLeavingMU
The read-only attribute NumLeavingMU returns the number of MUs from the table Exiting MUs of the
DismantleStation designated by Path.
Return Value
The return value has the data type integer.
Related Topic
Exiting MUs
To view all of the methods and attributes of the DismantleStation, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyDismantleStation.NewMU := ".MUs.basicMU"
print MyDismantleStation.Pause
posit := MySingleProc.Cont.XPos
DismantleList
Syntax: Path.DismantleList
The attribute DismantleList sets the name of the dismantle table which contains the names of the
MUs, which leave the DismantleStation, and its successors. Enter the types of MUs ( string) into
column 1 and their amount into column 2 of the Dismantle Table (integer). When you do not enter
a value, the DismantleStation uses the default value 1. Enter the number of the successor into
the third column (integer).
If the dismantle list is inherited, inheritance is not automatically deactivated when you write
to cells of the dismantle list. To deactivate inheritance, assign the dismantle list to itself.
Related Topic
Dismantle Table
DismantleMode
Syntax: Path.DismantleMode
The attribute DismantleMode sets how the DismantleStation handles the MUs.
Data Type of Value You Can Assign
You can assign a value of data type string: To create MUs, enter Create MUs, to detach them from the
main MU, enter Detach MUs.
Example: MyDismantleStation.DismantleMode := "Detach MUs";
Related Topic
Dismantle mode
ExitingMUMode
Syntax: Path.ExitingMUMode
The attribute ExitingMUMode sets if the main MU exits the object or if a new MU will be created which
then exits the object. To make the main MU exit, enter Main MU, to make a newly created MU exit
the dismantle station, enter New MU.
Data Type of Value You Can Assign
You can assign a value of data type string :
Example: MyDismantleStation.ExitingMUMode := "New MU";
Related Topic
Exiting MU
MainMU
Syntax: Path.MainMU
The attribute MainMU sets the number of the successor to which the DismantleStation moves the
main MU.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyDismantleStation.MainMU := 1;
Related Topic
Exiting MU
NewMU
Syntax: Path.NewMU
When the DismantleStation deletes the main MU and creates a new MU instead, the attribute NewMU
sets the path of the MU to be created.
Data Type of Value You Can Assign
You can assign a path.
Related Topic
Exiting MU
Sequence
Syntax: Path.Sequence
The attribute Sequence sets how the DismantleStation distributes the MUs to the successors to
which it is connected.
Enter
• MUs to all successors:
o When you selected Create MUs as the Dismantle mode/DismantleMode, Plant Simulation
creates a new MU for each successor and moves the MU there. The exception is the main
MU. Plant Simulation moves it to the successor, whose number you entered as the Main MU
to successor with number/MainMU.
o When you selected Detach MUs as Dismantle mode, Plant Simulation moves the MUs to
each successor in turn. The exception is the main MU. Plant Simulation moves it to the
successor, whose number you entered as the Main MU to Successor with Number.
For these settings Plant Simulation requires entries in the dismantle table:
• MUs exiting independent of other MUs: Each MU attempts to move on to the successor you
defined as soon as possible.
• Main MU after other MUs: The mounting parts leave the DismantleStation before the main MU.
Related Topic
Dismantle sequence
Drain
Drain
The Drain removes the parts and workpieces, which the Source produced, from the plant after
they have been processed. You can use it to model the shipping department of your plant.
The built-in properties of the Drain are the same as those of the SingleProc. Like it, it has a single
processing station. The only difference is that the Drain removes the processed part from the plant
instead of moving it on to a succeeding object in the flow of materials.
You can also show the drain statistics table of a Drain in an HtmlReport, compare Display a Drain.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Check How Many Parts Left the Plant Attributes of the Drain
Dialog Window of the Drain Shared Properties of the Material Flow Objects
Double-click the icon of the Drain, which you inserted into a Frame, to open its dialog window. To
change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Statistics OK
Tab Times
Related Topics
Tab Set-Up
Define properties for setting the object up as described under the Tab Set-Up.
Related Topics
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Statistics
Statistics is described under theTab Statistics. In addition to the statistical data described under the
Statistics Report, the Drain collects and shows the statistical data of the mobile objects, described
under Product Statistics of the MUs.
You can also select to collect statistics for MUs with the same name that pass through your simulation
model, compare Tab Type Statistics.
Note that each time the Drain removes a part from the plant, it computes the proportional average
value of each statistical value displayed. For this it divides the average value by the average life
time times 100.
To view the Cumulated Statistics of the Parts which the Drains Removed from the Plant in the
Statistics Report, click the object in the Frame, and press F6 (Show Statistics Report), or click Show
Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Statistics Report
Resource statistics
Resource type
On the tab Type Statistics you can select to collect statistics for MUs with the same name that pass
through your simulation model by activating Type dependent statistics .
The tab shows this statistical data:
The sum of the percentages for the states working, setting-up, failed and paused of the
MUs adds up to 100 percent.
To view the Part Types which the Drains Removed from the Plant in the Statistics Report, click
the object in the Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on
the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topic
Check How Many Parts Left the Plant
To activate statistics collection depending on the type of the MU, which the Drain removed from
the plant, select this.
SimTalk:
TypeStatOn
Related Topics
StatThroughputPerDay
StatThroughputPerHour
StatAvgExitInterval
typeStatisticsCumulated
To open the Detailed Statistics Table, click this. It itemizes the MUs, which the Drain removed
from the plant, according to their types.
The table contains this statistical data:
CT_Min minimum cycle time difference of two parts that arrive back-to-back.
CT_Max maximum cycle time difference of two parts that arrive back-to-back.
SimTalk:
typeStatistics
typeStatisticsCumulated
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Set-up control, and the Pull control.
The Drain does not have an exit control. It deletes the MUs from the simulation model
at the end of its processing time.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Related Topic
Entrance control
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Contents
3D
To view all of the methods and attributes of the Drain, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
typeStatistics
Syntax: Path.typeStatistics[(TypeStatisticsTable:table]) → boolean
The method typeStatistics returns the Detailed Statistics Table of the object designated by Path and
writes it into a table.
Note that the column Method lists the methods of the corresponding statistics values for all part
types.
StatThroughputPerDay
Total throughput number of parts of this type.
StatThroughputPerHour
standard deviation of
W_StdDev the waiting times of the —
investigated parts.
standard deviation of
the waiting times of the
W_P_StdDev —
investigated parts on a
resource of type Production.
Parameter
The optional parameter TypeStatisticsTable of data type table designates the name of the table.
Return Value
The return value has the data type boolean.
• The return value is true if statistics collection is activated. It is false if it is deactivated. Then
the table remains unaltered.
• If you do not enter the optional parameter, the return value is the table containing the statistics
data if statistics collection is activated. The return value is void.
Related Topics
Detailed Statistics Table
Statistics report, Part Types which the Drains Removed from the Plant
typeStatisticsCumulated
TypeStatOn
typeStatisticsCumulated
The method typeStatisticsCumulated returns the cumulated statistics table containing the MU types
which the object designated by Path removed from the plant.
Parameter
The optional parameter CumulatedTypeStatisticsTable of data type table designates the name of the
table. The column Type remains empty though. The columns are the same as those on the table
which the method typeStatistics fills.
Return Value
The return value has the data type boolean.
• The return value is true if statistics collection is activated. It is false if it is deactivated. Then
the table remains unaltered.
• If you do not enter the optional parameter, the return value is the table containing the statistics
data if statistics collection is activated. The return value is void if statistics collection is deactivated.
Related Topics
typeStatistics
TypeStatOn
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Drain.StatAvgExitInterval
StatAvgExitInterval
Syntax: Path.StatAvgExitInterval
The read-only attribute StatAvgExitInterval returns the average time interval between exits of the
MUs which the Drain designated by Path removed from the plant.
It results from adding up the times of all intervals, and then dividing by the number of intervals.
Statistics only starts counting from the time the first MU arrived.
Return Value
The return value has the data type time.
Example: print MyDrain.StatAvgExitInterval;
Related Topics
Tab Type Statistics of the Drain
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Plant
StatAvgLifeSpan
Syntax: Path.StatAvgLifeSpan
The read-only attribute StatAvgLifeSpan returns the average life span of the MUs which the Drain
designated by Path removed from the plant.
Return Value
The return value has the data type time.
Example: print MyDrain.StatAvgLifeSpan;
Related Topic
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Plant
StatDeleted
Syntax: Path.StatDeleted
The read-only attribute StatDeleted returns the number of MUs which the Drain designated by Path
removed from the plant.
Return Value
The return value has the data type integer.
Example: print MyDrain.StatDeleted;
Related Topics
Tab Type Statistics of the Drain
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Plant
Statistics report, Part Types which the Drains Removed from the Plant
StatProdFailPortion
Syntax: Path.StatProdFailPortion
The read-only attribute StatProdFailPortion returns the portion of the sum of all life times of the MUs
during which these stayed on a failed material flow object of resource type Production which the
Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatProdPausingPortion
Syntax: Path.StatProdPausingPortion
The read-only attribute StatProdPausingPortion returns the portion of the sum of all life times of the
MUs during which these stayed on a paused or unplanned material flow object of resource type
Production which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatProdSetupPortion
Syntax: Path.StatProdSetUpPortion
The read-only attribute StatProdPausingPortion returns the portion of the sum of all life times of the
MUs during which these stayed on a material flow object of resource type Production that was
setting-up for the MU type, and which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: -- SimTalk 2.0 notation
var ra,wa: real
wa := MyDrain.StatProdWaitingPortion;
print "The waiting time portion on resources of resource type Production for a
ra := MyDrain.StatProdSetUpPortion
print "The set-up time portion on resources of resource type Production for al
Related Topic
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
Resource type of the material flow objects
StatProdStoppedPortion
Syntax: Path.StatProdStoppedPortion
The read-only attribute StatProdStoppedPortion returns the time portion during which the MU was
located on a material flow object of resource type Production that was stopped by a LockoutZone
and which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: print Drain.StatProdStoppedPortion;
Related Topic
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
Resource type of the material flow objects
StatProdWaitingPortion
Syntax: Path.StatProdWaitingPortion
The read-only attribute StatProdWaitingPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a waiting material flow object of resource type Production
which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatProdWorkingPortion
Syntax: Path.StatProdWaitingPortion
The read-only attribute StatProdWorkingPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a working material flow object of resource type Production
which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatStoreFailPortion
Syntax: Path.StatStoreFailPortion
The read-only attribute StatStoreFailPortion returns the time portion of the sum of all life times of the
MUs during which these stayed on a failed material flow object of resource type Storage which the
Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: print MyDrain.StatProdFailPortion;
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatStorePausingPortion
Syntax: Path.StatStorePausingPortion
The read-only attribute StatStorePausingPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a paused or unplanned material flow object of resource type
Storage which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatStoreSetupPortion
Syntax: Path.StatStoreSetUpPortion
The read-only attribute StatStoreSetUpPortion returns the time portion of the sum of all life times
of the MUs during which these stayed on a material flow object of resource type Storage that was
setting-up for the MU type, and which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatStoreStoppedPortion
Syntax: Path.StatStoreStoppedPortion
The read-only attribute StatStoreStoppedPortion returns the time portion during which the MU was
located on a material flow object of type Store that was stopped by a LockoutZone and which the
Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topic
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatStoreWaitingPortion
Syntax: Path.StatStoreWaitingPortion
The read-only attribute StatStoreWaitingPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a waiting material flow object of resource type Storage which
the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatStoreWorkingPortion
Syntax: Path.StatStoreWorkingPortion
The read-only attribute StatStoreWorkingPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a working material flow object of resource type Storage which
the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: print MyDrain.StatStoreWorkingPortion;
Related Topics
Tab Type Statistics of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatThroughputPerDay
Syntax: Path.StatThroughputPerDay
The read-only attribute StatThroughputPerDay returns the number of MUs that the Drain removed
from the plant in a day over all observed times during which the Drain was available. This is the value
of the throughput per hour multiplied with 24.
Return Value
The return value has the data type real.
Example: print MyDrain.StatThroughputPerDay;
Related Topics
Tab Type Statistics of the Drain
Detailed Statistics Table of the Drain
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Plant
StatThroughputPerHour
Syntax: Path.StatThroughputPerHour
The read-only attribute StatThroughputPerHour returns the number of MUs that the Drain removed
from the plant in an hour over all observed times during which the Drain was available.
Return Value
The return value has the data type real.
Example: print MyDrain.StatThroughputPerHour;
Related Topics
Tab Type Statistics of the Drain
StatThroughputPerMinute
Syntax: Path.StatThroughputPerMinute
The read-only attribute StatThroughputPerMinute returns the number of MUs that the Drain removed
from the plant in a minute over all observed times during which the Drain was available. This is the
value of the throughput per hour multiplied with 24.
Return Value
The return value has the data type real.
Example: print MyDrain.StatThroughputPerMinute
Related Topics
Tab Type Statistics of the Drain
Detailed Statistics Table of the Drain
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Plant
StatTranspFailPortion
Syntax: Path.StatTranspFailPortion
The read-only attribute StatTranspFailPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a failed material flow object of type Transport which the
Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: print MyDrain.StatThroughputPerHour;
Related Topics
Detailed Statistics Table of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatTranspPausingPortion
Syntax: Path.StatTranspPausingPortion
The read-only attribute StatTranspPausingPortion returns the time portion of the sum of all life
times of the MUs during which these stayed on a paused or unplanned material flow object of type
Transport which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Detailed Statistics Table of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatTranspSetupPortion
Syntax: Path.StatTranspSetUpPortion
The read-only attribute StatTranspSetUpPortion returns the time portion of the sum of all life times of
the MUs during which these stayed on a material flow object of type Transport that was setting-up for
the MU type, and which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Detailed Statistics Table of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatTranspStoppedPortion
Syntax: Path.StatTranspStoppedPortion
The read-only attribute StatTranspStoppedPortion returns the time portion during which the MU was
located on a material flow object of resource type Transport that was stopped by a LockoutZone
and which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: print Drain.StatTranspStoppedPortion;
Related Topic
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatTranspWaitingPortion
Syntax: Path.StatTranspWaitingPortion
The read-only attribute StatTranspWaitingPortion returns the time portion of the sum of all life times
of the MUs during which these stayed on a waiting material flow object of resource type Transport
which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Example: -- SimTalk 2.0 notation
var ra,wa: real
wa := MyDrain.StatTranspWaitingPortion
print "The waiting time portion on resources of resource type Transport for al
ra := MyDrain.StatTranspSetUpPortion
print "The set-up time portion on resources of type transport for all parts is
Related Topics
Detailed Statistics Table of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
StatTranspWorkingPortion
Syntax: Path.StatTranspWorkingPortion
The read-only attribute StatTranspWorkingPortion returns the time portion of the sum of all life times
of the MUs during which these stayed on a working material flow object of resource type Transport
which the Drain designated by Path removed from the plant.
Return Value
The return value has the data type real.
Related Topics
Detailed Statistics Table of the Drain
Resource type of the material flow objects
Statistics report, Cumulated Statistics of the Parts which the Drains Removed from the Installation
To view all of the methods and attributes of the Drain, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyDrain.Pause := true
TypeStatOn
Syntax: Path.TypeStatOn
The attribute TypeStatOn activates the collection of statistics values depending on the type of MU
(true) or deactivates it (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Type dependent statistics
EventController
EventController
The EventController coordinates and synchronizes the different events taking place during a
simulation run.
Plant Simulation is a discrete event simulation system that shows the state changes of the model
components at certain points in time, not continually over time. When a part enters a processing
station, for example a SingleProc, Plant Simulation computes the time it takes to process it and enters
that event and that time into the List of scheduled events of the EventController. Plant Simulation
considers these events in a discrete way, step by step. The main advantage of this approach is
that it skips the time that elapses in real-time between the events. Imagine a time line where you
insert markers at certain points.
The EventController moves along the time line like the play-back head of a video recorder, and
interprets messages relating to the events the objects execute. After the processing time has
elapsed, the EventController passes on to the station that has to initiate an exit event ( Out ) , the
SingleProc in our case. The part then moves on to the succeeding object in the flow of materials.
There again, Plant Simulation computes the exit time and passes it on to the EventController. It then
sets a marker at the point in time the station has to move the part to the next station. Plant Simulation
repeats this process cyclically for all MUs located in the simulation model.
Starting and Stopping the Simulation
You can start the simulation:
• By clicking Start/Stop Simulation on the Home Ribbon Tab of the Frame. When you start
the simulation by clicking without having inserted an EventController, Plant Simulation asks if
you would like to insert one.
The simulation stops after the current event has been completely processed.
At the end of the simulation run Plant Simulation executes all methods that are named endSim. The
end of the simulation run is reached, when the event list is empty or when the End time, which you
entered on the tab Settings has been reached.
Instead of clicking the buttons in the dialog of the EventController, you can also click the
corresponding buttons on the Home Ribbon Tab.
Related Topics
Dialog Window of the EventController Shared Properties of the Material Flow Objects
Double-click the icon of the EventController, which you inserted into a Frame, to open its dialog
window. To change the properties of the Class of the object, double-click it in the Class Library or on
the tab Material Flow in the Toolbox.
Instead of clicking the buttons in the dialog of the EventController, you can also click the
corresponding buttons on the Home Ribbon Tab.
Related Topics
Apply
Time
The program shows the current simulation time of the simulation run in the box next to Time.
Click Time to change the display of the time between the
• Relative time: The program resets the relative time to zero, when it starts the simulation run.
This is the default.
• Current time plus simulation time: The program adds the simulation time to the time and date
at which it started the simulation run.
Let us assume that today is the 19th of February 2015, 12 o’clock noon and that the simulation
is to run for two days.
• For the setting relative time the program shows 2:00:00:0000, i.e., two days, after the
simulation run is finished.
• For the setting current time plus simulation time the program shows Sa, 2015/02/21
12:00:00.0000, i.e., Saturday, February 21, 2015, 12 o’clock noon.
SimTalk:
AbsSimTime
SimTime
Tab Controls
Tab Controls
Instead of clicking the buttons in the dialog of the EventController, you can also click the
corresponding buttons on the Home Ribbon Tab.
Reset Simulation
To reset your simulation model, click . Plant Simulation then calls all Methods named reset in
your simulation model.
Once all Reset methods have been executed, Plant Simulation deletes all unprocessed events,
resets the simulation time to 0, resets the statistics, clears all failures of all objects in the simulation
model, and sets all objects to the state planned. If is active, Plant Simulation
also deletes all MUs.
Note that the request control, the receive control, and the release control of the Importer are not
called when you reset the simulation.
When you click Reset Simulation while the simulation is running, Plant Simulation finishes
processing the current event and then resets the model.
Resetting the simulation model also deletes MUs on the Clipboard, as MUs on the Clipboard would
lead to a different numbering of the MUs for a new simulation run.
Plant Simulation deletes suspensions of methods, which are located in the same Frame as the
EventController or in a sub-Frame of this Frame. It also deletes suspensions of methods, whose
caller (the anonymous identifier ?) is located in the same Frame as the EventController or in a
sub-Frame of this Frame.
Note that the global method deleteSuspendedMethods deletes all suspensions of all methods.
SimTalk:
reset
Related Topics
Delete MUs on reset
InitStat
IsInitialized
Reset Simulation button in the EventDebugger
ResetCtrl
Start/Stop Simulation
To start the simulation, click . To stop the simulation after the active simulation event has
been processed, click the button again. The program calls init methods when you click Start/Stop
Simulation if they have not been called yet.
Instead, you can also click on the Home Ribbon Tab or double-click the icon of the EventController
while holding the Shift key down.
Or you can right-click the EventController in the Frame and select Start/Stop Simulation on the
context menu.
SimTalk:
start
stop
StartStopCtrl,
init,
InitCtrl
Related Topics
Init control of the EventController
Init control of the Transporter
IsInitialized
To start the simulation run without MU Animation and Icon Animation , click . This
makes the simulation considerably faster.
Instead, you can also click on the Home Ribbon Tab.
Or you can right-click the EventController in the Frame and click Start without Animation on the
context menu.
The Fast Forward Simulation mode automatically deactivates Realtime mode. When you terminate
Fast Forward Simulation mode, Realtime mode will be activated again, provided it was activated
before.
You can quickly change between Fast Forward Simulation and normal simulation, by clicking the
respective button while the simulation is running.
SimTalk:
startWithoutAnimation
To process the next simulation event in line, to stop the simulation afterwards, and to thus proceed
through your model step-by-step, click .
When you hold down Shift while clicking Step , Plant Simulation opens the Method Debugger
for all methods and formulas, which are executed while the event is being processed. This means
that the debugger opens for all executed controls, formulas and for suspended methods, which
were woken up.
If init methods have not been called yet, the init methods are started instead of processing an event.
List
• The column Breakpoint shows an S, for a breakpoint which you inserted by double-clicking a
cell in the row.
Double-click a cell in the row where you would like to insert a single breakpoint. Then the Event
Debugger stops the simulation immediately before the EventController processes that event.
Double-click again to remove the breakpoint.
• The column Time shows the point in time at which the event is going to be executed.
• The column Receiver shows the object that receives the simulation event.
• The column Sender shows the object that sends the simulation event.
• The column Insertion Time shows the point in time at which the event was entered into the event
list. This column is hidden by default. Drag the column separator to show it.
• The column Parameters shows additional information for certain event types, for example the
sensor ID (SensorStart), the name of the failure profile (DisruptionBegin), or the parameters
passed to a Method (MethCall).
the PickAndPlaceRobot is
done loading/unloading
the Worker is done
loading/unloading
EndOfTime ZeitBeendet the Mixer has finished mixing
products
Converter/AngularConverter is
done changing the conveying
direction of the MU
the PickAndPlaceRobot,
EndOfTurn EndeDrehen Turnplate, Turntable reaches
the end position of the rotation
SimTalk:
getEventList
Related Topics
GetDisruptionBeginTime
GetDisruptionEndTime
Slower/Faster
To increase the speed of the simulation, drag the slider to the right or press the right arrow key. To
decrease the speed of the simulation, drag it to the left or press the left arrow key.
Decreasing the speed enables you to better follow the movements of MUs, as Plant Simulation shows
their icons for a longer time on the same station.
SimTalk:
Speed
Real-time
To pause the simulation until the time span between two events has elapsed in real-time, select this.
Then, enter the Scaling Factor into the text box to the right.
You have to activate real-time mode to achieve a smooth animation in 3D. Animations, which you
imported into the 3D Viewer only run, when you activate real-time mode. The objects in the 3D
Viewer move with the speed of the corresponding Plant Simulation object and the real-time factor,
which you enter here.
Normally Plant Simulation does not take the time span between events into account,
as it is a discrete event simulation system.
Instead of checking , you can also click on the Home Ribbon Tab.
SimTalk:
RealTime
Scaling Factor
Enter or select the scaling factor for real-time mode. The scaling factor sets the time that elapses
between two events in real-time. The duration of an event in real-time is the simulation time divided
by the scaling factor you entered. The resulting duration is an integer value.
SimTalk:
RealTimeScale
Related Topic
Time-Oriented Simulation and Event-Controlled Simulation
Tab Settings
Tab Settings
Date
Enter the date and the time on which the absolute time during the simulation is based or accept
the pre-defined date.
SimTalk:
Date
End
Enter the time at which the simulation will be finished. Enter a relative time, i.e., the period of time
during which the simulation runs.
The program compares this period with the simulation time and stops the simulation run, when
both are identical. Let us assume that today is July 04, 12 o’clock noon and that the simulation
is to run for two days.
To make the simulation run for two days, type in 2:00:00:00. If you do not want to write this out in
full, you can also just type 2::: and click Apply to make the program translate this to the full format
2:00:00:00.
SimTalk:
End
Statistics
Enter the time at which the EventController resets statistics and deletes all statistics values it
collected up to that time. The program starts collecting new statistical data for all material flow objects
anew from this time on. This way you can discard data collected during the warm-up phase, which
might distort the simulation results.
SimTalk:
StartStat
To step over animation events and to stop at the next event which is relevant to the simulation in
any window, select this. Then, click Single Step Simulation on the tab Controls to process
a single simulation event at a time.
To delete all MUs from all Frames, when you reset the simulation model by clicking the Reset
Simulation button or by calling the method reset, select this.
To show a summary report of the parts which the Drain deleted, select this. At the end of the
simulation run the report checks all Drain objects within the entire simulation model which removed
parts from the plant.
You can also show the drain statistics table of a Drain in an HtmlReport, compare Display a Drain.
SimTalk:
SummaryReport
Related Topic
Show Summary Report
• The column Breakpoint shows an S, for a breakpoint you inserted, by double-clicking a cell
in the row.
Double-click a cell in the row where you would like to insert a single breakpoint. Then the Event
Debugger stops the simulation immediately before the EventController processes that event.
Double-click again to remove the breakpoint.
• The column Type shows the type of event.
• The column Time shows the point in time the event is going to be executed.
• The column Insertion Time shows the point in time at which the event was inserted into the
EventController.
• The column Parameters shows additional information for certain event types, for example the
sensor ID (SensorStart), the name of the failure profile (DisruptionBegin) or the parameters
passed to a Method (MethCall).
To open the list of scheduled events, click List on the tab Controls in the EventController. You
can also hold down Shift and double-click the icon of the EventController in the Frame.
Related Topics
Breakpoints active
To activate breakpoints, select this. Plant Simulation the stops executing the event at a breakpoint,
which you inserted.
SimTalk:
BreakPointsActive
Trace File
Enter the name of the file to which the Event Debugger writes all events. If the file does not exist, the
Event Debugger creates it.
To open the dialog Save As and select an existing file to which the Event Debugger writes all events,
click this.
SimTalk:
TraceFile
Trace active
To make the Event Debugger write all events to the file the name of which you enter into the text
box Trace file, select this.
SimTalk:
TraceActive
Breakpoints
Breakpoints
The list shows the event type, the start time, the stop time, the receiver and the sender of the event.
To insert a new breakpoint, click this. Then, define the breakpoint that stops the simulation when a
certain event takes place in The Dialog Breakpoint.
To edit an existing breakpoint, select it in the list of breakpoints and click this.
To activate an existing breakpoint, you can also double-click the respective event in the list of
scheduled events.
Related Topic
The Dialog Breakpoint
Select the Receiver, the Sender, the Start time, the Stop time, the Type, the Condition, and a Trace
file in the dialog Breakpoint that opens when you click Insert.
Receiver
Enter the object that receives the breakpoint with its absolute path. If you do not enter a receiver, this
breakpoint applies to events with any receiver.
Or you can click and select the object in the dialog Select Object.
SimTalk:
setBreakpointReceiver
getBreakpointReceiver
Related Topic
Example 1
Sender
Enter the object that sends the breakpoint with its absolute path. Whenever the object creates
an event, you can stop the simulation and track the execution. If you do not enter a Sender, this
breakpoint applies to events with any sender.
Or you can click this and select the object in the dialog Select Object.
SimTalk:
setBreakpointSender
getBreakpointSender
Related Topic
Example 2
Start time
Stop time
If you do not enter a value for the start time and/or the stop time, no limits apply for the interval
during which the breakpoint is active.
SimTalk:
setBreakpointStopTime,
getBreakpointStopTime
Related Topic
Example 3
Type
Select the type of event for which the breakpoint is active. The asterisk (*) stands for any type of event.
SimTalk:
setBreakpointType
getBreakpointType
Related Topics
List of events
Example 4
Condition
Enter any condition you would like to apply to the definition of the breakpoint. Before an event is
released for execution, the Event Debugger checks the expression you entered.
This expression may be anything that returns a boolean value. When the condition returns true, the
Event Debugger stops the simulation. When you use a formula for the condition, you can access
the receiver using the anonymous identifier @. You might, for example, enter @.Name = "Wheel" AND
@.getNo = 4 or @.length<100
Or you can click and select a Method in the dialog Select Object.
SimTalk:
getBreakpointCondition,
setBreakpointCondition
Related Topic
Example 4
Trace file
To select an existing file, into which the Event Debugger writes the scheduled events of the objects,
click this.
Enter the name of the file. When you do not enter a name, the Event Debugger does not create a
trace file.
SimTalk:
setBreakpointTraceFile
getBreakpointTraceFile
Related Topic
Example 5
Show Receiver
To select the icon of the object that receives the event in the Frame window, select Show Receiver.
Open Receiver
To open the dialog window of the object that receives the event, select Open Receiver.
SimTalk
ActReceiver
Open Sender
To open the dialog window of the object that sends the event, select Open Sender.
Stop at Event
To add a breakpoint for the selected event to the list of scheduled events, select Stop at Event.
Create Breakpoint from Event
To create a breakpoint from the selected event, select Create Breakpoint from Event. Enter or
select missing settings to the dialog Breakpoint.
Event Time /Date
Plant Simulation shows the time/date of the selected event here.
Reset Simulation
To reset your simulation model, click . The button does the same as the Reset Simulation
button in the EventController.
SimTalk:
reset
Related Topics
Reset Simulation button in the EventController
Delete MUs on reset
InitStat
IsInitialized
ResetCtrl
Start/Stop Simulation
To start the simulation, click . To stop the simulation after the active simulation event has been
processed, click the button again.
SimTalk:
start
stop
To start the simulation run without MU Animation and Icon Animation , click . This
makes the simulation considerably faster.
Instead, you can also click on the Home Ribbon Tab.
Close
To close the window of the Event Debugger, click this or click the X in the title bar.
Open Class
Related Topic
Show summary report
3D —
Init control
Click this and select a Method object in the dialog Dialog Items of the Objects. Enter the source
code of the init control. Plant Simulation calls this control once at the beginning of the simulation run
during the init phase before the objects are initialized and before init methods are executed.
You can also initialize attributes which affect event generation, for example the availability. Here the
init controls are executed before events are generated. The normal init methods are executed after
the calculation of the initial events.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
InitCtrl
Related Topic
Define How Many Workers Are Created When the Model is Initialized
The menu command Random Number Variant shows and sets the random numbers variant.
Different variants generate different random numbers. Select the command and enter a different
random numbers variant.
SimTalk:
RandomNumbersVariant
Related Topics
RandomSeed
Simulating Random Processes
The menu command Increment Variant on Reset sets if different random numbers will be generated
after resetting the model or not.
SimTalk:
IncrementRandomNumbersVariantOnReset
Related Topic
Simulating Random Processes
The menu command Antithetic Random Numbers sets if Plant Simulation uses common random
numbers or antithetic random numbers.
For creating a random number for a distribution, for example for the exponential distribution, Plant
Simulation uses a uniformly distributed random number U located between 0 and 1. For antithetic
random numbers it uses 1-U.
SimTalk
setAntitheticRandomNumbers
Help on Object
The menu command Help on Object opens the help topic pertaining to the EventController.
To view all of the methods and attributes of the EventController, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getBreakpointCondition
Syntax: Path.getBreakpointCondition(LineInBreakpointList:integer) → string
The method getBreakpointCondition returns the Condition which you would like to apply to the
definition of the breakpoint of the EventController designated by Path. Before an event is released for
execution, the Event Debugger checks the expression you entered.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
This expression may be a global variable (Variable), an attribute or a method that returns a boolean
value. When the condition returns true, the Event Debugger stops the simulation.
Return Value
The return value has the data type string.
Example: print EventController.getBreakpointCondition(2);
Related Topic
setBreakpointCondition
getBreakpointReceiver
Syntax: Path.getBreakpointReceiver(LineInBreakpointList:integer) → object
The method getBreakpointReceiver returns the object that receives the breakpoint of the
EventController designated by Path, i.e., the Receiver.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
Return Value
The return value has the data type object.
Related Topic
setBreakpointReceiver
getBreakpointSender
The method getBreakpointSender returns the object that sends the breakpoint, of the EventController
designated by Path, i.e., the Sender.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
Return Value
The return value has the data type object.
Related Topic
setBreakpointSender
getBreakpointStartTime
The method getBreakpointStartTime returns the time at which the breakpoint becomes active of the
EventController designated by Path, i.e., the Start time.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
Return Value
The return value has the data type time.
Related Topic
setBreakpointStartTime
getBreakpointStopTime
Syntax: Path.getBreakpointStopTime(LineInBreakpointList:integer) → time
The method getBreakpointStopTime returns the time at which the breakpoint becomes inactive of the
EventController designated by Path, i.e., the Stop time.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
Return Value
The return value has the data type time.
Example: print EventController.getBreakpointStopTime(3);
Related Topic
setBreakpointStopTime
getBreakpointTraceFile
Syntax: Path.getBreakpointTraceFile(LineInBreakpointList:integer) → string
The method getBreakpointTraceFile returns the name of the Trace file to which of the EventController
designated by Path writes the events.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
Return Value
The return value has the data type string.
Example: print EventController.getBreakpointTraceFile(4);
Related Topic
setBreakpointTraceFile
getBreakpointType
Syntax: Path.getBreakpointType(LineInBreakpointList:integer) → string
The method getBreakpointType returns the Type of event for which the breakpoint of the
EventController designated by Path is active.
Parameter
The parameter LineInBreakpointList of data type integer designates the line of the breakpoint in the
breakpoint list.
Return Value
The return value has the data type string.
Example: print EventController.getBreakpointType(6);
Related Topic
setBreakpointType
getEventList
Syntax: Path.getEventList(MaximumNumberOfEvents:integer) → table
The method getEventList returns the List of scheduled events of the EventController designated by
Path.
Parameter
The parameter MaximumNumberOfEvents of data type integer designates the maximum number of
events, which the EventController writes to the table file.
Enter getEventList(-1) to write all events to the table file. The event list provides the columns Type,
Time, Receiver, Sender, Insertion Time, and Parameters.
Return Value
The return value has the data type table.
Example: TableVariable := EventController.getEventList(-1);
init
Syntax: Path.init
The method init makes the EventController designated by Path execute all Methods in your simulation
model that are named init. Plant Simulation initializes the simulation model using the method Init
before it executes the next scheduled event.
Plant Simulation does not execute the Init immediately, but only when all methods being executed at
the moment have been executed all the way. This includes the method, which has triggered the Init.
The methods reset and start behave like this as well.
Example: root.EventController.Init;
Related Topics
Start/Stop Simulation
init, method in SimTalk
reset
Syntax: Path.reset
The method reset makes the EventController designated by Path execute all methods in your
simulation model that are named reset. Plant Simulation deletes all unprocessed events, resets the
simulation time to 0, resets the statistics, clears all failures of all objects, and sets all objects to the
state planned.
Note that the request control, the receive control, and the release control of the Importer are not
called when you reset the simulation.
Plant Simulation does not execute the Reset immediately, but only when all methods being executed
at the moment have been executed all the way. This includes the method, which has triggered the
Reset. The methods init and start behave like this as well.
Example: -- SimTalk 2.0 notation
EventController.reset
EventController.start
EventController.RandomNumbersVariant := EventController.RandomNumbersVariant +
-- When this method has been executed all the way, the Eventcontroller will be
-- When the reset phase has been finished all the way, the simulation will be
Related Topics
Reset Simulation button in the EventController
Reset Simulation button in the EventDebugger
reset, method in SimTalk
ResetCtrl
setBreakpointCondition
The method setBreakpointCondition sets the Condition, which you would like to apply to the definition
of the breakpoint of the EventController designated by Path.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter Condition of data type string designates the condition of the breakpoint.
Before an event is released for execution, the Event Debugger checks the expression you entered
as the parameter of data type string.
This expression may be a global variable (Variable), an attribute or a method that returns a boolean
value. When the expression returns true, the Event Debugger stops the simulation.
Return Value
The return value has the data type string.
Example: print EventController.setBreakpointCondition(2,"@.length<100");
Related Topic
getBreakpointCondition
setBreakpointReceiver
Syntax: Path.setBreakpointReceiver(LineInBreakpointList:integer, ReceivingObject:objec
The method setBreakpointReceiver sets the Receiver of the breakpoint of the EventController
designated by Path.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter ReceivingObject of data type object designates the object that receives the
breakpoint.
Return Value
The return value has the data type object.
Example: print EventController.setBreakpointReceiver(2,drain);
Related Topic
getBreakpointReceiver
setBreakpointSender
Syntax: Path.setBreakpointSender(LineInBreakpointList:integer, SendingObject:object) →
The method setBreakpointSender sets the Sender of the breakpoint of the EventController
designated by Path.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter SendingObject of data type object designates the object that sends the breakpoint.
Return Value
The return value has the data type object.
Related Topic
getBreakpointSender
setBreakpointStartTime
Syntax: Path.setBreakpointStartTime(LineInBreakpointList:integer, StartTime:time or da
The method setBreakpointStartTime sets the Start time at which the breakpoint of the breakpoint of
the EventController designated by Path will be activated.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter StartTime of data type time designates the time at which the breakpoint will be
activated.
Return Value
The return value has the data type time.
Example: print EventController.setBreakpointStartTime(2,15);
Related Topic
getBreakpointStartTime
setBreakpointStopTime
Syntax: Path.setBreakpointStopTime(LineInBreakpointList:integer, StopTime:time or date
The method setBreakpointStopTime sets the Stop time at which the breakpoint of the EventController
designated by Path will be deactivated.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter StopTime of data type time designates the time at which the breakpoint will
be deactivated.
Return Value
The return value has the data type time.
Example: print EventController.setBreakpointStopTime(5,50);
Related Topic
getBreakpointStopTime
setBreakpointTraceFile
Syntax: Path.setBreakpointTraceFile(LineInBreakpointList:integer, FileName:string) → s
The method setBreakpointTraceFile the name of the Trace file into which the EventController
designated by Path writes the events.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter FileName of data type string designates the name of the trace file.
Return Value
The return value has the data type string.
Example: print EventController.setBreakpointTraceFile(2, "C:\users\hawthorne\myTracefil
Related Topic
getBreakpointTraceFile
setBreakpointType
Syntax: Path.setBreakpointType(LineInBreakpointList:integer, EventType:string) → strin
The method setBreakpointType sets the type of Type of event for which the breakpoint of the
EventController designated by Path is active.
Parameters
• The parameter LineInBreakpointList of data type integer designates the line of the breakpoint
in the breakpoint list.
• The parameter EventType of data type string designates the type of event for which the
breakpoint will be active.
Return Value
The return value has the data type string.
Example: print EventController.setBreakpointType(2,"Pause");
Related Topic
getBreakpointType
start
Syntax: Path.start
The method start activates the EventController designated by Path and starts the simulation run.
If the method is called during the simulation run, Plant Simulation pauses the current simulation run
until the newly started simulation is finished.
Plant Simulation does not start the EventController immediately, but only when all methods being
executed at the moment have been executed all the way. The methods reset and init behave like
this as well.
Example: .delivery.EventController.start;
Related Topic
Start/Stop Simulation
startWithoutAnimation
Syntax: Path.startWithoutAnimation
The method startWithoutAnimation activates the EventController designated by Path and starts the
Related Topic
Start without Animation
step
Syntax: Path.step
The method step activates the EventController designated by Path, starts the simulation run,
processes a single event, and stops the simulation again.
Example: .delivery.EventController.step;
Related Topic
Single Step Simulation
stop
Syntax: Path.stop[(EndSim:boolean := false])
The method stop stops the EventController and terminates the simulation run.
Parameter
The optional parameter EndSim of data type boolean set if the simulation will be stopped and if the
endSim methods will be executed (true) or if the simulation will only be stopped (false).
Related Topic
Start/Stop Simulation
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print EventController.AbsSimTime
AbsSimTime
Syntax: Path.AbsSimTime
The read-only attribute AbsSimTime returns the current simulation time of the EventController
designated by Path as an absolute time statement.
Return Value
The return value has the data type dateTime.
Example: print EventController.AbsSimTime; -- might return 23.02.2014 00:00:00.0000
Related Topic
Time
ActReceiver
Syntax: Path.ActReceiver
The read-only attribute ActReceiver returns the receiving object of the event that the EventController
designated by Path currently executes or will execute next.
Return Value
The return value has the data type object.
Example: print EventController.ActReceiver;
Related Topic
Open Receiver
GetNextEventTime
Syntax: Path.GetNextEventTime
The read-only attribute GetNextEventTime returns the time the next event in the event list of the
EventController designated by Path is scheduled to be executed.
Return Value
The return value has the data type time.
Example: print EventController.GetNextEventTime;
IsInitialized
Syntax: Path.IsInitialized
The read-only attribute IsInitialized returns if the EventController designated by Path has been
initialized (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print root.EventController.IsInitialized;
IsResetting
Syntax: Path.IsResetting
The read-only attribute IsResetting is set to true when you reset the simulation model. Plant
Simulation sets it to false again once all reset methods have been processed.
Return Value
The return value has the data type boolean.
IsRunning
Syntax: Path.IsRunning
The read-only attribute IsRunning returns if the EventController designated by Path is running at the
moment (true) or not (false).
Return Value
The return value has the data type boolean.
SimTime
Syntax: Path.SimTime
The method SimTime is observable so that you can, for example, watch its value with an
object of type Display or Chart. You should never use the method SimTime in a method,
which influences the simulation, with a waituntil- or stopuntil-instruction.
The time does not advance continuously, but jumps from event to event. When you
activate the animation, Plant Simulation generates additional events so that the waituntil-
or stopuntil-instruction might be woken up at an earlier point in time.
Return Value
The return value has the data type time.
Related Topic
Time
To view all of the methods and attributes of the EventController, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
EventController.AbsTimeFormat := true
AbsTimeFormat
Syntax: Path.AbsTimeFormat
The attribute AbsTimeFormat sets if the EventController shows the time as the absolute Time (true)
or as the relative time (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: EventController.AbsTimeFormat := false;
Related Topic
Time
BreakPointsActive
Syntax: Path.BreakPointsActive
The attribute BreakPointsActive activates (true) or deactivates (false) breakpoints of the Event
Debugger.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: EventController.BreakPointsActive := true;
Related Topic
Breakpoints active
Date
Syntax: Path.Date
The attribute Date sets the date and the time on which the absolute time during the simulation is
based.
Data Type of Value You Can Assign
Related Topic
Date
DeleteMUsOnReset
Syntax: Path.DeleteMUsOnReset
The attribute DeleteMUsOnReset deletes all MUs from all Frames, when you reset the simulation
model by clicking the Reset Simulation button or by calling the method reset (true) or it does not
delete them (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: EventController.DeleteMUsOnReset := true;
Related Topic
Delete MUs on reset
End
Syntax: Path.End
The attribute End sets the time at which the simulation will be finished.
Data Type of Value You Can Assign
You can assign a value of data type time.
Plant Simulation does not change the display in the dialog window after assigning a value
to the attribute. You have to click OK or Apply to update the value!
Related Topic
End
ExperimentManager
Syntax: Path.ExperimentManager
IncrementRandomNumbersVariantOnReset
Syntax: Path.IncrementRandomNumbersVariantOnReset
Related Topics
Increment Variant on Reset
Simulating Random Processes
InitCtrl
Syntax: Path.InitCtrl
The attribute InitCtrl designates a Method object. Plant Simulation calls this control once at the
beginning of the simulation run during the init phase before the objects are initialized and before
init methods are executed.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
EventController.InitCtrl := &myInitControl
Example: -- The source code of an init control might look like this:
MyWorkersTable[2,1] := 2; -- enters the desired amount of the worker John
MyWorkersTable[2,2] := 1; -- enters the desired amount of the worker Nellie Wo
Related Topics
Init control
Define How Many Workers Are Created When the Model is Initialized
RandomNumbersVariant
Syntax: Path.RandomNumbersVariant
The attribute RandomNumbersVariant sets the random numbers variant. Different variants generate
different random numbers.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: EventController.RandomNumbersVariant := 2;
Related Topics
Random Numbers Variant
Simulating Random Processes
RealTime
Syntax: Path.RealTime
The attribute RealTime sets if the EventController will wait for the time span between events during
the simulation to elapse in real-time (true) or not (false).
Activate real-time mode to achieve a smooth 3D-animation. Imported animations only run
in this mode.
Related Topic
Real-time
RealTimeScale
Syntax: Path.RealTimeScale
The attribute RealTimeScale sets the time factor that elapses between two events in real-time.
The duration of an event in real-time is the simulation time divided by the scaling factor you enter.
The resulting duration is an integer.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: EventController.RealTimeScale := 10;
Related Topic
Scaling Factor
ResetCtrl
Syntax: Path.ResetCtrl
The attribute ResetCtrl designates a Method object, which is called, whenever you click Reset
Simulation in the EventController or when the method reset is called. Note that Plant Simulation calls
this control before calling any reset method you inserted in the Frame and any of its sub-Frames.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
EventController.ResetCtrl := &myResetMethod
Related Topics
Reset Simulation button in the EventController
Reset Simulation button in the EventDebugger
reset method
Speed
Syntax: Path.Speed
The attribute Speed sets the speed with which the EventController executes the simulation. You can
enter a number between 100 (fastest) and 0 (slowest).
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: -- SimTalk 2.0 notation
-- Restarts the first transporter after a certain time.
EventController.Speed := 60 -- reduces the simulation speed to better see
-- what is going on in the model
&reStart.methCall(10) -- calls the method ’reStart’ after 10 seconds
Related Topic
Slower/Faster
StartStat
Syntax: Path.StartStat
The attribute StartStat resets the statistics collection at the time, which you entered. Statistics
collection will then start anew.
Data Type of Value You Can Assign
You can assign a value of data type time.
Related Topic
Statistics
StartStopCtrl
Syntax: Path.StartStopCtrl
The attribute StartStopCtrl designates a Method object, which is called, whenever you click Start/Stop
Simulation in the EventController. Note that, whenever you click Single Step Simulation in the
EventController, Plant Simulation calls the method, processes the next event, and calls the method
again.
Data Type of Value You Can Assign
You can assign a value of data type object.
You can use the expression ?. IsRunning in the code of the control to tell if the EventController
was started (false) or stopped (true).
Related Topic
Start/Stop Simulation
SummaryReport
Syntax: Path.SummaryReport
The attribute SummaryReport shows a summary report at the end of the simulation run of those parts
which the Drain deleted (true) or does not show it (false).
Related Topic
TraceActive
Syntax: Path.TraceActive
The attribute TraceActive activates the recording of events (true) or deactivates it (false).
Related Topic
Trace active
TraceFile
Syntax: Path.TraceFile
The attribute TraceFile sets the name of the text file the Event Debugger writes the event log to.
Related Topic
Trace File
FlowControl
FlowControl
The FlowControl allows to model common strategies for splitting-up and for bringing together the flow
of materials in your plant. Note that the FlowControl does not process the MUs, it only distributes
them among the objects that succeed it in the sequence of stations in the simulation model.
Insert the FlowControl between two other objects to control the flow of materials between these
objects. If need be, you can also combine several FlowControl objects.
You may not connect a FlowControl with itself, not even via other FlowControls or
Interfaces. You can, for example not model like this: FlowControl1 -> Frame.Interface1 ->
Frame.FlowControl2 -> Frame.Interface2 -> FlowControl1.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
OK
For some of the exit strategies you can also select if the strategy is Blocking or not
blocking .
Related Topics
Strategy
Next aimed at successor
Blocking
Data Held in Tabular Form in Attributes
Blocking
Select if the exit strategy is blocking or non-blocking :
• When you select Blocking , the FlowControl only moves the part on, when the
designated successor can receive it.
• When you clear the check box, the FlowControl only moves the part on, when any of its
successors can receive it.
The non-blocking strategy of the exit strategy > MU Attribute moves the part on when
any of the desired successors can receive it.
SimTalk:
ExitBlocking
Strategy
Strategy
Select the strategy according to which the FlowControl distributes the MUs among its successors.
• The strategy Assignment does not determine the successor to which the FlowControl moves the
part on. Instead, you can change the values of the attributes of the part, when it moves to the
one and only successor of the FlowControl. As soon as the part is moved on to the successor,
Plant Simulation calls the method, whose name you entered into the text box Method. Define
the assignments to be made in this method.
• To cyclically move the MUs on to the successor according to the sequence of successors, which
you entered into a list, select Cyclic sequence.
• To move the MUs on to the successor, which has been Waiting the longest for a part, select
Least recently used.
• To move the MUs on to a successor according to the return value of a Method, select Method.
• To move the MUs on to the successor, which has Waiting the shortest time for an MU, select
Most recently used.
• To move the MUs on to a successor according to the values of attributes of the MUs, select MU
Attribute.
• To move the MUs on to the successor meeting a certain Property, select Selection from the
drop-down list. Then, select a Property from the drop-down list Property.
• To move the MUs on to the first available successor, select Start at successor 1.
• To copy the MUs that enter, and move a copy each to each of the successors, select To all
successors.
Depending on what you select, the FlowControl shows additional check boxes, text boxes and buttons.
Click Open List and enter the data into the list, which the exit strategies Cyclic sequence, MU
Attribute, MU Name, and Percentage require.
SimTalk:
ExitBehavior
getExitList
setExitList
Related Topic
Data Held in Tabular Form in Attributes
Assignment
A FlowControl using the Assignment strategy always moves the MUs on to the successor
with the number 1.
The strategy Assignment does not determine the successor to which the FlowControl moves the MU
on. Instead, you can change the values of the attributes of the MU, when it moves to the one and
only successor of the FlowControl.
As soon as the MU is moved on to the successor, Plant Simulation calls the method, whose name
you entered into the text box Method. Define the assignments to be made in this method.
Normally Plant Simulation only calls the method, when it is certain that the successor can
receive the MU. If the successor is a FlowControl, changing an attribute of the MU by this
method can affect to which successor this succeeding FlowControl will move the MU on. In
this case the method will be called for a temporary copy of the MU and the succeeding
FlowControl determines its successor using this copy. The original MU stays untouched
during this time. If the thus determined successor can receive the MU, the method will be
called again for the original MU.
In this case you should make sure that you assign the same value to the copy as to the
original MU.
Related Topics
ExitBehavior
DefaultSuccessor
Show Successors
Cyclic
To move the MUs cyclically on to all successors, select Cyclic from the drop-down list.
• When you select Blocking , the FlowControl moves the MU on to the successor, which
follows the successor to which the last MU was moved. If this successor cannot receive the MU,
it will be Blocked until the successor can receive it.
• When you clear Blocking , the FlowControl moves the MU on to the first successor,
which can receive the MU and which follows the successor to which the last MU was moved.
Once the FlowControl reaches the last successor, it restarts the search at the beginning.
Related Topics
ExitBehavior
ExitBlocking
Cyclic sequence
To cyclically move the MUs on to the successor according to the sequence of successors, which you
entered into a list, select Cyclic sequence from the drop-down list.
• A green button means that inheritance is active. Then, the object inherits, i.e., uses, the value
from the parent object from which it was derived. When you modify the value of the parent object,
the program also modifies the value of the child object.
• An orange button with a minus means that inheritance is not active. Values you select or enter
only apply to the selected object.
Click Open List and enter the number of the succeeding object into the corresponding cell of the list.
The FlowControl moves an MU to the successor, whose turn it is next.
• When you select Blocking and the next successor in the sequence cannot receive an
MU, the FlowControl blocks the MU until the successor can receive it.
• When you clear Blocking , the FlowControl moves the MU on to the next successor,
which can receive it, and so on.
Once the FlowControl reaches the end of the sequence, it restarts the search at the beginning.
SimTalk
getExitList ExitBlocking
Related Topic
Data Held in Tabular Form in Attributes
To move the MUs on to the successor, which has been Waiting the longest for a part, select Least
recently used from the drop-down list.
Related Topic
ExitBehavior
Method
To move the MUs on to a successor according to the return value of a Method, select Method
from the drop-down list.
Enter the name of the Method, whose return value determines the number of the successor to which
the FlowControl moves the part. In the method, you can access the FlowControl with the anonymous
identifier ?. The anonymous identifier @ points to the part, which is to be moved on.
• When you select Blocking , the method does not have a parameter.
• When you clear Blocking , the method has a single integer parameter. It tells what
number within the total amount of attempts to determine a successor that attempt has. In case
the method returns the number of a successor to which the part cannot be moved on, the method
is called again. It is called as often as the FlowControl has successors at the most. If the method
returns 0, the FlowControl immediately blocks the part and does not call the method again.
You cannot move or delete MUs in the Method because Plant Simulation executes
the Method like a formula. In addition, you cannot use a wait-, a waituntil-, and a
stopuntil-instruction within the Method.
SimTalk:
ExitSelectionMethod
Related Topics
ExitBehavior
ExitBlocking
Show Successors
To move the MUs on to the successor, which has Waiting the shortest time for an MU, select Most
recently used from the drop-down list. The FlowControl always moves the MUs to the same
successor, as long as this successor can receive the MUs.
Related Topic
ExitBehavior
MU Attribute
To move the MUs on to a successor according to the values of attributes of the MUs, select MU
Attribute from the drop-down list.
• When you select Blocking, the material flow object always moves the part to the designated
successor. If that successor is not ready to receive it, the part will be blocked.
• When you clear the check box, the material flow object moves the part on when any of its
successors can receive it. In this case enter the desired numbers of the successors into the
attribute list for each attribute value.
Click Open List to open a table, into which you can enter the names of the user-defined or the
built-in attributes, their values, and the numbers of the successors. The FlowControl searches the
table from top to bottom until it finds an attribute with the value you entered. It then moves the MU
on to that successor.
Create the user-defined attributes for the MUs on the Tab User-defined.
• Attribute Type
Select the data type of the attribute from this drop-down list, compare Data Types. SimTalk:
AttributeType.
• Default Successor
Enter the number of the default successor. This is the successor to which the FlowControl moves
the MUs, when none of the MUs has an attribute with the Value you entered into the TableFile.
SimTalk: DefaultSuccessor
To not move a part, which does not meet one of the conditions on the table, enter 0.
To show a message, when a part is to be moved which does not meet any of the conditions in the
TableFile, enter a negative number.
Related Topics
ExitBehavior setAttributeList
getAttributeList DefaultSuccessor
MU Name
To move the MUs on to a successor according to their names, select MU Name from the drop-down
list.
Click Open List to open a table, into which you can enter the Name of the attribute and the number of
the Successor. The FlowControl searches the table for the name of the MU to be moved on and
then moves the MU on to the successor, which is specified in this row.
Default Successor
Enter the number of the default successor into this text box. The default successor is the successor
to which the FlowControl moves the MUs, when the name of an MU is not contained in the TableFile.
This is the successor to which the FlowControl moves the MUs, when none of the MUs has an
attribute with the Value you entered into the TableFile.
To not move a part, which does not meet one of the conditions on the table, enter 0.
To show a message, when a part is to be moved which does not meet any of the conditions in the
TableFile, enter a negative number.
Related Topics
DefaultSuccessor getAttributeList
ExitBehavior setAttributeList
Percentage
Click Open List to open a table and enter the percentages. The n-th row on the table defines the
n-th successor’s portion. The FlowControl moves an MU to that successor, for which the difference
between the desired value and the actual value is greatest.
When you enter 0 into the table, the predecessor of the FlowControl will not receive an MU.
• When you select Blocking , the FlowControl blocks the MU until the successor
determined by the distribution can receive the MU
• When you clear Blocking , the FlowControl moves the MU on to the successor with
the second largest difference between the desired value and the actual value, etc.
Related Topics
getExitList ExitBlocking
Random
For this exit strategy, you can select a distribution from the drop-down list Random and enter a value
into the respective text box, compare Probability Distributions.
The FlowControl distributes the MUs according to the selected distribution to its successors.
• When you select Blocking , the FlowControl only throws the dice once. When the thus
determined successor cannot receive the MU, it will be Blocked until the successor can receive it.
• When you clear Blocking , the FlowControl throws the dice until it can determine
a successor, which can receive the MU or until the Maximum number of samples multiplied
with the number of successors is reached.
Select a probability distribution from the drop-down list Distribution and enter the parameters,
which this distribution requires into the text box.
The upper bound of a distribution should be greater by one than the lower bound, as the upper bound
is not part of the range that the program creates.
SimTalk:
ExitDistribution
Related Topics
ExitBehavior
Show Successors
Selection
To move the MUs on to the successor meeting a certain property, select Selection from the
drop-down list. Then, select a Property from the drop-down list Property.
Select the property of the successor according to which the FlowControl moves the part.
For some selection criteria you can also select if the strategy is Blocking or not blocking
.
SimTalk:
ExitSelectionProperty
Related Topics
ExitBehavior
ExitBlocking
Show Successors
Start at successor 1
To move the MUs on to the first available successor, select Start at successor 1 from the drop-down
list. The FlowControl checks the successors starting with the successor with the number 1. It moves
the MU on to successor number 3, for example, if it cannot move it on to successor 1 and 2. As long
as the successor with the number 1 can receive MUs, the FlowControl always moves them to it.
Related Topics
ExitBehavior
Show Successors
To all successors
To copy the MU that enters, and move a copy each to each of the successors, select To all
successors from the drop-down list.
The strategy To all successors is blocking, i.e., the FlowControl only moves the MUs on, when all
successors are ready to receive their copy of the MU.
Related Topics
ExitBehavior
Show Successors
A FlowControl, which you inserted into a Frame, shows its next aimed at successor. This is the
successor, which is served next according to the exit strategy.
When you clear Blocking, this does not have to be the successor to which the part is actually moved.
Select the strategy bringing together the flow of materials from the drop-down list Strategy.
For some of the entry strategies you can also select if the strategy is Blocking or not
blocking .
When a part can reach a FlowControl via different Connectors, you can only use First
come, first served as the entry strategy. This can only happen, when at least one of the
preceding Connectors starts at a FlowControl.
Related Topics
Blocking
Strategy
Next aimed at predecessor
Data Held in Tabular Form in Attributes
Blocking
• When you select Blocking , the FlowControl only receives MUs from the next
designated predecessor. MUs Waiting on other predecessors cannot be received.
• When you clear Blocking , the FlowControl receives MUs from any of its predecessors.
The entry strategy only takes effect, when the blocking list of the FlowControl contains several
MUs and the FlowControl is unblocked because of a successor getting ready to receive a part.
SimTalk:
EntryBlocking
Strategy
Strategy
Select the strategy according to which the FlowControl receives the MUs from its predecessors.
When an MU can reach a FlowControl via different Connectors, you can only use First
come, first served as the entry strategy. This can only happen, when at least one of the
preceding Connectors starts at a FlowControl.
• To cyclically receive the MUs from the predecessor according to the sequence of predecessors,
which you entered into the list, select Cyclic sequence.
• To receive the MUs from the predecessor in the order in which they intended to exit, select
First come, first served.
• To receive the MUs from the predecessor that has not provided an MU for the longest time,
select Least recently used.
• To receive the MUs from the predecessor defined by the return value of the Method, which you
entered into the text box Method, select Method.
• To receive the MUs from the predecessor, from which the FlowControl received an MU the
last time, select Most recently used.
• To receive the MUs from the predecessors according to a percentage distribution, select
Percentage.
• To receive the MUs from the predecessors in a random fashion, select Random.
• To receive the MUs from the predecessors according to the state and the material flow balance of
the predecessors, select Selection. Then, select a Property.
• To receive the MUs from the first available predecessor, select Start at predecessor 1.
Depending on what you select, the FlowControl shows additional check boxes, text boxes and buttons.
Click Open List and enter the data which the selected strategy requires, into the cells of the list.
SimTalk
EntryBehavior
Cyclic
To cyclically receive the MUs from all predecessors, select Cyclic from the drop-down list.
• When you select Blocking , the FlowControl only receives the MU from the
predecessor, which immediately follows the predecessor from which it received the last MU.
• When you clear Blocking , the FlowControl only receives the MU from the first
predecessor, which is ready to move an MU on, which immediately follows the predecessor
from which it received the last MU.
Once the FlowControl reaches the last predecessor, it restarts the search at the beginning.
Related Topics
EntryBehavior
EntryBlocking
Cyclic sequence
To cyclically receive the MU from the predecessors according to the sequence of predecessors, which
you enter into a list, select Cyclic sequence from the drop-down list.
Click Open List to open the entry list and enter the sequence of the preceding objects.
• When you select Blocking , the FlowControl only receives MUs from the next the
predecessor in the sequence. It blocks MUs from other predecessors.
• When you clear Blocking , the FlowControl receives MU from all predecessors.
When the FlowControl Blocked several MUs, it unblocks the MU, which is on the predecessor,
which occurs next in the sequence.
Once the FlowControl reaches the end of the list of predecessors, it restarts the search at the
beginning.
SimTalk:
getEntryList EntryBlocking
Related Topic
Data Held in Tabular Form in Attributes
Method
To receive the MUs from the predecessor defined by the return value of the Method, select Method
from the drop-down list.
Enter the name of the Method, whose return value determines the predecessor from which the
FlowControl receives the part. In the method, you can access the FlowControl using the anonymous
identifier ?.
• When you select Blocking , the method does not have a parameter. The method is
called each and every time, when an MU wants to move through the FlowControl, except when
the part was unblocked immediately before by the FlowControl. In addition the method is called
every time the FlowControl is to unblock an MU, i.e., when the FlowControl itself by one of
its successors.
• When you clear Blocking , the method will only be called, when one of several MUs
Blocked by the FlowControl is to be unblocked. The return value of the method determines, which
MU will be unblocked. The method has a single integer parameter. It tells what number within the
total amount of attempts to determine a successor that attempt has. In case the method returns
the number of a predecessor, from which the MU cannot be received, the method is called again.
It is called as often as the FlowControl has predecessors at the most. If the method returns 0, the
FlowControl does not unblock any of the MUs and does not call the method again.
You cannot move or delete MUs in the Method because Plant Simulation executes
the Method like a formula. In addition, you cannot use a wait-, a waituntil-, and a
stopuntil-instruction within the Method.
SimTalk:
EntrySelectionMethod
Related Topics
EntryBehavior
EntryBlocking
Show Predecessors
Percentage
To receive the MUs from the predecessors according to a percentage distribution, select Percentage
from the drop-down list.
Click Open List to open a table and enter the percentages. The n-th row on the table defines the
n-th successor’s portion. The FlowControl only receives an MU from the predecessor, for which the
difference between the desired value and the actual value is greatest.
When you enter 0 into the table, the successor of the FlowControl will not receive an MU.
• When you select Blocking , the FlowControl only receives MUs from the designated
predecessor.
• When you clear Blocking , the FlowControl receives MUs from all predecessors. The
FlowControl takes the percentage distribution into account, when unblocking MUs.
SimTalk:
setEntryList
getEntryList
Related Topics
EntryBehavior
EntryBlocking
Show Predecessors
Data Held in Tabular Form in Attributes
Random
For this entry strategy, you can select a distribution from the drop-down list Random and enter a
value into the respective text box, compare Probability Distributions.
The FlowControl receives the MUs according to the selected distribution from its predecessors.
• When you select Blocking , the FlowControl throws the dice only once and receives
an MU from the thus determined predecessor. MUs from other predecessors will be Blocked.
• When you clear Blocking , the FlowControl receives MUs from all predecessors.
When several MUs were blocked by the FlowControl and one of those is to be unblocked, it
throws the dice until it determines a predecessor with a blocked MU or until the Maximum number
of samples multiplied with the number of predecessor is reached.
Select a distribution for receiving the MUs from the predecessors and enter the parameters, which
this distribution requires into the text box.
SimTalk:
EntryDistribution
Related Topic
EntryBehavior
Show Predecessors
Selection
To receive the MUs from the predecessor according to the state and the material flow balance of the
predecessor, select Selection from the drop-down list.
Select the property of the predecessor according to which the FlowControl receives the MUs.
SimTalk:
EntrySelectionProperty
Related Topics
EntryBehavior
EntryBlocking
Show Predecessors
Start at predecessor 1
To receive the MUs from the first available predecessor, starting with the predecessor with the number
1, select Start at predecessor 1 from the drop-down list. The FlowControl only receives an MU from
predecessor 3, for example, when predecessor 1 and 2 cannot move one on.
Related Topics
EntryBehavior
Show Predecessors
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
As the FlowControl cannot receive any MUs, it does not have the methods the other material flow
objects provide.
To view all of the methods and attributes of the FlowControl, open the window Show Attributes and
Methods.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getAttributeList
Syntax: Path.getAttributeList(AttributeList:table)
The method getAttributeList returns the values of the attributes passed to the FlowControl designated
by Path for the Exit strategy MU Attribute and writes them into a list.
Parameter
The parameter AttributeList of data type table designates the name of the list.
Example: MyFlowControl.getAttributeList(tab);
Related Topics
setAttributeList
getEntryList
Syntax: Path.getEntryList(EntryList:any)
The method getEntryList returns the contents of the internal entry list of the FlowControl designated
by Path for the Entry strategies Percentage or Cyclic sequence, and writes it into a list.
Parameter
The parameter EntryList of data type any designates the name of the list.
Example: -- SimTalk 2.0 notation
var tab: list
MyFlowControl.getEntryList(tab)
MyFlowControl1.setEntryList(tab)
Example: MyFlowControl.getEntryList(CardFile);
Related Topics
setEntryList
getExitList
Data Held in Tabular Form in Attributes
getExitList
Syntax: Path.getExitList(ExitList:any)
The method getExitList returns the contents of the internal exit list of the FlowControl designated by
Path for the Exit strategies Percentage or Cyclic sequence, and writes it to a list.
Parameter
The parameter ExitList of data type any designates the name of the list.
Example: MyFlowControl.getExitList(cardFile);
MyFlowControl.setExitList(cardFile.copy);
Related Topics
setExitList
getEntryList
setAttributeList
Syntax: Path.setAttributeList(AttributeList:table)
The method setAttributeList sets the attribute list for the Exit strategy MU Attribute and MU Name of
the FlowControl designated by Path.
You can enter several numbers of the desired successors into the attribute list for
attribute value. In the non-blocking case Plant Simulation checks which of the desired
successors can receive the MU.
Parameter
The parameter AttributeList of data type table designates the path to a list or a variable of the same
data type. Plant Simulation then copies the contents of the passed list to the internal attribute list of
the FlowControl.
Example: MyFlowControl.setAttributeList(tab1);
Related Topics
getAttributeList
MU Attribute
MU Name
Data Held in Tabular Form in Attributes
setEntryList
Syntax: Path.setEntryList(EntryList:any)
The method setEntryList sets the entry list of the FlowControl designated by Path for the Entry
strategies Percentage or Cyclic sequence.
Parameter
The parameter EntryList of data type any designates the path to a list or a variable of the same
data type. Plant Simulation then copies the contents of the passed list to the internal entry list of
the FlowControl.
Example: MyFlowControl.setEntryList(CardFile);
MyFlowControl.setEntryList(CardFile.copy);
Related Topics
getEntryList
setExitList
Data Held in Tabular Form in Attributes
setExitList
Syntax: Path.setExitList(ExitList:any)
The method setExitList sets the exit list of the FlowControl designated by Path for the Exit strategies
Percentage or Cyclic sequence.
Parameter
The parameter ExitList of data type any designates the path to a list or a variable of the same
data type. Plant Simulation then copies the contents of the passed list to the internal exit list of
the FlowControl.
Example: MyFlowControl.setExitList(cardFile);
MyFlowControl.setExitList(cardFile.copy);
Related Topics
getExitList
setEntryList
Data Held in Tabular Form in Attributes
As the FlowControl cannot receive any MUs, it does not have the attributes the other material flow
objects provide.
To view all of the methods and attributes of the FlowControl, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
AttributeType
Syntax: Path.AttributeType
For the exit strategy MU Attribute the attribute AttributeType sets the data type of the attributes that
determine how the MUs are moved on.
Data Type of Value You Can Assign
You can assign a value of data type string.
Related Topic
MU Attribute
DefaultSuccessor
Syntax: Path.DefaultSuccessor
The attribute DefaultSuccessor sets the number of the default successor, when you set the attribute
ExitBehavior to MU Attribute.
This is the successor to which the FlowControl moves the MUs, when none of the MUs has an
attribute with the Value you entered into the TableFile. To not move a part, which does not meet one
of the conditions on the table, enter 0. To show a message, when a part is to be moved which does
not meet any of the conditions in the TableFile, enter a negative number.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyFlowControl.DefaultSuccessor := 1;
Related Topics
MU Attribute
MU Name
EntryBehavior
Syntax: Path.EntryBehavior
The attribute EntryBehavior sets the strategy according to which the FlowControl receives the MUs
from its predecessors:
• To cyclically receive the MUs from all predecessors, enter Cyclic.
• To cyclically receive the MUs from the predecessor according to the sequence of predecessors,
which you entered into the list, assign Cyclic sequence.
• To receive the MUs from the predecessor in the order in which they intended to exit, assign
First come, first served.
• To receive the MUs from the predecessor that has not provided an MU for the longest time,
assign Least recently used.
• To receive the MUs from the predecessor defined by the return value of a Method, assign Method.
• To receive the MUs from the predecessor, from which the FlowControl received an MU the
last time, assign Most recently used.
• To receive the MUs from the predecessors according to a percentage distribution, assign
Percentage.
• To receive the MUs from the predecessors in a random fashion, assign Random.
• To receive the MUs from the predecessors according to the state and the material flow balance of
the predecessors, assign Selection. Then, assign a Property.
• To receive the MUs from the first available predecessor, assign Start at predecessor 1.
EntryBlocking
Syntax: Path.EntryBlocking
The attribute EntryBlocking sets whether the FlowControl uses Blocking behavior when an MU
enters the FlowControl (true) or (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyFlowControl.entryBlocking := false;
Related Topics
Blocking
Cyclic
EntryDistribution
Syntax: Path.EntryDistribution
The attribute EntryDistribution sets the random number distribution, when you set the attribute
EntryBehavior to Random.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MyFlowControl.EntryBehavior := "random";
MyFlowControl.EntryDistribution.Type := "normal";
MyFlowControl.EntryDistribution.Mu := 5;
MyFlowControl.EntryDistribution.Sigma := 1;
EntrySelectionMethod
Syntax: Path.EntrySelectionMethod
The attribute EntrySelectionMethod sets the name of the Method object, which the FlowControl uses,
when you set the attribute EntryBehavior to Method.
Data Type of Value You Can Assign
You can assign a value of data type object.
EntrySelectionProperty
Syntax: Path.EntrySelectionProperty
The attribute EntrySelectionProperty sets the selection criterion, which the FlowControl uses, when
you set the attribute EntryBehavior to Selection.
Data Type of Value You Can Assign
You can assign a value of data type string: Max. Contents, Min. Contents, Max. Proc. Time, Min.
Proc. Time, Max. Num. Out, Min. Num. Out, Max. Rel. Occu., or Min. Rel. Occu.
ExitBehavior
Syntax: Path.ExitBehavior
The attribute ExitBehavior sets the strategy according to which the FlowControl moves the MUs on
its successors.
• The strategy Assignment does not determine the successor to which the FlowControl moves
the MU. Instead, you can change the values of the attributes of the MU, when it moves to the
one and only successor of the FlowControl. As soon as the MU is moved on to the successor,
Plant Simulation calls the Method, whose name you entered into the text box Method. Define
the assignments to be made in this Method.
• To cyclically move the MUs on to the successor according to the sequence of successors, which
you entered into a list, assign Cyclic sequence.
• To move the MUs on to the successor, which has been Waiting the longest for an MU, assign
Least recently used.
• To move the MUs on to a successor according to the return value of a Method, assign Method.
• To move the MUs on to the successor, which has Waiting the shortest time for an MU, assign
Most recently used.
• To move the MUs on to a successor according to the values of attributes of the MUs, assign MU
Attribute.
• To move the MUs on to the successor meeting a certain Property, assign Selection. Then,
assign a Property.
• To move the MUs on to the first available successor, assign Start at successor 1.
• To copy the MUs that enter, and move a copy each to each of the successors, assign To all
successors.
ExitBlocking
Syntax: Path.ExitBlocking
The attribute ExitBlocking sets whether the FlowControl uses Blocking behavior, when an MU exits
the FlowControl (true) or not (false).
The non-blocking strategy of the exit strategy > MU Attribute moves the part on when any
of the desired successors can receive it.
Related Topics
Blocking
Cyclic
ExitDistribution
Syntax: Path.ExitDistribution
The attribute ExitDistribution sets the random number distribution, when you set the attribute
ExitBehavior to Random.
Data Type of Value You Can Assign
You can assign a value of data type time.
ExitSelectionMethod
Syntax: Path.ExitSelectionMethod
The attribute ExitSelectionMethod sets the name of the Method object, which the FlowControl uses,
when you set the attribute ExitBehavior to Selection.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: MyFlowControl.ExitBehavior := "selection";
MyFlowControl.ExitSelectionProperty := "method";
MyFlowControl.ExitSelectionMethod := myMethod;
ExitSelectionProperty
Syntax: Path.ExitSelectionProperty
The attribute ExitSelectionProperty sets the selection property, which the FlowControl uses, when
you set the attribute ExitBehavior to Selection.
Data Type of Value You Can Assign
You can assign a value of data typestring : Max. Contents, Min. Contents, Max. Rel. Occu., Min.
Rel. Occu., Max. Num. In, Min. Num. In, Max. Proc. Time, Min. Proc. Time, Max. Set-up
Time, or Min. Set-up Time.
Frame
Frame
Create your simulation models in the Frame located in the folder Models in the Class Library. The
Frame serves for grouping objects and to build hierarchically structured models by inserting any of
the built-in objects or any objects you design. The Frame represents the entire plant, while you can
model sub-sections of the plant in Frames of their own, which you insert into the Frame representing
the entire plant. Model transitions from Frame to Frame with the object Interface . Connect objects
within the Frame and Frames with the object Connector .
When you connect Frames with Connectors, Plant Simulation opens the dialog Select Interface
in which you have to select an Interface, which you inserted into the Frame. A Frame counts as
unconnected when one of its Interfaces is not connected to the outside.
• Lists in brackets how many connections out of the number you defined the Interface has. In our
example the Interface named Max3 has one (1) out of the three (3 ) possible connections.
• Marks the Interface, which has reached its maximum number of external connections with an
asterisk *. In our example the Interface named Only1 has reached one (1) out of one (1) possible
connections.
To open help for the tool, select Help > Help on in its dialog.
After you start 3D Viewer, the 2D Frame window shows the x-axis and the y-axis in red. The point
where these two red lines intersect is the point, which will be mapped to the zero point, i.e., the
Position of the grid, in 3D. You can set the origin of the grid in 2D with the attribute AxesOrigin.
You can also show a screenshot of the contents of a Frame in an HtmlReport, compare Display a
Frame.
When you insert a new Frame into your 3D model, it contains temporary (internal) deco graphics
labeled Under Construction to represent it outwards as long as you do not insert any other object
into the Frame. This is because the default (external) graphics are set to be invisible.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
The Frame window provides the General Ribbon Tab, the Icons Ribbon Tab, and the Vector Graphics
Ribbon Tab. The provide access to the most important functions you need for creating you simulation
model.
The Context Menu of the Frame Itself provides commands pertaining to that Frame.
The Context Menu of the Selected Object in the Frame provides commands pertaining to that object.
Related Topics
You can also use drag-and-drop while modeling in the Frame. The line Class Library — Class Library
—object— Ctrl in the second line of the table means: Dragging an object from the Class Library
from one location to another location in the Class Library while holding the Ctrl key down copies
the object to that location.
Instantiate the
Class Library Frame object —
object
Load a graphics
file (.GIF, .BMP,
.PPM, .PPM
RAW, .DXF, Windows
Frame file —
or .DWG) as Explorer
the background
graphic of the
Frame
Insert the
selected object Class Library Frame object Shift
repeatedly
Execute a
Method, which
expects a single single parameter
Object from
parameter of Method of data type —
Frame
data type object object
with this object
as parameter
Find Object —
Zoom In ZoomFactor
Representation Various
Configure User-defined
Ribbon Tab
Various
Inherit User-defined Ribbon
Tab
Configure User-defined
Context Menu
Various
Inherit User-defined Context
Menu
Background Color
Select Color BackgroundColor
Inherit Background Color
Replacement Mode
Merge replace
Exchange ReplacementMode
Inherit Replacement Mode
Show Connections —
Show Comments —
Show Grid —
Inherit Options —
The other tabs on the Ribbon Bar provide additional commands pertaining to the Frame.
Print Frame
The command Print opens the dialog Print. Select a printer and settings for printing a screenshot of
the contents of the Frame.
Related Topic
Find Object
The command Show Unconnected Objects highlights those objects in the open Frame window
that have unconnected entrance and exit points, i.e., which are not connected to any other object
with a Connector.
A Frame counts as unconnected when one of its Interfaces is not connected to the outside.
The command Show Curved Objects Without Length Transfer highlights the length-oriented
objects in the open Frame window, which do not use the same length as the graphic of these
objects use.
Related Topic
Transfer length
TransferLengthToObject
Zoom In
The command Zoom In zooms the contents of the active Frame window in.
• Hold down the Ctrl key and roll the mouse wheel up.
• Drag a marquee over the icons with the right mouse button and release the mouse button.
• Hold down the Ctrl and Shift keys, drag a marquee over the icons and release the mouse button.
To return the objects to the size they had before zooming, select Reset to Original Size.
To zoom in faster, hold down Shift while clicking . Plant Simulation then zooms in steps of
100 percent, for example from 100 percent to 200 percent, etc. To return to a zoom factor of 100
Related Topic
ZoomFactor
The command Reset to Original Size resets the contents of the Frame to its original, unzoomed size
after you selected the commands Zoom In or Zoom Out.
Related Topic
ZoomFactor
Zoom Out
The command Zoom Out zooms the contents of the Frame window out.
To return the objects to the size they had before zooming, select Reset to Original Size.
To zoom out you can also hold down the Ctrl key and roll the mouse wheel down.
To zoom out faster, hold down Shift while clicking . To return to a zoom factor of 100 percent,
Related Topic
ZoomFactor
Scaling Factor
The command Scaling Factor sets the scaling factor sets the scaling factor for displaying the
objects in the Frame. Plant Simulation uses the scaling factor for converting the pixel coordinates
to length coordinates.
The command opens the dialog Scaling Factor.
When you change the scaling factor, Plant Simulation keeps the lengths of the
length-oriented objects and the 3D coordinates and changes the dimension or the
representation of the pixels respectively. Plant Simulation moves the axes origin if your
change would create negative pixel coordinates.
• Enter the scaling factor. The program uses it to compute the length of polygon lines that you
create. The scaling factor is the length of one pixel in length units.
o Select length units under File > Model Settings/Preferences > Units > Length.
o Enter grid settings under File > Preferences > Modeling > Frame grid spacing.
• The Horizontal grid spacing shows the distance between two grid points on the x-axis using the
Scaling Factor you entered.
• The Vertical grid spacing shows the distance between two grid points on the y-axis.
The default settings Frame grid spacing 20 x 20 pixels, Length units m (meters) and a Scaling
factor of 0.05 result in a horizontal and vertical grid spacing of 1 meter each.
When you change the scaling factor, the program shows the new horizontal and vertical grid spacing
in the dialog.
The settings Frame grid spacing 20 x 20 pixels, Length unit m (meters) and a Scaling factor of
0.5 result in a horizontal and vertical grid spacing of 10 meters each.
SimTalk:
ScalingFactor
Related Topic
Edit How Plant Simulation 2D Maps 3D Viewer Coordinates
Representation
Representation
The command Representation sets the representation area which combines a number of built-in
objects in a Frame.
The command opens the dialog Representation. Here you can define the representation area
which combines a number of built-in objects in a Frame. You can select how you want to show
these object when you insert this Frame into another Frame. You can instantiate this group and you
can move it within a Frame at will.
The representation is especially helpful when you model a component in a Frame in the Class Library
and then insert this component into your overall simulation model.
• When you select the Representation mode > icon, Plant Simulation shows the inserted Frame
with its icon. For demonstration purposes we use a blue rectangle in the screenshot below.
• When you select the representation mode > contents, Plant Simulation shows the contents of
the Frame, i.e., the objects which it contains. This is like just seeing a box ( icon ) as compared to
actually looking inside the box and seeing what it contains ( contents ). For this setting Plant
Simulation draws a border around all objects in the Frame. You can define the size and the
position of the representation area. When you then instantiate this Frame, Plant Simulation
shows the objects within the representation area instead of the icon of the Frame.
• When you select the representation mode > contents with background, Plant Simulation
draws a border around all objects in the Frame and shows the background in addition, the gray
area in our example below. You can define the size and the position of the representation area.
When you then instantiate this Frame, Plant Simulation shows the objects and the background
within the representation area instead of the icon of the Frame.
Plant Simulation shows the background of your modeled component with the Background Color
color you selected for the Frame in which you modeled it. If you do not select a background color,
the object will be shown transparent. This way you can “project” the object onto a plant layout
drawing so that the layout graphic shines through. Note that the represented area does not
show the grid.
The red crosshairs in the Frame designates the 3D origin of the Frame which also is the reference
point of the contents of the Frame. The position of the built-in objects within the representation
area of the Frame is relative to the reference point of the representation area designated by the
red crosshairs.
When you instantiate your modeled object, Plant Simulation shows it with the Scaling Factor and
the zooming factor of the Frame into which you inserted it. Zooming the Frame also zooms your
modeled objects within the representation area.
You can only move or rotate it in 90 degree steps and you can only delete the representation area in
an instantiated Frame as a whole. Double-click the instantiated object to open and edit it.
Plant Simulation does not show Interface objects with just a single successor or predecessor. When
an Interface has several predecessors or successors,Plant Simulation shows the Interfaces and the
Connectors to the Interfaces which are located within the representation area. Connectors to
Interfaces, which are located outside of the representation area, are clipped by the representation
area.
Related Topics
Representation mode
Representation mode
Select the representation mode. It determines how Plant Simulation shows the selected Frame:
Plant Simulation shows the background of your modeled component with the Background Color color
you selected for the Frame in which you modeled it. If you do not select a background color, the
object will be transparent. This way you can “project” the object onto a plant layout drawing so that
the layout drawing shines through. Note that the represented area does not show the grid.
SimTalk:
RepresentationMode
Representation area X
Enter the x-coordinate of the left top corner of the representation area in the Frame or click the spin
buttons. The position of the built-in objects within the representation area of the Frame is relative to
the reference point of the representation area designated by the red crosshairs. The borders of the
area itself are shown as green dashed lines.
To move the x-coordinate of the left top corner of the representation area in the Frame to the right,
click the right spin button. To move it to the left, click the left spin button.
The toggle button activates or deactivates inheritance of the settings of the representation
area and of the axes origin.
• A green button means that inheritance is active. Then the object inherits, i.e., uses, the value
from the parent object from which it was derived. When you modify the value of the parent object,
the program also modifies the value of the child object.
• An orange button with a minus means that inheritance is not active. Values you select or enter
only apply to the selected object.
SimTalk:
setRepresentationArea,
getRepresentationArea
Representation area Y
Enter the y-coordinate of the left top corner of the representation area in the Frame or click the spin
buttons. The position of the built-in objects within the representation area of the Frame is relative to
the reference point of the representation area designated by the red crosshairs. The borders of the
area itself are shown as green dashed lines.
To move the y-coordinate of the left top corner of the representation area in the Frame upwards, click
the up spin button. To move it downwards, click the down spin button.
The toggle button next to representation area activates or deactivates inheritance of the
settings of the representation area and of the axes origin!
SimTalk:
setRepresentationArea,
getRepresentationArea
Enter the width of the representation area or click the spin buttons. The position of the built-in objects
within the representation area of the Frame is relative to the reference point of the representation
area designated by the red crosshairs. The borders of the area itself are shown as green dashed lines.
To increase the width of the representation area, click the right spin button. To decrease the width of
the representation area, click the left spin button.
The toggle button next to representation area activates or deactivates inheritance of the
settings of the representation area and of the axes origin!
SimTalk:
setRepresentationArea,
getRepresentationArea
To increase the height of the representation area, click the up spin button. To decrease the height of
the representation area, click the down spin button.
The toggle button next to representation area activates or deactivates inheritance of the
settings of the representation area and of the axes origin!
SimTalk:
setRepresentationArea,
getRepresentationArea
The toggle button next to representation area activates or deactivates inheritance of the
settings of the representation area and of the axes origin!
When you change the axes origin, Plant Simulation keeps the 3D coordinates and changes the
pixel coordinates. Plant Simulation checks if your changes create allowed pixel coordinates. It
only changes them if that is the case.
In our example the axes origin is located at the coordinates X is 242 and Y is 266.
SimTalk:
AxesOrigin
Calculate Area
Click this to make Plant Simulation re-compute the representation area according to the objects
contained in that area.
The command Select Shift Calendar sets the ShiftCalendar which controls the Frame.
The command opens the dialog Select ShiftCalendar
Click this and select the ShiftCalendar in the dialog Select Object or enter the name of the
ShiftCalendar object that controls the shifts of the Frame.
The ShiftCalendar can change the states paused and unplanned of the Frame.
SimTalk:
ShiftCalendarObject
The command Configure User-defined Ribbon Tab creates a user-defined ribbon tab in the Frame
with commands, which you frequently use.
Plant Simulation adds the user-defined ribbon tab to the predefined ribbon tab of the Frame for
which you defined it. In the example below we defined a user-defined ribbon tab with the name
My Ribbon Tab.
When a user-defined ribbon tab exists, the button on the General ribbon tab is highlighted.
To create a ribbon tab in a Frame, which you inserted into another Frame, deactivate the
command Inherit first. Otherwise this Frame inherits its user-defined ribbon tab from
its origin.
Related Topics
Text to be displayed
Title
Enter the title of the user-defined ribbon tab with which the program shows the ribbon tab to the
right of the predefined ribbon tabs.
We entered My Ribbon Tab in our example.
SimTalk:
UserMenuTitle
Active
To show and activate the user-defined ribbon tab which you defined to the right of the predefined
ribbon tabs, select this.
To deactivate and hide it, clear the check box.
When the user-defined ribbon tab calls a Method, Plant Simulation assigns the anonymous
identifier ? (question mark) to the corresponding Frame.
SimTalk:
ShowUserMenu
Text to be displayed
Text to display
Enter the text that the program shows on the user-defined ribbon tab in the Frame.
Then select or enter name of the Method to be executed when you click the command into the
cell to the right.
You can enter the following signs before a ribbon command or a panel label:
• Enter the # sign to start a new ribbon panel. The following text is used as name of the new
panel, which still can start with a ?.
• Enter the # sign and no text after it to designate the end of the previous panel and to start a
new unnamed panel.
• Enter two or more hyphens – or two or more ## to show them as they are.
• Enter a ? to designate a formula that computes the text to be used as the label of a panel or as
the ribbon command.
If the panel separator has an attached command, the panel shows its button in the right bottom corner.
If one of the ribbon commands or panel labels is dynamic by computing a formula, the user-defined
ribbon category gets updated each time it comes into the view. Thus the user-defined ribbon tab will
only be updated, if another tab was active before and the current tab was then activated.
Plant Simulation exchanges icons if dynamic ribbon commands or panel labels change and selects an
icon using one of the icon name matching rules described under Add an Icon to a Ribbon Command.
You can:
• Create a Ribbon Panel Using the # Sign
SimTalk:
UserMenu
Enter a number sign before the first command to start a ribbon panel. Ribbon panels group a
number of related commands and are separated by long vertical lines between them.
In our example we entered #Commands, #Dialogs, and #Online Help as ribbon panels.
Any text following the # will be used as the name of this ribbon panel. If you enter #Commands as text
to be displayed, the ribbon tab will show Commands preceded by a vertical line serving as a
panel separator.
If you just enter # and no text afterwards, Plant Simulation considers this as the end of the previous
panel and starts a new panel without a ribbon label.
Note that the command can also consist of a formula, i.e., it can be dynamic. When a formula
creates the text to be displayed, Plant Simulation checks the text for line breaks. If line breaks exist,
Plant Simulation splits the text and uses it as the:
• Name of the ribbon command
• Description of the ribbon command in the tooltip, provided you entered a description
Enter the Methods, which the commands call and execute, into the text boxes below Method to
execute.
Back to Text to be displayed
Create an icon in the Frame for which you define the user-defined ribbon tab and which has the same
name as the text to be displayed, to show this icon to the left of the ribbon command.
To show an icon to the left of a command, create an object icon with a size of 16 by 16 and/or 32 by
32 pixels and assign it the prefix ribbon and a number matching the ribbon command, for example
ribbon1. Add _32 or _16 to the name of the object icon to use these icons for the respective size
of the button of the ribbon command. Plant Simulation shows the ribbon button on the ribbon tab
with the icon that best matches the available space. If the available space is small, Plant Simulation
shows the icon with the size of 16 by 16 pixels. If enough space is available, it shows the icon with
the size of 32 by 32 pixels.
In our example we created three icons in our Frame MyPlantAnytown. We typed in the same name
as the text to be displayed to which we want to add the icon: MyCommand1_16, My Command 2_16, and
My Command 3_16. The suffix _16 designates them as icons with a size of 16 by 16 pixels.
If you do not enter a method to be executed into the text box next to text to be displayed, Plant
Simulation grays the icon out. In our example we removed the method to be executed to the
right of the command MyCommand1:
If the ribbon command or the panel label contains a formula, Plant Simulation uses the result of the
formula to search for icons with names according one of the following rules:
1. If you entered a name for the ribbon command or for the panel label, Plant Simulation looks for an
icon matching the name with the size suffix _16 or _32 and uses it as the icon if it finds it
2. If you entered a name for the ribbon command and no icon with one of the two suffixes exists,
Plant Simulation uses the icon exactly matching the exact name.
3. If no icon name matches the exact command name or if you did not enter the panel name, Plant
Simulation uses the prefix ribbon, the number of the ribbon command, and one of the two
suffixes to search for an icon with a matching name.
4. If Plant Simulation did not find an icon matching the rules above, it attempts to find an icon using
the prefix ribbon and the ribbon command number without an suffix to find an icon matching
the name.
Enter an ampersand character in front of a letter in a command to make this letter the access key in
the user-defined ribbon. Pressing the Alt key and that letter activate this command.
If you do not enter the ampersand, Plant Simulation assigns an automatically numbered access key.
The built-in access keys take precedence over any access keys you define! This means that your
access key does not work if it is already defined on one of the pre-defined ribbon tabs.
In our example we made the S in the command My Simple Dialog the access key. Holding down the
Alt key, pressing the predefined keys U and T, and pressing the S key opens our simple dialog.
Enter a hyphen as the name of the ribbon command to insert a vertical separator between groups
of ribbon commands.
Enter a question mark or the equal sign plus a formula to use this formula as a ribbon command.
When you enter ?Method1 for example, the method Method1 will be called. The return value of this
method has to be of data type string. This way you can toggle between different texts, for example
between Activate and Deactivate and you can translate the commands into different languages. If
the methods return an empty string (""), Plant Simulation hides the respective command.
You can use any formulas, even for example a method call with parameters, such as ?Method1(42)
or a table access, such as ?MyTableFile[1,3] .
Back to Text to be displayed
Method to execute
Enter the name of the Method , which the Text to be displayed calls and executes, into the
corresponding text box.
When Methods are called by the user-defined ribbon tab, the anonymous identifier ? (question
mark) points to the Frame in which the selections was executed. Use this to selectively access
objects in the respective Frame.
Parameter
If the method expects a parameter, Plant Simulation automatically passes it. The objects, which you
selected in the Frame, are passed to this parameter, which has to be of data type list.
When Methods are called from the user-defined ribbon tab, the anonymous identifier ? (question
mark) points to the Frame in which you selected the command. This way you can access objects
within the corresponding Frame.
Example: ?.MySingleProc.proctime := str_to_time(prompt);
SimTalk:
UserMenu
ShowUserMenu
Syntax: Path_to_Frame.ShowUserMenu
The attribute ShowUserMenu shows (true) or hides (false) the user-defined ribbon tab.
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: frame2.ShowUserMenu := false;
UserMenu
Syntax: Path_to_Frame.UserMenu
The attribute UserMenu passes a table of data type table with two columns: string is the command
and string is the name of the Method, which the command executes. Note that the attribute UserMenu
only accesses the items of the user-defined ribbon tab, not its title. Enter the title of the user-defined
ribbon tab into the text box Comment of the TableFile.
Data Type of Value You Can Assign
You can assign a value of data type table.
Example: SimTalk 2.0 notation
var tab: table[string, string]
tab.create;
tab.writeRow(1, tab.YDIm+1, "My Command 1", "self.control1")
tab.writeRow(1, tab.YDIm+1, "My Command 2", "self.control2")
current.UserMenu := tab
current.UserMenuTitle := "My Ribbon Tab"
current.ShowUserMenu := true
UserMenuTitle
Syntax: Path_to_Frame.UserMenuTitle
The attribute UserMenuTitle sets the title of the user-defined ribbon tab and shows it, when you
selected the check box Active/ShowUserMenu.
Data Type of Value You Can Assign
You can assign a value of data typestring.
Example: frame2.UserMenuTitle := "My Ribbon Tab";
The command Inherit activates or deactivates inheritance for a ribbon tab which you create in a
Frame, which you inserted into another Frame.
• When you activate it , any Frame you derive from the active Frame will inherit
the ribbon tab of its origin.
• When you deactivate it, you can define a ribbon tab that only applies to the active Frame, but
will not be inherited.
The command Configure User-defined Context Menu creates a user-defined context menu with
menu commands you often use. Enter a hyphen (-) as the name of the command to insert a menu
separator between groups of commands.
Let us demonstrate this with an example: We created a context menu in the Frame named
MyComponent1. When we insert MyComponent1 into our model MyPlantAnytonw and click the
icon of the inserted MyComponent1 with the right mouse button, Plant Simulation shows the
context menu we created.
To create a user-defined context menu in a Frame, which you inserted into another
Frame, deactivate the command Inherit first. Otherwise this Frame inherits its user-defined
context menu from its origin.
Related Topics
Active
To activate the user-defined context menu, select the check box Active. The context menu opens,
when you click the right mouse button on the icon of the inserted Frame.
The user-defined context menu is only available for the Frame for which you defined it,
after you inserted this Frame in another Frame.
If Methods are called by the context menu, the anonymous identifier ? (question mark) is
pre-allocated with the associated Frame.
SimTalk:
ShowUserPopupMenu
Text to display
Enter the text of the command that Plant Simulation shows on the context menu you are defining
into the text boxes below Text to be displayed.
You can also enter a formula as a command. A formula is designated by a leading question mark.
When you enter ?Method1 for example, the method Method1 will be called. The return value of this
method has to be of data type string. This way you can toggle between different texts, for example
between Activate and Deactivate and you can translate the commands into different languages. If
the methods return an empty string (""), Plant Simulation hides the respective command.
You can use any formulas, even for example a method call with parameters, such as
?Method1(42) or a table access, such as ?MyTableFile[1,3].
Enter the names of the Methods which the commands call and execute into the text boxes below
Method to be executed.
Related Topic
UserPopupMenu
Method to execute
Enter the name of the Method , which the Text to be displayed calls and executes, in the
corresponding text box below that executes method.
Parameter
If the method expects a parameter, Plant Simulation automatically passes it. The selected objects,
which are located within the same Frame as the Frame whose context menu you open, are passed to
this parameter, which has to be of data type list.
Related Topic
UserPopupMenu
ShowUserPopupMenu
Syntax: Path.ShowUserPopupMenu
The attribute ShowUserPopupMenu shows (true) or hides (false ) the context menu which you
defined.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: frame3.ShowUserPopupMenu := true;
UserPopupMenu
Syntax: Path.UserPopupMenu
The attribute UserPopupMenu is assigned a table with two columns: string is the text to be displayed
and string is the name of the Method, which the command executes.
Data Type of Value You Can Assign
You can assign a value of data typetable.
Example: -- SimTalk 2.0 notation
var tab: table[string,string]
tab.create
tab.writeRow(1,1,"Open Component","openComponent")
current.UserPopupMenu := tab
• When you activate it , any Frame you derive from the active Frame will inherit
the user-defined context menu of its origin.
• When you deactivate it, you can define a user-defined context menu that only applies to the
active Frame, but will not be inherited.
Background Color
Background Color
The command Background Color sets the background color of the Frame, i.e., of your plant.
The command provides the subcommands Select Color and Inherit Background Color.
Related Topic
Add a Graphic and a Color to the Background or the Icon of the Frame
Select Color
The command Select Color opens the dialog Colors. Select a color for the background of the
Frame here.
You can select one of the predefined colors or you can click More Colors and click the Select button
to select a color in the color matrix. Then click OK. Plant Simulation shows this color next to More
Colors and uses it as the active color.
Or you can click Custom and select a color in the color matrix. Move the mouse in the color matrix
over the area that is similar to the color you want. You can set the attributes of the color with the
scrollbar on the right hand side. Click OK to make this color the active color in the program.
SimTalk:
BackgroundColor
The command Inherit activates or deactivates inheritance of the background color of the Frame.
• When you activate it , any Frame you derive from the active Frame will have the
same background color as it.
• When you deactivate it, you can define a background color that only applies to the active Frame,
but will not be inherited.
Replacement Mode
Replacement Mode
The command Replacement Mode sets the replacement mode for object which you load into your
simulation model.
The command provides the subcommands Merge, Exchange, and Inherit Replacement Mode.
The replacement mode controls how Plant Simulation treats an .obj file which you load into the active
model, when the Class Library of this model already contains another version of these user-defined
classes. For this, Plant Simulation compares the names of the existing Frame and of the Frame to be
loaded, and then either merges or exchanges the Frames, depending on the setting you selected.
The replacement mode of the replacing Frame determines if the Frames are merged or replaced.
The replacement mode of the replaced Frame does not have any consequences.
Merge
The command Merge is the default setting. In this mode Plant Simulation preserves changed
parameters in instances of the replaced Frame and imports them into the replacing object. Plant
Simulation then deletes the replaced object in the Class Library. Note that this option only works for
Frames that are identical. Compare Example 1 below.
Related Topics
replace loadObjectAs
Exchange
The command Exchange transforms all instances of the replaced object into instances of the
replacing object. Plant Simulation discards user-defined modifications in instances of the replaced
object and deletes the replaced object from the Class Library.
Before you Exchange Frames in Replacement Mode we recommend to save the previous
version of the Frame as all changes you made will be lost and there is no way to retrieve
them!
replace loadObjectAs
Example 1
In simulation model1 we modeled the object userobjectA as frameA. We also use the model FrameA
in the models FrameX and FrameY. In addition we changed the instances of FrameA in FrameX
and FrameY.
We then save FrameX and FrameY with the context menu command Save Object As as object files
(.obj) to be able to reuse them in other simulation models. Note that Plant Simulation also saves all
objects you inserted into frames, especially frameA.
Then, we load FrameX (frameX.obj) and FrameY (frameY.obj) with the context menu command
Load > Load Object into simulation model2.
When loading FrameX (frameX.obj) and all object contained within, including frameA, will be loaded
into the Class Library of simulation model2. Plant Simulation replaces some of the newly loaded
objects with objects already present in simulation model2. As frame did not exist in the Class Library,
it is going to be imported as is.
When loading FrameY (frameY.obj) Plant Simulation loads all objects contained within. As FrameA
already exists in the Class LibraryPlant Simulation replaces it with the setting you selected under
Replacement Mode in FrameA in the Class Library:
• Merge: All changes we made in frameA in frameY will be preserved.
• Exchange: All changes we made in FrameA in FrameY will be lost. FrameA in FrameY will be
replaced with frameA that already exists in the Class Library.
Example 2
In simulation model1 we modeled the user-defined object frameA. We use FrameA several times
in frameX.
We then save FrameX with the context menu command Save Object As as object file (.obj) to be
able to reuse it in other simulation models. Note that all objects inserted into frames, especially
FrameA, are saved also.
Then, we import FrameX into simulation model2 that contains a more up-to-date version of FrameA,
FrameANew, which we would like to continue using. To replace instances of FrameA in FrameX with
instances of FrameANew in FrameX, we select Exchange as Replacement Mode in frameAnew.
This discards all changes in instances of FrameA in FrameX; this means we are going to continue
working with FrameANew as we intended.
Replacement Mode > Merge is not possible in this case, as FrameA is different from FrameANew.
The command Inherit Replacement Mode activates or deactivates inheritance of the replacement
mode of a Frame which you inserted into another Frame.
• When you activate it , any Frame you derive from the active Frame will inherit
the replacement mode of its origin.
• When you deactivate it, you can define a replacement mode that only applies to the active
Frame, but will not be inherited.
Lock Structure
The command Lock Structure prevents you from editing the structure of the Frame.
When you activate Lock Structure , Plant Simulation prevents unintentional changes, i.e.,
inserting, deleting, and changing of objects as well as changing the position of objects. You can then
neither change the position of any of the objects nor their name.
SimTalk:
ModifyStructure
Show Names
The command Show Names shows or hides the Names of the objects below their icons in the
Frame window.
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topic
ShowObjectNames
Show Connections
The command Show Connections shows or hides the connections, i.e., the Connectors between
the objects in the Frame window. An arrow in the middle of the Connector shows the direction.
Note that the commands Show Predecessors and Show Predecessors only work when you select
Show Connections!
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Show Comments
The command Show Comments shows or hides objects of type Comment to provide additional
information, which you inserted into your simulation model.
On Off
Show Grid
The command Show Grid shows or hides the grid points in the Frame window. This feature is useful
for automatically aligning objects when you insert them. Enter the spacing of the grid intervals on the
x-axis and the y- axis into the text boxes below Frame grid spacing. You might want to select the
command Show Object Borders as well.
When the Grid is active, the program places the objects which you insert onto grid points. You can
then move the object by grid units only. The reference point of the icon of the object determines where
Plant Simulation places the object on the grid point. By default, the reference point of a material
flow object is located in the center of the icon. When you place an object, Plant Simulation places
the reference point onto the grid point nearest to the mouse pointer. You can move the reference
point to any position of your choice in the Icon Editor with the command Set Reference Point. This is
described under Set and Link Animation Points and Animation Lines.
Selecting Show Grid after you placed objects has no effect on the alignment of the objects which you
already placed. They remain at the position at which you inserted them.
To align the objects which you already inserted, with the grid, click Align to Grid on the Icons ribbon
tab of the Frame. Plant Simulation then moves all selected objects, so that their reference points
are aligned with the closest grid point.
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
The commands on the submenu More View Options set what Plant Simulation in the Frame window.
Settings you select here override those you selected under File > Preferences > Modeling or under
File > Model Settings > Modeling in the Plant Simulation window.
A check mark to the left of a command means that this command is active, i.e., that Plant
Simulation shows the selected item. To not show an item, click the command so that it does not
show a check mark.
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topics
Show MU Names
The command Show MU Names shows or hides the names of the parts (MUs) in your simulation
model. This only works, when you also activate Show Object Names.
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
The command Show Object Labels shows or hides the Labels of the objects below their icons in
the Frame window. When you also activated Show Object Names Plant Simulation shows the label
below the name, when you deactivated Show Object Names, it shows them directly below the icon.
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topic
ShowObjectLabels
The command Show Display Panels shows or hides the display panels of the objects in the
Frame window.
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topic
ShowDisplayPanels
Show Predecessors
The command Show Predecessors shows or hides the number of an incoming connection for each
material flow connection in the Frame window. The > (greater) sign in front of the number designates
an incoming connection. The predecessor is the object that is connected to the selected object with
a Connector and that precedes it in the sequence of stations in the simulation model.
On Off
Plant Simulation only displays the predecessor in the Frame window, if you activate Show
Connections as well. For the first connection from another object to the current object, the Connector
shows >1, denoting that this is the first predecessor. If the object has more than one predecessor,
Plant Simulation numbers the predecessors in the order you connected them, >2 for the second,
>3 for the third, etc.
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topics
NumPred
pred
predConnector
Show Successors
The command Show Successors shows or hides the number of an outgoing connection for each
material flow connection in the Frame window. The successor is the object that is connected to the
selected object with a Connector and that succeeds it in the sequence of stations in the model. The
sequence of the successors affects how the goods are transported through your simulation model.
On Off
Plant Simulation only displays the successors in the Frame window, if you activate Show Connections
as well. For the first connection from the current object to another object, the Connector shows 1>,
denoting that this is the first successor. If the object has more than one successor, Plant Simulation
numbers the successors in the order you connected them, >2 for the second, >3 for the third, etc.
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topics
NumSucc
succ
succConnector
The command Show Object Borders shows or hides the borders around the icons of all objects in
the Frame. This way you can see the full Set Icon Size of the icon. The size of the border depends on
the size of the icon.
On Off
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
The command Inherit View Options activates or deactivates inheritance of the settings of the
active Frame from its class.
• When you activate it, the current Frame inherits all settings on the Options menu from its class
object.
• When you deactivate it, the settings you select only apply to the current Frame.
As long as vector graphics mode is active, you cannot manipulate any objects in the
Frame. To deactivate it, and to return to normal mode, click another tab.
Previous Icon —
Next Icon —
Bring to Front —
Send to Back —
ZoomX
Double Size of Icon
ZoomY
ZoomX
Halve Size of Icon
ZoomY
The other tabs on the Ribbon Bar provide additional commands pertaining to the Frame.
SimTalk
CurrIcon putIconToClipboard
CurrIconNo resetIcon
closeImg saveIconToFile
existsIcon setCurrIconFromClipboard
openImg setIconFromFile
Previous Icon
The command Previous Icon switches to the previous icon of the selected object.
Next Icon
The command Next Icon switches to the next icon of the selected object.
Mirror Horizontally
The command Mirror Horizontally mirrors the icon of the selected object horizontally, i.e., it reverses
left and right. To return the icon of the selected object to its original orientation, click Reset Icon.
Related Topics
mirrorY, material flow objects
mirrorY, curved objects
Mirror Vertically
The command Mirror Vertically mirrors the icon of the selected object vertically, i.e., it reverses top
and bottom. To return the icon of the object to its original orientation, click Reset Icon.
Related Topics
mirrorX, material flow objects
mirrorX, curved objects
Rotate Icon
The command Rotate Icon rotates the icon of the selected object in 90 degree steps clockwise
around its center. The command sets the ObjectAngle of the object.
Related Topics
ObjectMirrored resetIcon
turnIcon Segments
Reset Icon
The command Reset Icon returns the icon of the selected object to its original orientation after you
selected Mirror Vertically or Mirror Horizontally.
Related Topic
resetIcon
Align to Grid
The command Align to Grid places the reference points of the icons of the selected objects onto
grid points, when Show Grid on the General ribbon tab of the Frame was deactivated while you
placed the objects. It thus aligns objects to the grid that weren’t aligned while you inserted them, for
example when the grid was deactivated.
This only works, when you activated the grid on the General ribbon tab.
Related Topics
rearrange
Set and Link Animation Points and Animation Lines
Set Reference Point
Bring to Front
The command Bring to Front brings the icon of the selected object to the front and places it in
front of any other overlapping objects.
This also changes the number of the object in the Frame, compare the method node, as
the object number and the drawing layer are directly related to each other.
Send to Back
The command Send to Back sends the icon of the selected object to the back and places it behind
any other overlapping objects.
This also changes the number of the object in the Frame, compare the method node, as
the object number and the drawing layer are directly related to each other.
The command Double Size of Icon doubles the size of the icon of the selected object in the Frame
window.
To change the height of an icon, hold down the Ctrl and Shift keys, grab the top or the bottom of
the icon and drag the mouse.
To change the width of an icon, hold down the Ctrl and Shift keys, grab the right or the left side of
the icon and drag the mouse.
To change the width and the height of an icon at the same time, hold down the Ctrl and Shift keys,
grab one of the corners of the icon and drag the mouse.
To return the icon of the selected object to its original size, select Restore Original Size.
Related Topics
ZoomX
ZoomY
The command Restore Original Size restores the original size of the icon of the selected object after
you selected the commands Double Size of Icon or Halve Size of Icon.
The command Halve Size of Icon reduces the size of the icon of the selected object by half.
To return the icon of the selected object to its original size, select Restore Original Size.
Related Topics
ZoomX
ZoomY
Inherit Position
The command Inherit Position turns Inheritance of the position of the selected object on. It also
places the object at the same position in the Frame as the position of the object from which it was
derived, i.e., its origin.
Related Topics
inheritPosition
XPos
YPos
The command Inherit Size and Orientation turns Inheritance of the size and the orientation of
the icon of the selected object on again. It also sets the size and the orientation of the icon of the
selected object to the same values as the values of the size and the orientation of the icon of the
object from which it was derived, i.e., its origin.
Related Topics
inheritSizeAndOrientation mirrorY
ZoomX ObjectAngle
ZoomY ObjectMirrored
mirrorX turnIcon
As long as the ribbon tab vector graphics is selected, you cannot manipulate any objects
in the Frame. To deactivate vector graphics mode, and to return to normal mode, click
another tab.
Select —
Graphic Settings —
Delete Objects —
The other tabs on the Ribbon Bar provide additional commands pertaining to the Frame.
Related Topic
Draw Vector Graphics or Text onto the Background of the Frame
Select
The command Select Mode changes from draw mode to select mode. In select mode you can
modify any of the vector objects, you can group them for example. To change to draw mode click
any of the drawing tools.
Draw Line
The command Draw Line draws a line on the background of the Frame.
For the line styles solid line , dashed line , dotted line , dash dot line , and dash
dot dot line the operating system only allows a line width of 1 or 0. Note that for a line width of 1
the line style will always be drawn as a solid line, when you zoom the contents of the Frame.
To change properties of the line in the dialog Graphic Settings, double-click the line.
Related Topic
drawLine
Draw Ellipse
The command Draw Ellipse draws an ellipse on the background of the Frame.
If you do not want to zoom the outline of the ellipse, enter a line weight of 0 instead of 1.
To change properties of the ellipse in the dialog Graphic Settings, double-click the ellipse.
Related Topic
drawEllipse
The command Draw Filled Ellipse draws a filled ellipse on the background of the Frame.
If you do not want to zoom the outline of the ellipse, enter a line weight of 0 instead of 1.
To change properties of the filled ellipse in the dialog Graphic Settings, double-click the filled ellipse.
Related Topic
drawEllipse
Draw Rectangle
The command Draw Rectangle draws a rectangle on the background of the Frame.
If you do not want to zoom the outline of the rectangle, enter a line weight of 0 instead of 1.
To change properties of the rectangle in the dialog Graphic Settings, double-click the rectangle.
Related Topic
drawRectangle
The command Draw Filled Rectangle draws a filled rectangle on the background of the Frame.
If you do not want to zoom the outline of the rectangle, enter a line weight of 0 instead of 1.
You can add a color gradient to a filled rectangle.
To change properties of the filled rectangle in the dialog Graphic Settings, double-click the filled
rectangle.
Related Topic
drawRectangle
Draw Textbox
The command Draw Textbox draws a textbox on the background of the Frame. Enter the text
into the dialog that opens.
Enter the text into the text box Text in the dialog Graphic Settings and select the text color, the layer
on which the text will be placed, and the font size of the text.
Related Topic
drawText
Graphic Settings
The command Graphic Settings opens the dialog Graphic Settings. The settings you select and
enter here determine how Plant Simulation draws the vector graphics you are going to create.
To edit the settings of the selected vector object, you can double-click that vector object.
• Select filled , to fill an ellipse or a rectangle with the Color you selected.
• Select the direction in which the color gradient blends. This feature is only available for filled
rectangles .
• Enter the line weight, i.e., the thickness of the line you draw, in pixels.
• Select a line style of the line. You can also draw lines with arrowheads pointing left or right at
their ends.
• Enter the layer onto which the program draws the vector object.
o Enter a negative number, -1 for example, to draw the vector object onto the foreground
of the Frame.
o Enter a positive number to draw the vector object onto the background of the Frame.
• Select a font size for the text you enter into the text box or into the dialog Enter Text.
• Enter the text, which you want to show on the background/foreground of the Frame.
o To apply your settings, and to see what the item looks like, click Apply.
Related Topics
drawEllipse eraseAllLayers
drawLine eraseLayer
drawRectangle
The command Group Vector Graphics groups the selected vector graphics.
The command Ungroup Vector Graphics ungroups the group and restores the individual vector
graphics.
Delete Objects
Delete Layer
The command Delete Layer deletes the all vector graphics on the layer, whose number you enter
into the dialog Delete Layer.
Related Topic
eraseLayer
The command Delete All Layers deletes all vector graphics on all layers.
Related Topic
eraseAllLayers
The command Inherit Vector Settings activates or deactivates inheritance of the vector graphics you
drew in the Frame, when you insert the Frame into another Frame.
The context menu of the Frame itself provides these commands. To open it, click into the background
of the Frame with the right mouse button.
Some of the commands are located on the mini toolbar, while others are commands on the context
menu itself.
You can also close the context menu and leave the mini toolbar open by
clicking on the border of the mini toolbar with the left mouse button.
Show or hide view options for the More View Options, Show MU
Frame Names, etc.
You can also close the context menu and leave the mini toolbar open
by clicking on the border of the mini toolbar with the left mouse button.
Disable Show
Open Origin
The mini toolbar above the context menu proper always provides
these commands:
To do this click
Some objects provide additional commands on the mini toolbar to the left or the right of the default
buttons.
You can also close the context menu and leave the mini toolbar open
by clicking on the border of the mini toolbar with the left mouse button.
Not all objects provide all of the context menu commands listed above.
Arrange Icons
The subcommands of the command Arrange Icons allow you to align, to distribute or to reverse the
order of the selected icons within the Frame window. First, select the objects whose icons you would
like to arrange by dragging a marquee around them or by holding down Shift and clicking the objects
with the left mouse button one by one. Then click the object to which you want to align the other
selected objects with the right mouse button and select the respective subcommand.
Align Horizontally
To align the icons of the selected objects horizontally in the Frame window, select this command.
Plant Simulation aligns the objects to the y-coordinate of the object, which you clicked, and for which
you selected the command.
Align Vertically
To align the icons of the selected objects vertically in the Frame window, select this command. Plant
Simulation aligns the objects to the x-coordinate of the object, which you clicked, and for which
you selected the command.
Distribute Horizontally
To distribute the icons of the selected objects with equal distances to each other horizontally in the
Frame window, select this command.
Distribute Vertically
To distribute the icons of the selected objects with equal distances to each other vertically in the
Frame window, select this command.
Reverse Order Horizontally
To reverse the order of the icons of selected objects horizontally in the Frame window, select this
command.
Reverse Order Vertically — To reverse the order of the icons of the selected objects vertically in the
Frame window, select this command.
Bring to Front
To place the selected objects in front of other overlapping objects in the Frame window, select this
command.
This also changes the number of the object in the Frame, compare the method node, as
the object number and the drawing layer are directly related to each other.
Send to Back
To place the selected objects behind other overlapping objects in the Frame window, select this
command.
This also changes the number of the object in the Frame, compare the method node, as
the object number and the drawing layer are directly related to each other.
Calculate Angles
To make the Turntable and the PickAndPlace Robot compute the angles at which you connected
them to their predecessors and to their successors in the Frame, select this command.
The Pick-and-place robot enters the angles into the Angles Table.
The Turntable enters the entry angles into the Entry Angle Table and the exit angles into the Exit
Angle Table.
Related Topic
Pick Up Parts and Place Them with the Robot
Controls
To open one of the controls, which you entered on the Tab Controls, by clicking Edit Controls on the
Home ribbon tab, select the name of the control on the submenu. The command also shows the
controls you entered by selecting Tools >Edit Controls in the dialog of an object. The context menu
only shows the menu item Controls if you actually did enter one or several controls.
Create Sensor
To create a new sensor on the length-oriented object, click at the rough position at which you would
like to insert the sensor with the right mouse button and select this command. Enter the precise
position and the remaining data defining to the sensor into the dialog that opens.
To open the sensor at a later point in time, click it with the right mouse button and select Open Sensor.
To delete the sensor at a later point in time, click it with the right mouse button and select Delete
Sensor. To delete the sensor in 3D, press the Del key on your keyboard.
Instead, you can also click Sensors in the dialog of the object.
To create Tugger Trains, right-click the first and the last Transporter, which you would like to hitch to
each other, and select this command.
Delete Sensor
To delete a sensor from a length-oriented object, select the senor with the right mouse button and
select this command. To delete the sensor in 3D, press the Del key on your keyboard.
Disable
To disable/deactivate the selected object, select this command. This command clears the check box
Active .
You can enable/activate the selected object with the command Enable.
To close the open Frame and open the Frame which is located within the Frame for which you
selected Down one Level in your hierarchically structured simulation model, select this command.
To edit the Display Panel of the selected object, select this command. You can add a New item, or
Edit or Delete an existing item.
3D models do not provide this command as they do not show display panel.
Edit Dialog
Instead, you can also click Edit Dialog in the dialog editor.
Edit Icons
To open the Icon Editor, select this command. You can then edit, delete, or add new icons to the
selected objects or models.
To open the dialog User-defined Attributes, compare Tab User-defined, select this command. You
can then edit, delete, or add new user-defined attributes to the selected objects or models
Enable
To enable/activate the selected object, select this command. It then selects the check box Active
.
For the ShiftCalendar it looks like this:
You can deactivate the selected object with the command Disable.
Next Icon
To change to the next icon of the selected object, select this command.
Open
To open the dialog window of the selected object, select this command.
Instead, you can also double-click the icon of the object in the Frame window.
Open Class
To open the class of the selected object in the Class Library, select this command.
When you select the command Open Class for an instance of an object, Plant Simulation moves
up in the inheritance structure until it reaches an object in the Class Library. It then opens this object.
Instead, you can also select View > External Connections in the dialog of the Interface.
Open Origin
To open the class that the selected object was derived from, select this command .
Open Sensor
To open the dialog of the selected sensor of the length-oriented object, select this command.
Instead, you can also click Sensors in the dialog of the object.
To open the TimeSequence object that contains the current sequence of Values of the Trigger,
select this command.
To open the dialog of the object without calling the Open control, select this command. This only
applies if the Open control is not encrypted.
To prevent the open control from being executed, you can also hold down Alt while double-clicking
the icon of the object.
Previous Icon
To return to the previously displayed icon of the selected object, select this command.
Rename
To enter a new name for the selected object, select this command.
Instead, you can also select Objects > Rename in the Frame window or press the F2 key
Reorder Successors
To reorder the sequence of the successors of the selected object, select this command. This way you
can change the order of the Connectors without having to delete these and reconnect the objects.
The sequence of the successors affects how the goods are transported through your
simulation model. Plant Simulation establishes the sequence of the Connectors, when you
connect the objects which you inserted into a Frame.
To move the selected object up in the sequence of the successors, click Up.
To move the selected object down in the sequence of the successors, click Down.
Reset Simulation
Instead, you can also click Reset Simulation in the dialog of the EventController or on the Home
Ribbon Tab.
Run
Instead, you can also select Run Method on the Run menu of the Method or press F5.
Show
To show the display window of the AttributeExplorer, the HtmlReport, or the Chart, select this
command.
To select the objects which are assigned to the LockoutZone or to the ShiftCalendar as resources in
the Frame, select Show Assigned Objects.
Instead, you can also select View > Show Assigned Objects in the dialog of the LockoutZone.
To show the attributes and methods of the instance of the object class, which you inserted into the
Frame, select this command.
Instead, you can also press the F8 key or click Show Attributes and Methods on the Home Ribbon Tab.
Show Dialog
To show the Dialog with the dialog items you created, select this command.
Instead, you can also click Show Dialog in the dialog editor.
To open the list that shows all services which the Exporter exports at this time, select this command.
Instead, you can also select View > Exported Services in the dialog of the Exporter.
To select the objects in the Frame in which they are inserted and which are connected to the Interface
object, select this command. If the Frame is closed, Plant Simulation also opens the Frame.
Instead, you can also select View > External Connections in the dialog of the Interface.
To show the statistics of the selected object in the Statistics Report, select this command or press F6.
To show the statistics of several objects, select them (Shift+click or drag a marquee over them) and
press F6.
To add one or several objects to an open report, select it/them and press F6.
The report adds the statistics of the objects, which you selected to the drop-down list. To jump to any
of the topics, which interest you, select that topic from the drop-down list:
Note that then the report just shows the page with this topic in the display window.
To save the report as an HTML file (*.htm or *.html) or as a text file (*.txt) click Save. Enter a name
for the file and select the folder into which you want to save it.
To update the report with the current values, click Refresh.
To print the report, click Print.
Instead, you can also select View > Statistics Report in the dialog of the objects.
Related Topics
Statistics Report
showStatisticsReport
Viewing the Statistics Report
Show Structure
To show the internal structure of the selected object, on which parts can be located, select this
command. The dialog Structure then shows the parts/objects which are located on the material flow
object or are loaded onto the Container or the Transporter.
Start/Stop Simulation
To start the simulation, click . To stop the simulation after the active simulation event has been
processed, select this command again.
Instead, you can also click Start/Stop Simulation in the dialog of the EventController or on the
Home Ribbon Tab.
To start the simulation run without MU Animation and Icon Animation , click . This
makes the simulation considerably faster.
Statistics Wizard
Type Info
To open a table that shows all methods and attributes of the active ActiveX control, select this
command.
Instead, you can also select View > Type Info in the dialog of the ActiveX control.
During your simulation runs Plant Simulation shows the state of the Frame as one or more colored
dots in the LED display along the top border of the icon of the Frame.
light
Unplanned Unplanned
blue
Related Topic
States and Icons of the Material Flow Objects
To view all of the methods and attributes of the selected Frame, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
copyBitmapToClipboard
Syntax: Path.copyBitmapToClipboard(X:integer, Y:integer, Width:integer, Height:integer
The method copyBitmapToClipboard copies a part of the window of the Frame designated by Path to
the clipboard as a bitmap.
Parameters
• The parameter X of data type integer designates the x-coordinate of the bitmap.
• The parameter Y of data type integer designates the y-coordinate of the bitmap.
• The parameter Width of data type integer designates the width of the bitmap.
• The parameter Height of data type integer designates the height of the bitmap.
Example: current.copyBitmapToClipboard(200,200,130,70);
Related Topic
copyBitmapToFile
copyBitmapToFile
Syntax: Path.copyBitmapToFile(FileName:string[,X:integer, Y:integer, Width:integer, He
The method copyBitmapToFile copies the graphic of the window of the Frame designated by Path
to a file as a .png file.
Parameters
• The parameter FileName of data type string designates the name of the file to which Plant
Simulation writes the .png file.
• The optional parameter X of data type integer designates the x-coordinate of the bitmap on your
computer’s screen.
• The optional parameter Y of data type integer designates the y-coordinate of the bitmap.
• The optional parameter Width of data type integer designates the width of the bitmap.
• The optional parameter Height of data type integer designates the height of the bitmap.
If you do not enter the optional parameters, Plant Simulation automatically computes the size of
the bitmap.
Return Value
The return value has the data type boolean.
Example: .Models.Frame.copyBitmapToFile("myBackgroundImage",200,200,130,70);
Related Topic
copyBitmapToClipboard
drawEllipse
The method drawEllipse draws an ellipse on the background of the Frame designated by Path.
To draw the ellipse in the foreground, i.e., in front of the objects in the Frame, enter a negative
number for the layer, designated by the parameter integer.
Parameters
Example: .Models.Frame.drawEllipse(2,13,34,58,17,200,2);
Related Topics
eraseAllLayers makeRGBValue
drawLine
The method drawLine draws a line on the background of the Frame designated by Path.
To draw the line in the foreground, i.e., in front of the objects in the Frame, enter a negative number
for the layer, designated by the parameter integer.
Parameters
The parameter
of data type Designates the
integer
Example: .Models.Frame.drawLine(1,8,15,58,17,166,4,0);
Related Topics
eraseAllLayers makeRGBValue
drawRectangle
Syntax: Path.drawRectangle(Layer:integer, X:integer, Y:integer, Width:integer, Height:
The method drawRectangle draws a rectangle on the background of the Frame designated by Path.
To draw the rectangle in the foreground, i.e., in front of the objects in the Frame, enter a negative
number for the layer, designated by the parameter integer.
Parameters
Example: .Models.Frame.drawRectangle(3,30,30,80,40,133,1);
Related Topics
eraseAllLayers makeRGBValue
drawText
Syntax: Path.drawText(Layer:integer, X:integer, Y:integer, RGB:integer, FontSize:integ
The method drawText draws the text, which you enter as the parameter of data type string, on the
background of the Frame designated by Path.
To draw the text in the foreground, i.e., in front of the objects in the Frame, enter a negative number
for the layer, designated by the parameter integer.
Parameter
Text of data type string the text proper that Plant Simulation draws.
Related Topics
eraseAllLayers makeRGBValue
eraseAllLayers
Syntax: Path.eraseAllLayers
The method eraseAllLayers deletes all vector graphics, which you drew manually or inserted with the
methods drawEllipse, drawLine, drawRectangle and drawText on all layers in the Frame.
Example: current.eraseAllLayers;
Related Topic
Vector Graphics Ribbon Tab
eraseLayer
Syntax: Path.eraseLayer(Layer:integer)
The method eraseLayer deletes all vector graphics, which you drew manually or inserted with the
methods drawEllipse, drawLine, drawRectangle and drawText on a layer.
You can use the method eraseAllLayers to delete all vector graphics on all layers.
Parameter
The parameter Layer of data type integer designates the layer.
Example: current.eraseLayer(-3); -- deletes all vector graphics on layer -3
Related Topic
Vector Graphics Ribbon Tab
getInterfaceOfConnector
Syntax: Path.getInterfaceOfConnector(Connector:object) → object
The method getInterfaceOfConnector returns the Interface object that is connected to a Connector.
When you want to access an Interface, which is located in the same Frame as the
Connector, use the method succ of the Connector.
Parameter
The parameter Connector of data type object designates the Connector.
Return Value
The return value has the data type object.
Example: -- SimTalk 2.0 notation
var connObj: object
connObj := MySingleProc.succConnector
-- The objects Frame and connObj have the same location.
print Frame.~
print connObj.~
print Frame.getInterfaceOfConnector(connObj)
-- the Interface is located in the object Frame
Related Topics
Connector
Interface
getRepresentationArea
Syntax: Path.getRepresentationArea(byRef X:integer, byRef Y:integer, byRef Width:integ
The method getRepresentationArea returns the parameters of the representation area of the visible
objects of the Frame object designated by Path, and assigns them to the local variables, which
you define.
Local Variables
• The local variable X designates the x-coordinate of the representation area.
Related Topics
Representation area Y
node
The method node calls the object with the number of data type integer in the Frame designated by
Path.
Plant Simulation numbers the objects within models in the order in which you insert them.
Parameter
The parameter ObjectNumber of data type integer designates the number of the object.
Return Value
Related Topic
NumNodes
pasteClipboard
Syntax: Path.pasteClipboard[(TargetTable:table])
The method pasteClipboard pastes the contents of the clipboard into the Frame designated by Path.
Parameter
When you enter the optional parameter TargetTable of data type table, Plant Simulation writes all
pasted objects to this table after it executed the method. The table has one column of data type object.
Related Topics
Paste Objects
Copy Objects
rearrange
Syntax: Path.rearrange
The method rearrange aligns the icons in the Frame designated by Path to the grid.
Example: .MyModell.rearrange;
Related Topic
Align to Grid
selectContents
Syntax: Path.selectContents(SelectAllObjects:boolean)
The method selectContents selects all objects located in the Frame designated by Path ( true )
or deselects them ( false ).
Parameters
The parameter SelectAllObjects of data type boolean sets if all objects will be selected (true)
or deselected (false).
Example: frame2.selectContents(true);
Related Topic
Select All on the Home Ribbon Tab
selectionToClipboard
Syntax: Path.selectionToClipboard
The method selectionToClipboard copies the selected objects, compare selectContents, in the Frame
designated by Path to the clipboard.
Related Topics
Copy Objects on the Home Ribbon Tab
copyObjectsToClipboard
setBackgroundImage
The method setBackgroundImage sets the image designated by the parameters as the background
image of the Frame.
Parameters
• The parameter FileName of data type string designates the name of the image file.
• When you designate an AutoCad or a Microstation file in the formats DWG or DXF, you can enter:
• The scaling factor ScalingFactor as the optional parameter of data type real. When you use
the same units in AutoCad/Microstation and Plant Simulation, you will enter the scaling factor
1 . When you use different units, you have to enter a scaling factor that takes the conversion
factor into account.
• The x-coordinate of the origin as the optional parameter XOrigin of data type integer.
• The y-coordinate of the origin as the optional parameter YOrigin of data type integer.
This method applies to the icon of the addressed instance not to icon of the object class.
Return Value
The return value has the data type boolean.
Related Topic
Add a Graphic and a Color to the Background or the Icon of the Frame
setRepresentationArea
The method setRepresentationArea sets the parameters of the visible objects of the Frame object
designated by Path.
Parameters
The parameters designate the pixel coordinates.
• The parameter X of data type integer designates the x-coordinate of the representation area.
• The parameter Width of data type integer designates the width of the representation area.
• The parameter Height of data type integer designates the height of the representation area.
Example: Frame1.setRepresentationArea(500,100,15,25);
Related Topics
Representation area Y
setXYOrigin
Syntax: Path.setXYOrigin(X:integer, Y:integer)
The method setXYOrigin sets the zero point for scrolling in the Frame designated by Path, whose
contents does not fit in the viewable area.
Parameters
• The parameter X of data type integer designates the x-coordinate of the zero point for scrolling.
Example: .frame2.setXYOrigin(45,59);
statistics
Syntax: Path.statistics;
Path.statistics(NameOfTable:table_path)
Path.statistics(FileName:string[, CodePage:string])
The method statistics returns the statistics of all material flow objects collecting statistical data of
the Frame designated by Path. The same is true for objects on lower levels of the model, i.e.,
models within models.
Parameters
• Enter the parameter NameOfTable of data type table_path to write the data to that table.
• Enter the parameter FileName of data type string to write the table to that file. Plant Simulation
will overwrite existing entries.
If you specify a filename, you can use the optional parameter CodePage of data type string to
set the encoding you want to use: ANSI, UTF-8, or Unicode.
If you do not specify this parameter, the encoding UTF-8 is used.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Frame.Capacity
Capacity
Syntax: Path.Capacity
The read-only attribute Capacity returns the capacity of all static material flow objects located in the
Frame designated by Path.
Plant Simulation does not include the capacities of MUs. When you place additional models into the
selected model, Plant Simulation adds their capacities. If you insert at least one object with unlimited
Capacity, such as a Line with a Capacity of -1 in the Frame, Plant Simulation returns -1.
Return Value
The return value has the data type integer.
Example: print .Models.MyPlant.Capacity
EventController
Syntax: EventController
The read-only attribute EventController returns the EventController that is located in the root Frame.
Return Value
The return value has the data type object.
Example: print EventController; -- returns for example .Models.Frame.EventController
Related Topic
EventController
NumNodes
Syntax: Path.NumNodes
The read-only attribute NumNodes returns the number of objects in the Frame designated by Path.
Each additional Frame you insert into the selected Frame counts as a single object. Plant Simulation
does not count the objects contained within the models. Note that Connectors also count as objects.
Return Value
The return value has the data type integer.
Example: print .Model.MyPlant.NumNodes;
Related Topic
node
Stopped
Syntax: Path.Stopped
The read-only attribute Stopped returns if the LockoutZone stopped the Frame (true) or if it did not
stop it (false). You can use an observer to find out if the state changed. The attribute is observable.
Then, the Frame shows a pink dot in the LED area of the icon.
Return Value
The return value has the data type boolean.
Example: Frame.Stopped := true;
Related Topic
States of the Frame
To view all of the methods and attributes of the selected Frame, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute by assigning values to the corresponding attributes and you
can get its value:
• To set the value of an attribute, you might, for example, type:
Frame.StateBlocked := true
AxesOrigin
Syntax: Path.AxesOrigin
The attribute AxesOrigin sets x-coordinate and the y-coordinate of the 3D origin, i.e., the reference
point of the representation area of the Frame designated by Path.
When you change the axes origin, Plant Simulation keeps the 3D coordinates and changes the
pixel coordinates. Plant Simulation checks if your changes create allowed pixel coordinates. It
only changes them if that is the case.
Related Topic
Axes origin X/Y
BackgroundColor
Syntax: Path.BackgroundColor
Related Topic
Background Color
Failed
Syntax: Path.Failed
The attribute Failed sets if the Frame designated by Path is Failed (true) or not (false). The attribute
is observable.
Then, the Frame shows a red dot in the LED area of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
During the reset phase of the simulation Plant Simulation resets all failures.
Related Topics
States of the Frame
Failed
ModifyStructure
Syntax: Path.ModifyStructure
The attribute ModifyStructure locks the structure of the Frame designated by Path (true) or unlocks
it (false).
The function is activated by default, meaning that the Frame is unlocked so that you can create
your model in it.
When you deactivate Lock Structure , Plant Simulation prevents unintentional changes, i.e.,
inserting, deleting, and changing of objects. You can then neither change the position of objects
nor their name.
In instantiated Frames Lock Structure is deactivated by default. This is helpful to prevent you
from unintentionally changing the structure in an instance, although this change is to apply to all
instances and should therefore be changed in the class.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: .frame2.ModifyStructure := true;
print .frame2.ModifyStructure;
Related Topic
Lock Structure
Pause
Syntax: Path.Pause
The attribute Pause sets if the Frame designated by Path is paused (true) or not (false).
Plant Simulation resets the pause, when you reset the Eventcontroller.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: EngineAssembly.Pause := true;
Related Topics
Pausing Material Flow Objects and Pausing Frames
Paused Frames
States of the Frame
ReplacementMode
Syntax: Path.ReplacementMode
The attribute ReplacementMode sets the replacement mode for the Frame to the value designated by
the parameter of data type string: exchange or merge.
The replacement mode of the replacing Frame determines if the Frames are merged or replaced.
The replacement mode of the replacedFrame does not have any consequences.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: Frame1.ReplacementMode := "merge";
Related Topics
writeObject
RepresentationMode
Syntax: Path.RepresentationMode
The attribute RepresentationMode sets the representation mode of the Frame designated by Path.
The value of data type string designates the representation mode: "Icon", "Contents", or "Contents
with background".
Related Topic
Representation mode
RotateMUs
Syntax: Path.RotateMUs
The attribute RotateMUs sets if Plant Simulation rotates the icons of the MUs to match the rotation of
the point-oriented material flow object, when the parts transfer onto a rotated object as they move
across any of the material flow objects. When you type in true , the part is rotated to match the rotation
of the material flow object. When you type in false , the part keeps its previous rotation/direction.
When Plant Simulation shows a length-oriented object in curve mode, Plant Simulation
evaluates the setting Rotate movables (RotateMovables).
When Plant Simulation shows the object as an icon , Plant Simulation evaluates the setting
Same as the Object (RotateMUs ).
We advise to not deactivate Rotate movables as this setting does not influence the
behavior in the 3D Viewer.
For Transporter and Container this applies: When Same as the object is true, loaded
parts are rotated in the same direction as Transporter or Container.
SimTalk
RotateMUs for point-oriented objects
RotateMovables for length-oriented objects
Related Topic
Same as the Object
ScalingFactor
Syntax: Path.ScalingFactor
The attribute ScalingFactor sets the Scaling Factor for displaying the objects in the Frame. Plant
Simulation uses the scaling factor for converting the pixel coordinates to length coordinates.
When you change the scaling factor, Plant Simulation keeps the lengths of the
length-oriented objects and the 3D coordinates and changes the dimension or the
representation of the pixels respectively. Plant Simulation moves the axes origin if your
change would create negative pixel coordinates.
Related Topic
Scaling Factor
ShiftCalendarObject
Syntax: Path.ShiftCalendarObject
The attribute ShiftCalendarObject sets the ShiftCalendar, which controls the Frame designated by
Path.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: EngineAssembly.ShiftCalendarObject := MyShiftCalendar;
Related Topic
Select Shift Calendar
ShowDisplayPanels
Syntax: Path.ShowDisplayPanels
The attribute ShowDisplayPanels sets if Plant Simulation shows (true) or hides (false) all display
panels of the objects in the Frame designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topic
Show display panels
ShowObjectLabels
Syntax: Path.ShowObjectLabels
The attribute ShowObjectLabels sets if Plant Simulation shows the Labels of the objects in the
Frame window (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topic
Show object labels
ShowObjectNames
Syntax: Path.ShowObjectNames
The attribute ShowObjectNames sets if Plant Simulation shows the Names of the objects in the
Frame window (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
When you change one of the View Options, Plant Simulation changes this setting in the
class from which this setting is inherited. If you only want to change the setting in the
local instance, you have to deactivate inheritance first . The background for this
behavior is that, as a rule, you will want to change the setting for all instances of the Frame.
Related Topic
Show object names
StateBlocked
Syntax: Path.StateBlocked
The attribute StateBlocked sets the state of the Frame to Blocked (true) or not blocked (false). Then,
the Frame shows a yellow dot in the LED area of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
States of the Frame
StateEntryShut
Syntax: Path.StateEntryShut
The attribute StateEntryShut sets the state of the Frame to entrance closed (true) or not closed
(false). The Frame only shows this state if the Recovery time is active. Then, the Frame shows a
light blue dot in the LED area of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: Frame.StateEntryShut := true;
Related Topic
States of the Frame
StateResourceMissing
Syntax: Path.StateResourceMissing
The attribute StateResourceMissing sets the state of the Frame to resource missing/Waiting for an
Exporter (true) or not missing (false). This state applies when the Frame is waiting for resources,
i.e., for services or MUs.
Then, the Frame shows an orange dot in the LED area of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: Frame.StateResourceMissing := true;
Related Topic
States of the Frame
StateSetup
Syntax: Path.StateSetup
The attribute StateSetup sets the state of the Frame to Setting-Up (true) or not setting-up (false).
Then, the Frame shows a brown dot in the LED area of the icon.
Data Type of Value You Can Assign
Related Topic
States of the Frame
StateWorking
Syntax: Path.StateWorking
The attribute StateWorking sets the state of the Frame to Working (true) or not working (false).
Then, the Frame shows a green dot in the LED area of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: Frame.StateWorking := true;
Related Topic
States of the Frame
Unplanned
Syntax: Path.Unplanned
The attribute Unplanned sets if the Frame designated by Path is not planned to be Working for the
time, which you entered into the ShiftCalendar (true) or if it is planned to work (false).
Then, the Frame shows a light blue dot in the LED area of the icon.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: EngineAssembly.Unplanned := false;
Related Topic
States of the Frame
ZoomFactor
Syntax: Path.ZoomFactor
The attribute ZoomFactor sets the zoom factor with which you view the contents of the Frame. You
can enter a factor from 0.25 (25 percent) to 10 (1000 percent).
Data Type of Value You Can Assign
Related Topics
Zoom In
Zoom Out
Interface
Interface
You can model transitions between Frames with the object Interface. The interface, which can be
an entrances or an exit, is the place at which the MUs move from one Frame to another in your
simulation model. You can position the Interface anywhere in a Frame.
The dialog Select Interface:
• Highlights the Interface that has the least number of connections. In our example the Interface
named Unlimited has one (1) out of an unlimited number of possible connections.
• Lists in brackets how many connections out of the number you defined the Interface has. In our
example the Interface named Max3 has one (1) out of the three (3) possible connections.
• Marks the Interface, which has reached its maximum number of external connections with an
asterisk *. In our example the Interface named Only1 has reached one (1) out of one (1) possible
connections.
For an Interface object, which you inserted into a Frame, Plant Simulation shows if the Interface is
connected to another object with a Connector or not . Plant Simulation also recognizes if an
Interface is an entrance or an exit.
To open the list showing all externally connected objects, select Open External Connections List on
the context menu. You can also select Tools > External Connections in the dialog of the Interface.
To select the objects connected with this interface, select Show External Connected Objects on
the context menu.
To show a tooltip containing the externally connected objects, roll the mouse over the Interface in
the Frame.
The Interface shows the number of the next selected exit on the tab Exit provided you already
determined it, for example by calling the method succ for the successor object.
If need be, you can also select an exit strategy on the Tab Exit Strategy.
Related Topics
Double-click the icon of the Interface, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Name Cancel
Label Apply
Tab Attributes
Tab Attributes
Type
An Interface object, which you insert into a Frame and connect with a Connector, shows its type here:
An Entrance through which MUs enter the Frame or an Exit through which MUs exit the Frame.
SimTalk:
IsEntry
IsExit
Enter the maximum number of external connections the Interface may have. Depending on the type,
any number of Interfaces may have more than one predecessor or successor. The default setting -1
designates an unlimited number of external connections.
The predecessor is the object that is connected to the selected object with a Connector and that is
located in front of it in the sequence of stations in the simulation model.
The successor is the object that is connected to the selected object with a Connector and that is
located after it in the sequence of stations in the simulation model.
SimTalk:
MaxConnections
Position in %
Enter the position at which an arriving or leaving Connector is shown at the icon of the Frame. You
can enter a value between 0 and 100 percent. Position 0 is either the top or the left hand side at the
icon of the Frame, position 100 the bottom or the right hand side at the icon.
Plant Simulation uses the value you enter here, when you activate File > Preferences > Modeling
> Connect objects automatically. Connecting objects automatically only works, when the exit of
FrameA and the entrance of FrameB are not more three pixels apart.
SimTalk:
Position
Side
Select the side of the icon of the Frame at which the Interface is to be located: the Top, the Right
hand side, the Bottom, the Left hand side of the Frame or depending on the angle.
Angle-dependent takes into account the angle between the objects when determining the starting
point or the end point of the Connector.
SimTalk:
Side
Tab Exit
Select to which of its successors the object moves the MU on the Tab Exit.
When Plant Simulation determines the n-th successor of an object, for example with print
MySingleProc. succ(n) and when the n-th successor is an Interface, Plant Simulation does
not return the Interface itself, but any successor of the Interface according to the Exit
strategy of the Interface. When you select a non-blocking exit strategy, Plant Simulation
returns the next available successor according to the exit strategy or it returns VOID,
when no successor can receive parts. When the Interface has a single successor, Plant
Simulation returns this successor, even if you selected a non-blocking exit strategy and
when the successor is occupied. i.e., it cannot receive parts at the moment.
The Interface shows the number of the next selected exit (next aimed at successor) provided you
already determined it, for example by calling the method succ for the successor object.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Blocking
Strategy
Related Topics
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
External Connections
The menu command External Connections opens a table displaying the paths of the external
connections in the Frame in which the Interface object is located.
Column 1 contains the Connector at the exit of the Frame, column 2 the name of the succeeding
object.
Related Topics
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Interface.IsEntry
IsEntry
Syntax: Path.IsExit
The read-only attribute IsEntry returns if the Interface object designated by Path, which is connected
with a Connector, is an interface of type Entrance (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print .Models.Frame.frame.interface.IsExit;
Related Topics
Type
IsExit
IsExit
Syntax: Path.IsExit
The read-only attribute IsExit returns if the Interface object designated by Path, which is connected
with a Connector, is an interface of type Exit (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print .Models.Frame.Frame.interface.IsExit;
Related Topics
Type
IsEntry
To view all of the methods and attributes of the Interface, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
Interface1.Position := 53
MaxConnections
Syntax: Path.MaxConnections
The attribute MaxConnections sets the Maximum number of external connections of the Interface.
You can also enter -1 for an infinite number of connections.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: Interface1.MaxConnections := 2;
Related Topic
Maximum number of external connections
Position
Syntax: Path.Position
The attribute Position sets the Position in % at which an arriving or leaving Connector is shown at the
icon of the Frame. You can enter a value between 0 and 100 percent. Position 0 is either the top or
the left hand side at the icon of the Frame, position 100 the bottom or the right hand side at the icon.
Plant Simulation uses the value you enter here, when you activate File > Preferences > Modeling
> Connect objects automatically. Connecting objects automatically only works, when the exit of
FrameA and the entrance of FrameB are not more three pixels apart.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: interface.Position := 53;
Related Topic
Position in %
Side
Syntax: Path.Side
The attribute Side sets the Side of the Frame on which the Interface is located.
Data Type of Value You Can Assign
You can assign a value of data type string: "top", "right", "bottom", "left" or "angle-dependent".
Example: interface.Side := "right";
Related Topic
Side
Line
Line
With the object Line you can model a conveyor system or a part thereof. As opposed to the other
material flow objects, Plant Simulation uses the actual Length, which you enter, during your simulation
run. The Line transports a part along its entire length with a constant speed. A part cannot pass
another part moving along in front of it. If you do not enter an exit control, the Line divides the MUs
equally among the successors it is connected to.
In case the preceding part cannot exit the Line, the check box Accumulating sets if succeeding
MUs may move up, so that they are located front to back to each other, or if they will retain their
distance to each other.
When moving the part from Line to Line,Plant Simulation moves it on continually , i.e., it only moves
the front of the part on to the successor, while the remainder of the part follows with the speed you set
as the Speed. When the transport speeds differ, Plant Simulation uses the speed of the Line, on
which the Booking point length of the part is located.
When moving a part onto a point-oriented object, such as onto a SingleProc or a ParallelProc, the
Line always moves the part in its entirety, i.e., the part is then located on that object as a whole, not
only its front section.
You can also enter the MU distance between parts on the Line. This is the distance between the
end of the part that is located on the Line and the beginning of the next part that wants to enter.
When no further parts arrive, the Line stops once the distance has been reached. As soon as the
next part arrives, it starts to transport parts again. The default value -1 means that the Line does not
use an MU distance.
When the preceding Line transports parts faster than the conveyor which uses a gap,
the MU distance can become smaller. This happens because the entering part will be
transported with a greater speed until its booking point is located on the conveyor which
uses a gap.
• With its icon, when you deactivate Curve mode by clearing the check box . Then, it
looks like this .
To change the width / height of the icon, open the dialog of the object and type in the Curve
width on the tab Curve. Then, it looks like this .
• You can control how often the part is shown on the Line with the setting Animate every x-th
pixel. When you insert the Line with its icon , the Number of Animation Events controls
these steps.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the Line Shared Properties of the Material Flow Objects
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Length Acceleration
Width Deceleration
Speed Accumulating
Time Backwards
Acceleration MU distance
Length
Enter the length of the Line. After you inserted it into your simulation model, Plant Simulation shows
its length here. The length of the Line and the sum of the lengths of all MUs located on it determine
how many MUs the Line can accommodate at any one time. The length of the MUs will only be
evaluated, when you enter an unlimited Capacity.
When Transfer length is active, the program adapts the graphic, when you change
the length of a Line, which only consists of a single straight segment.
You can only enter the length, when you deactivate transfer length or when the Line consists of a
single straight segment. When the length cannot be exactly displayed in pixels, the program adapts
the length of the graphic. If you need to use the exact length, clear transfer length.
When you change the length, Plant Simulation automatically recalculates the Time.
SimTalk:
Length
Related Topic
OccupiedLength
Width
Enter the width of the length-oriented object. The width only applies when the setting Transfer
length is activated.
You can only enter the Curve width in pixels when you deactivate Transfer length. When
you activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Related Topic
Width in 3D
Speed
Enter the final transport speed of the MUs on the Line. You can also enter -1 for an infinite speed.
• When you change the speed, the program automatically recalculates the Time, and vice versa,
provided you deactivated the feature Acceleration. The processing time is the Length divided
by the speed.
• When you activate acceleration, the Line attempts to reach the final speed no matter if a part
is located on it or not. A part entering the Line moves with the actual speed of the Line. When
the Line currently accelerates, the part will accelerate as well.
SimTalk:
Speed
Related Topic
Speed control
Accumulating
To make the MUs accumulate on the object, select this. This allows the MUs to move front to end to
each other, when the exit of the object is Blocked.
To make the MUs retain their distance to each other, i.e., make all succeeding MUs stop moving
when the preceding part cannot exit the object, clear the check box. When the object is blocked, it
stops, i.e., it reduces its speed to 0.
When an MU is stopped on a non-accumulating Line, not only the succeeding MUs, but all MUs on
this Line are stopped and the current speed of the Line is set to 0.
When an MU is to be set in motion again, no additional stopped MUs may be located on the Line. If
this is the case, all MUs are set in motion and the Line starts moving again.
Line non-accumulating
Line accumulating
SimTalk:
Accumulating
Related Topic
Model an Accumulating/a Non-Accumulating Conveyor Between Stations
Backwards
To make the Line move in reverse against the direction of the material flow, select this. Note that not
only the Line itself, but also the MUs moving on the Line, can move forward and in reverse. This
means that a part may enter the Line at its exit and leave it at its entrance.
Suppose you selected Acceleration and an MU on the Line moves forward with a
certain speed, with the check box Backwards cleared. When you then select Backwards, the Line,
which might represent a belt conveyor, slows down until its speed is 0. Then it accelerates in reverse
direction, until it reaches its final speed. When you clear Acceleration , the Line
attempts to reverse its direction of motion immediately without decelerating and accelerating again.
SimTalk:
Backwards
Acceleration
To make the Line increase its speed, select this. Then, you can enter the Acceleration with which it
speeds up and the Deceleration with which it slows down. The Line also shows the actual Current
speed with which it moves.
• When you change the Speed, the program recalculates the Time and vice versa, when you
deactivate acceleration.
• When you activate acceleration, the Line attempts to reach the final speed no matter if a part
is located on it or not. A part entering the Line moves with the actual speed of the Line. When
the Line currently accelerates, the part will accelerate as well.
SimTalk:
AccelerationEnabled
Current speed
The program shows the current speed of the Line at the present time here, provided you selected
the check box Acceleration .
SimTalk:
CurrentSpeed
Acceleration
Enter the Acceleration with which the Line increases its speed. You can enter any real number
greater than or equal to 0.
You can only enter a value for the acceleration after you select the check box Acceleration
.
SimTalk:
Acceleration
Deceleration
Enter the Deceleration with which the Line slows down. You can enter any real number greater
than or equal to 0.
You can only enter a value for the deceleration after you select the check box Acceleration
.
SimTalk:
Deceleration
Time
Enter the time a part takes to cover the empty Line. When you change the Time, the program
automatically recalculates the Speed. You can also enter 0 as the Time.
When you change the time, Plant Simulation automatically recalculates the Current speed. You can
only enter the Time, when you clear the check box Acceleration.
SimTalk:
Time
Capacity
Enter the Capacity of the Line. The capacity is the maximum number of MUs that can be located on
the Line as a whole or in part at any one time. The default value -1 designates an infinite capacity.
You can also enter another number, so that the Line does not make use of the entire available Length.
Related Topic
Capacity
MU distance type
Plant Simulation only runs the distance check when a part enters. If you selected
Accumulating for example, the distance can fall below the value once the parts accumulate.
Select the distance type for the space between the parts. Then enter the actual distance into the
text box MU distance.
• Gap determines the distance between the rear of the preceding part and the front of the
succeeding part.
• Pitch determines the distance between the front of the preceding part and the front of the
succeeding part.
The Front of the part always moves towards the end of the length-oriented object into the
direction with which you inserted it along the direction of motion of the material flow. When
you insert a length-oriented object, for example a Line, from left to right, the Front of the
part is located on the right-hand side and moves towards the right. When you insert a
length-oriented object from right to left, the Front of the part is located on the left-hand
side and moves towards the left.
This also applies to parts which move backwards when you select the check box
Backwards of the Line or the Transporter! The Front of the part keeps on pointing towards
the end of the length-oriented object into the direction with which you inserted it along
the direction of motion of the material flow.
Minimum Gap determines the minimum distance between the rear of the preceding part and the
front of the succeeding part. This setting prevents the line from stopping and from waiting for new
parts and allows it to run dry.
Minimum Pitch determines the minimum distance between the front of the preceding part and the
front of the succeeding part. This setting prevents the line from stopping and from waiting for new
parts and allows it to run dry.
SimTalk:
MUDistanceType
Related Topic
MU distance
Select the MU distance type and then enter the desired distance of the current part to the preceding
part which the Line enforces, when the next part enters. Depending on the setting for the MU
distance type the MU distance determines for:
• Gap the distance between the rear of the preceding part and the front of the succeeding part.
• Pitch the distance between the front of the preceding part and the front of the succeeding part.
When no further parts arrive, the Line stops once the distance has been reached. As soon as the
next part arrives, it starts to transport parts again.
The default value -1 means that the Line does not use the MU distance and parts can enter at any
time as the predecessor provides them.
When the preceding Line transports parts faster/slower than the conveyor, which uses a
MU distance, the distance itself can become greater/smaller. This is because the entering
part moves with a higher/slower speed until its booking point is located on the conveyor
using an MU distance.
When the succeeding Line transports parts faster/slower than the conveyor, which uses
a MU distance, the distance itself can become greater/smaller. This is because the
booking point of the leaving part is located on the succeeding conveyor, which transports
parts with a higher/slower speed.
Plant Simulation only runs the distance check when a part enters. If you selected
Accumulating for example the distance can be undercut the parts accumulate.
The Line only uses the MU distance when it transports parts in the forward direction.
SimTalk:
MUDistance
Related Topic
Model a Fixed Gap or a No Gap Conveyor
Automatic stop
To set the Current speed of the Line to 0 when it does not transport a part, select this. This might, for
example, be the case when it is empty or when it is blocked when a part cannot leave it.
When the speed of the Line is 0, the energy state changes to Operational.
SimTalk:
AutomaticStop
Tab Times
Define times as described under the Tab Times.
Related Topics
Recovery time
Recovery time starts
Cycle time
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Backward entrance control, the
Backward exit control, the Speed control, and the Pull control.
You can also select the Shift calendar, which controls the shifts during which the object works.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Sensors EntranceCtrlRear
BwExitCtrl ExitCtrl
BwExitCtrlFront ExitCtrlFront
BwExitCtrlRear ExitCtrlRear
BwEntranceCtrl PullCtrl
BwEntranceCtrlFront ShiftCalendarObject
BwEntranceCtrlRear SpeedCtrl
EntranceCtrl
Speed control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
speed control. The Line/loading space of type Line of the Transporter call the control as soon as
they reach their final speed after accelerating or decelerating or when they stop after decelerating.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type Method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
SpeedCtrl
LoadBaySpeedCtrl
Related Topic
Transporter > Controls > Speed control
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
The Line is in the state Working, when its Current speed is not 0. It can also be working,
when the conveyor is moving and does not transport a part.
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in the
Frame and press F6 (Show Statistics Report) or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
Tab Curve
Create curved Lines for your simulation model as described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the part while it is located on the
object Line during a simulation run.
• Click the icon of the Line with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Related Topics
Tab Energy
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Edit Controls
Edit Observers
3D
To view all of the methods and attributes of the Line, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Line.CurrentAcceleration
OccupiedLength
Syntax: Path.OccupiedLength
The read-only attribute OccupiedLength returns the part of the entire Length of the Line, which is
occupied by all MUs located on it. Remember that each MU located on the object occupies part of
the entire length available.
Return Value
The return value has the data type length.
Related Topic
Length
To view all of the methods and attributes of the Line, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyLine.AccelerationEnabled := false
Acceleration
Syntax: Path.Acceleration
The attribute Acceleration sets the Acceleration with which the Line increases its speed. Enter any
real number greater than or equal to 0. The Line accelerates until it has reached its final Speed. It
accelerates no matter if a part is located on it or not until it reaches its final speed.
You can only set the acceleration after you activate Acceleration/AccelerationEnabled.
Data Type of Value You Can Assign
You can assign a value of data type acceleration.
Example: MyLine.Acceleration := 2;
Related Topic
Acceleration
AccelerationEnabled
Syntax: Path.AccelerationEnabled
The attribute AccelerationEnabled activates (true) or deactivates (false) the Acceleration of the Line
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Acceleration
Accumulating
Syntax: Path.Accumulating
In case the first MU cannot exit the Line, the attribute Accumulating sets if succeeding MUs may
move up, so that the front of the succeeding MU touches the end of the preceding MU (true) or if they
will retain their distance to each other (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Accumulating
AutomaticStop
Syntax: Path.AutomaticStop
The attribute AutomaticStop sets the current speed of the Line to 0 when it does not transport a part.
This might, for example, be the case when it is empty or when it is blocked when a part cannot leave it.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Automatic stop
Backwards
Syntax: Path.Backwards
When you deactivated the check box Acceleration or set the attribute AccelerationEnabled to false,
the attribute Backwards (Backwards) sets if the Line moves in reverse (true) or forward (false). If, on
the other hand, the feature Acceleration is active, the attribute Backwards marks the sign, positive or
negative, of the final speed of the Line.
Suppose you enabled Acceleration and an MU on the Line moves forward with a certain speed, while
the check box Backwards is deactivated. When you then select the check box Backwards, this will
result in the Line slowing down until its speed is 0. Then it accelerates in reverse direction until it
reaches its final speed. When you disable Acceleration the Line attempts to reverse its direction
of motion immediately without slowing down and accelerating.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyLine.Backwards := false;
Related Topic
Backwards
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity, i.e., the number of MUs or MU parts that may be located
on the Line as a whole or in part at any one time. When this number is reached, the Line does not
accept any additional MUs, even if its full length is not exhausted. Enter -1 for an infinite capacity.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: -- SimTalk 2.0 notation
if MyLine.Capacity = -1
@.move(AEstreet)
end
Related Topic
Capacity
CurrentAcceleration
Syntax: Path.CurrentAcceleration
The attribute CurrentAcceleration sets the actual acceleration or deceleration of the moving object.
Enter a value greater than or equal to 0.
You can only set the current acceleration after you activate Acceleration/AccelerationEnabled.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: MyLine.CurrentAcceleration := 2
CurrentSpeed
Syntax: Path.CurrentSpeed
The attribute CurrentSpeed sets the Current speed of the Line in the forward direction (positive
number) or in reverse (negative number). Enter any real number.
You can only set the current speed after you activate Acceleration/AccelerationEnabled.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Return Value
When you enter -1 for an infinite speed, the return value is inf.
Example: MyLine.CurrentSpeed := 2;
Related Topic
Current speed
Deceleration
Syntax: Path.Deceleration
The attribute Deceleration sets the Deceleration with which the Line decreases its speed. Enter any
real number greater than or equal to 0.
You can only set the deceleration after you activate Acceleration/AccelerationEnabled.
Data Type of Value You Can Assign
You can assign a value of data type acceleration.
Example: MyLine.Deceleration := 1;
Related Topic
Deceleration
Length
Syntax: Path.Length
The attribute Length sets the Length of the Line. Length and Speed form the processing time on
the object.
Data Type of Value You Can Assign
You can assign a value of data type length.
Example: MyLine.Length := 10.0; -- meters
Related Topic
Length
MUDistance
Syntax: Path.MUDistance
The attribute MUDistance defines the desired distance of the current part to the succeeding part
which the Line enforces, when the next part enters, i.e., the MU distance.
Depending on the setting for the MU distance type, the MU distance determines for:
• Gap the distance between the rear of the preceding part and the front of the succeeding part.
• Pitch the distance between the front of the preceding part and the front of the succeeding part.
When no further parts arrive, the Line stops once the distance has been reached. As soon as the
next part arrives, it starts to transport parts again.
The default value -1 means that the Line does not use the MU distance and parts can enter at any
time as the predecessor provides them.
When the preceding Line transports parts faster/slower than the conveyor, which uses a
MU distance, the distance itself can become greater/smaller. This is because the entering
part moves with a higher/slower speed until its booking point is located on the conveyor
using an MU distance.
When the succeeding Line transports parts faster/slower than the conveyor, which uses a MU
distance, the distance itself can become greater/smaller. This is because the booking point of the
leaving part is located on the succeeding conveyor, which transports parts with a higher/slower speed.
Plant Simulation only runs the distance check when a part enters. If you selected
Accumulating for example the distance can be undercut the parts accumulate.
The Line only uses the MU distance when it transports parts in the forward direction.
Example: MyLine.MUDistance := 1;
Related Topics
MU distance
MUDistanceType
Syntax: Path.MUDistanceType
The attribute MUDistanceType sets the MU distance type of the MU distance: Gap or Pitch.
Plant Simulation only runs the distance check when a part enters. If you selected
Accumulating for example, the distance can fall below the value once the parts accumulate.
• Gap determines the distance between the rear of the succeeding part and the front of the
preceding part.
• Pitch determines the distance between the front of the succeeding part and the front of the
preceding part.
The Front of the part always moves towards the end of the length-oriented object into
the direction with which you inserted it along the direction of motion of the material
flow. When you insert a length-oriented object, for example a Line, from left to right,
the Front of the part is located on the right-hand side and moves towards the right.
When you insert a length-oriented object from right to left, the Front of the part is
located on the left-hand side and moves towards the left.
This also applies to parts which move backwards when you select the check box Backwards
of the Line or the Transporter! The Front of the part keeps on pointing towards the end of the
length-oriented object into the direction with which you inserted it along the direction of motion
of the material flow.
• Minimum Gap determines the minimum distance between the rear of the preceding part and the
front of the succeeding part. This setting prevents the line from stopping and from waiting for
new parts and allows it to run dry.
• Minimum Pitch determines the minimum distance between the front of the preceding part and
the front of the succeeding part. This setting prevents the line from stopping and from waiting for
new parts and allows it to run dry.
Related Topics
MU distance type
Model a Fixed Gap or a No Gap Conveyor
Speed
Syntax: Path.SpeedCtrl
The attribute Speed sets the Speed of the Line. Speed and Length form the processing time on
the object. The processing time is the Length divided by the Speed. You can also enter -1 for
an infinite speed.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: MyLine.Speed := 0.5;
Related Topic
Speed
SpeedCtrl
Syntax: Path.SpeedCtrl
The attribute SpeedCtrl designates a Method object, the Speed control, which the Line activates
as soon as it reaches its final speed after accelerating or slowing down or when it stops after
decelerating. When you did not enter a Method, the attribute is VOID.
You can only set the speed control after you activate Acceleration/AccelerationEnabled.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyLine.SpeedCtrl := &mySpeedControl
Related Topic
Speed control
Time
Syntax: Path.Time
The attribute Time sets the Time which the MU spends moving on the Line. Time divided by the
Length form the speed of the object.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MyLine.Time := 60;
Related Topic
Time
Width
Syntax: Path.Width
The attribute Width sets the width of the Line designated by Path. The width only applies when the
setting Transfer length/TransferLengthToObject is deactivated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Example: MyLine.Width := 4;
Related Topics
Width
Curve width
CurveWidth
ParallelProc
ParallelProc
The ParallelProc has several stations for processing mobile objects (MUs) in parallel at the same
time. The built-in properties of the ParallelProc are the same as those of a SingleProc. The
only difference is that the ParallelProc has several processing stations as opposed to the single
processing station of the SingleProc.
When you do not enter a special entrance control, the ParallelProc places an incoming part onto
a random station. A set-up time always applies, when a part has a different name than the part it
processed before, i.e., its predecessor. Plant Simulation always moves the part as a whole not
continually, i.e., as soon as its front is located on the ParallelProc, the entire part is located on it.
Related Topics
Double-click the icon of the ParallelProc, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Controls OK
Tab Attributes
Tab Attributes
• Enter the number of stations on the y-axis into the text box Y-dimension.
The ParallelProc accesses the individual stations using their x-coordinate and their y-coordinate.
X-dimension
Enter the number of MUs which the object can accommodate along its x-axis. The capacity
is represented by a two-dimensional net of coordinates. It is the product of Y-dimension times
X-dimension.
When you decrease the dimension of the ParallelProc, make sure that no MUs are located on the
stations that will be deleted by this action!
When MUs are located on the object, the dimension is limited, as Plant Simulation
neither deletes MUs outside of the new dimension automatically nor does it move them
to another station!
SimTalk:
XDim
Related Topics
YDim
Capacity
pe,[ ]
setDim
Y-dimension
Enter the number of MUs which the object can accommodate along its y-axis. The capacity is
represented by a two-dimensional net of coordinates. It is the product of Y-dimension times
X-dimension.
When you decrease the dimension of the ParallelProc, make sure that no MUs are located on the
stations that will be deleted by this action!
When MUs are located on the object, the dimension is limited, as Plant Simulation
neither deletes MUs outside of the new dimension automatically nor does it move them
to another station!
SimTalk:
YDim
Related Topics
XDim
Capacity
pe,[ ]
setDim
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Times
Tab Set-Up
Define properties for setting the object up as described under the Tab Set-Up.
Related Topics
Automatic
Tab Statistics
Resource statistics is described under the Tab Statistics.
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in the
Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Statistics Report
Resource statistics
Resource type
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Set-up control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
To view Importer Statistics in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Exporters
Exporters
The menu command Exporters opens a table showing the names of all Exporters.
Related Topic
getExporters
Services
The menu command Services opens a table showing the names of all imported services. The name
of the set-up service is identical with the name of the sub-table.
Double-click the name of the service to open the sub-table. Column 1 shows the Name of the
Exporter, the column Amount the number of services provided.
Related Topic
getImportedServices setAlternativeServices
getAlternativeServices setServices
getServices
Unavailable Services
The menu command Unavailable services opens a table showing the names of the four service
types (failure, set-up, processing, and transport) that are unavailable at the moment.
The table shows the name of the unavailable service white on a red background in the respective cell.
Double-click the name of the service to open the sub-table. Its columns show the Name of the
Exporter, the Amount of services defined, the Amount of services missing, and the name of the
associated Alternative.
Related Topic
getUnavailableServices
Associated Workplaces
The menu command Associated Workplaces opens a list showing the names of all the Workplaces
which are assigned to the ParallelProc.
Related Topics
assignedWorkplaces
Station
To view all of the methods and attributes of the ParallelProc, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
findPart
The method findPart finds the part with the specified name on the ParallelProc designated by Path
and returns it.
Parameter
The parameter PartType of data type string designates the part type.
Return Value
The return value has the data type object.
pe, [ ]
The method [X:integer,Y:integer] accesses a processing place of the ParallelProc designated by Path.
If you would like to access the MU that is located on that station, append .Cont.
Parameters
• The parameter X of data type integer designates the X-dimension.
Return Value
The return value has the data type object.
Example: @.move(ParallelProc[2,3]);
@.move(ParallelProc.pe(2,3));
print ParallelProc[2,3].Cont.name;
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print ParallelProc.Capacity
Capacity
Syntax: Path.Capacity
The read-only attribute Capacity returns the capacity of the ParallelProc designated by Path. It
is the product of XDim times YDim.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
if ParallelProc.Capacity >= lotsize
@.move(ParallelProc)
end
Related Topics
X-dimension
Y-dimension
To view all of the methods and attributes of the ParallelProc, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
ParallelProc.XDim := 3
XDim
Syntax: Path.Xim
The attribute XDim sets or gets the dimension of the net of coordinates on the x-axis where the
different stations are located at.
When you decrease the dimension of the ParallelProc, make sure that no MUs are located on the
stations that will be deleted by this action! When MUs are located on the object, the dimension
is limited, as Plant Simulation neither deletes MUs outside of the new dimension automatically
nor moves them to another station!
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: ParallelProc.XDim := 3;
ParallelProc.YDim := 4; -- 12 stations
Related Topics
X-dimension
YDim
YDim
Syntax: Path.YDim
The attributes YDim sets or gets the dimension of the net of coordinates on the y-axis where the
different stations are located at.
When you decrease the dimension of the ParallelProc, make sure that no MUs are located on the
stations that will be deleted by this action! When MUs are located on the object, the dimension
is limited, as Plant Simulation neither deletes MUs outside of the new dimension automatically
nor moves them to another station!
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: ParallelProc.XDim := 3;
ParallelProc.YDim := 4; -- 12 stations
Related Topic
Y-dimension
XDim
PickAndPlace Robot
PickAndPlace Robot
The pick-and-place robot picks a part up at one station, rotates to another station, and places it there.
It can pick up and deliver one ore more parts. To deliver several parts, enter the Capacity.
The pick-and-place robot transports the part on to its successors within the flow of materials like this:
• The part arrives at the exit of the predecessor. It notifies the pick-and-place robot that it wants
to be picked up.
o Without a pull control, the robot will be notified that a part wants to be picked up and it
accepts it.
o When you entered a Pull control, the robot executes it, and when the part is selected, it will
be picked up.
• The pick-and-place robot rotates to the respective predecessor and picks the part up.
• For determining the target station, the robot either uses its default exit strategies or the Target
control. Within this Method you set the target station.
The target control is called, when the robot picks up a part or when it places a part. Within the
method setDestination the boolean parameter controls if the robot waits at the target station.
• Then, the pick-and-place robot rotates to the target station and deposits the part. Finally, it
rotates back to the standard position.
The title bar of the dialog shows the path of the pick-and-place-robot that is to move the part and of
the length-oriented object.
A complete configuration requires two drag-and-drop operations, one for picking or unloading and
one for placing or loading.
• Pick part: The pick-and-place-robot picks parts from a length-oriented object at a sensor.
Plant Simulation creates a front triggered sensor with light barrier mode at the desired position on
the length-oriented object with a sensor control for moving the part to the pick-and-place-robot.
• Place part: The pick-and-place-robot places parts onto a length-oriented object at a sensor.
Plant Simulation creates a rear triggered sensor with light barrier mode at the desired position on
the length-oriented object without a sensor control. It also sets the attributes Target selection,
Target object, and Target sensor ID of the exit behavior of the pick-and-place-robot.
• Load part: The pick-and-place-robot loads parts onto a Container or a Transporter located at a
sensor of a length-oriented object.
Plant Simulation creates a front triggered sensor with light barrier mode at the desired position on
the length-oriented object without a sensor control. It also sets the attributes Target selection,
Target object, and Target sensor ID of the exit behavior of the pick-and-place-robot.
Plant Simulation stops the Container or Transporter automatically at the sensor position and
starts it again automatically when it is full. If you do not want to use the default behavior, you
have to create a sensor control in which you have to make sure to start and stop the Container
or Transporter.
For all of the cases described above Plant Simulation creates an entry each in the Angles Table
and in the Times Table.
Settings for the 3D-Viewer
In the 3D-Viewer you can set on the tab Robot arm animation how the arm of the robot will be
animated. The robot arm animation paths determine which points the robot touches before it pick a
part up or deposits it. This way you can model more special gripping actions than the predefined
ones as well as prevent collisions manually. Note that robot arm animation paths are only used for
robots which have at least three axes.
You can choose to animate the robot with one axis, with three axes, with four axes including a ball
joint, or with five axes. You can, for example, see the number of axes by opening the dialog Graphic
Structure of the object and counting how often you can expand an entry with an animatable object
until no additional nested entry exists. If a robot in the structure has a different number of axes, the
next lower level applies, a robot with two axes is, has for example, one axis.
• One axis denote that either the entire robot or almost the entire robot, except for a fixed base,
moves toward the object. Generally speaking this almost matches the robot in 2D.
The standard Pick-and-Place-Robot in versions before Plant Simulation 13.0 was a single-axis
robot. When loading a model from a previous version, Plant Simulation will not change such a
robot.
• Three axes denote that the robot moves with its animation point to the position at which it pick
the part up or deposits it. The part jumps in its orientation though when being transferred from
or to the robot.
All robots delivered with Plant Simulation 13.0 are three-axis robots. When loading a model
created in that version, Plant Simulation does not change the robots.
• Four axes denote that the robot moves toward the destination just like a three-axis robot does. It
does have a fourth axis though that is designed as a ball joint. It can rotate during the movement
of the robot in a way that the part is already in the correct position when arriving at the destination
or remains in the correct position when picking it up.
The standard robot in Plant Simulation 13.1 has four axes.
• Five axes denote that the robot moves toward the destination just like a three-axis robot does. It
uses two axes with a rigid orientation though to be able to move the part into most of the common
positions. In a few special cases the robot or the parts may jump though.
The robots whose graphics you can exchange with the command Exchange Graphics (KUKA,
Comau) have five axes.
If a robot does not have user-defined robot arm animations, the robot runs the default
animation, namely a simple raising or lowering motion to make the animation appear
more realistic, provided it has three or more axes.
The pick-and-place robot can emulate most of the functions of the TransferStation.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the Pick-and-Place Robot Shared Properties of the Material Flow Objects
Tab Importer OK
Tab Attributes
Tab Attributes
Angles Table
To open the table of the angles, at which the pick-and-place robot picks the part up or at which
it places it, click this.
You can view or fine-tune these settings:
• The name of the predecessor at which the pick-and-place robot picks the part up or the name of
the successor onto which the pick-and-place robot deposits the part.
• The angle between the station in the column Name and the pick-and-place robot.
When you insert Connectors or when you drag an object onto the pick-and-place robot and drop it
there, Plant Simulation adds the respective values to the angles table. When you delete a Connector,
Plant Simulation does not delete the entry of the now unconnected object from the table. You have
to delete the entry yourself, for example by right-clicking the respective row and selecting Delete
Row on the context menu.
You can also manually change values or names in the angles table or add new stations to it. This way
you can, for example, request the pick-and-place robot in a sensor control.
Plant Simulation automatically applies changed names of stations to the Times Table.
If you want the pick-and-place robot to compute the angles at which you connected it to its
predecessors and to its successors, click it with the right mouse button and select Calculate Angles.
SimTalk:
setAnglesTable
getAnglesTable
Times Table
To open the table of the rotation times, click this. These are the times, which the pick-and-place robot
needs to rotate from the station in the leftmost column to the respective stations in the columns
to the right and vice versa.
You can also enter a Time factor with which all times in the table are multiplied. This way you can
simulate the with different speeds without having to manually change the times on the table.
• The names of all objects, which the pick-and-place robot is to serve and the Default angle to
which the pick-and-place robot moves after it has deposited the part.
• The times above the diagonal are the times during which the pick-and-place robot rotates Empty.
The times below the diagonal are the times during which the pick-and-place robot rotates full, i.e.,
while a part is located on it. The diagonal on the table runs from the values in the topmost cell in
the column default angle to the bottommost cell in the last column.
In the example above the cell labeled A contains the rotation time from the SingleProc to the
Source with picked-up parts, namely 0.3743 seconds.
The cell labeled B contains the rotation time from the Drain to the Source without parts.
he cell labeled C contains the rotation time from Drain1 to the Default angle without parts.
When you insert Connectors or when you drag an object onto the pick-and-place robot and drop it
there, Plant Simulation enters the respective values into the times table. For the calculation Plant
Simulation assumes that a quarter-rotation takes up one second. You can change these times.
When you delete a Connector, Plant Simulation does not delete the entry of the now unconnected
object from the times table. You have to delete the entry in the Angles Table, for example by
right-clicking the respective row and selecting Delete Row on the context menu. When you click
Apply in the dialog window of the pick-and-place robot, Plant Simulation also deletes this entry
from the times table.
SimTalk:
setTimesTable
getTimesTable
Go to default position
Select this, if you want the pick-and-place robot to rotate back to its default position after it has
deposited the part.
When you activated the check box, the pick-and-place robot uses the Default angle, when
you reset the model.
Then, enter the Default angle at which the default position is located.
When Go to default position is active, you can also activate the check box Only for empty blocking
list.
SimTalk:
GoToDefaultPosition
OnlyForEmptyBlockingList
DefaultAngle
You can only change the state of Only for empty blocking list when Go to default position
is active.
SimTalk:
OnlyForEmptyBlockingList
GoToDefaultPosition
Time factor
Enter the time factor with which all times in the Times Table are multiplied. This allows to simulate
the robot with different speeds without having to manually change the times on the table.
SimTalk:
TimeFactor
Default angle
Enter the angle in degrees to which the pick-and-place robot rotates when you selected Go to default
position. If you would like the pick-and-place robot to rotate to the side on which the start position is
located, add 180° to this angle. You can enter a value between 0° and 360°.
The default angle is also used as the start position after a Reset, no matter if Go to
default position is activated or not.
SimTalk:
DefaultAngle
Blocking angle
Enter the blocking angle in degrees which the pick-and-place robot cannot cross while rotating.
This prevents the robot from taking the shortest way. The default setting -1 means that no blocking
angle applies and that the robot thus takes the shortest way. You can enter an angle between 0
and 360 degrees.
The blocking angle only affects the animation, the simulation is controlled by the rotation times
which you defined in the Times Table.
SimTalk:
BlockingAngle
Capacity
Enter the Capacity, i.e., the number of MUs that the pick-and-place robot can transport at any one
time. Enter a number greater than 1.
It enables the pick-and-place robot to transport more than one part at the same time. It might, for
example, pick up a number of bottles and place same into the appropriate slots of a bottle crate
one at a time (FIFO).
If you want to unload the parts according to another rule, for example LIFO, you can accomplish
this in an exit control.
SimTalk:
Capacity
Related Topic
Pick Up Several Parts and Place Them with the Robot
MU conveying direction
Select the conveying direction of the MU when the Pick-and-Place robot passes the part on to its
successor and places it there.
For the settings Retain, Rotate by 90° to the right, Rotate by 90° to the left, and Rotate
by 180° the Pick-and-Place robot executes a relative rotation depending on the direction
from which the MU arrives.
For the settings Forwards, Lateral right, Backwards, and Lateral left the rotation is an
absolute rotation independent of the direction from which the MU arrives.
SimTalk
MUConveyingDirection
Related Topic
Loading time
The loading time is the time it takes the pick-and-place robot for picking up a part at a station. When
the pick-and-place robot is full, it rotates to the target station and places the part there.
• When the delivering station is a point-oriented object, the part is booked on the pick-and-place
robot while it picks it up. The delivering station is locked until the loading time has elapsed.
• When the delivering station is a length-oriented object the part remains on the delivering station
during the loading time and is then moved on to the pick-and-place robot.
Select a distribution, and enter the values, which that distribution requires,into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const).
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the part for which the loading time
applies. The anonymous identifier ? points to the pick-and-place robot.
SimTalk:
LoadingTime
IsLoading
Unloading time
The unloading time is the time it takes the pick-and-place robot for placing the part he picked up at
another station onto the target station.
• When the target station is a point-oriented object, the part is booked on the pick-and-place robot
while it places it. The target station is locked until the unloading time has elapsed.
• When the target station is a length-oriented object, the part is moved on to the length-oriented
object before the unloading time starts.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const).
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the part for which the unloading time
applies. The anonymous identifier ? points to the pick-and-place robot.
SimTalk:
UnloadingTime
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Pull control, and the Target control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Do not use an exit control for determining the target of the MU, as an Exit control will
be called only when the MU is ready to exit the pick-and-place robot. This point in time
is too late though, as the target has to be determined earlier in time.
You can also select the Shift calendar, which controls the shifts during which the object works.
Target control
You can use the target control to set the target at which the pick-and-place robot places the part.
The robot calls the target control as soon as it has picked up the part. As opposed to the exit
control, the part is not ready to exit the object yet. If you use a target control, you have to use the
method setDestination to determine the target object.
The standard target control looks like this:
Plant Simulation also calls the control when the robot has deposited the part. In this case you set the
object at which the robot is going to pick up the next part by calling the method setDestination.
Plant Simulation only calls the target control while unloading when you deactivated the check box
Go to default position .
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Do not use an exit control for determining the target of the MU, as an exit control will
be called only when the MU is ready to exit the pick-and-place robot. This point in time
is too late though, as the target has to be determined earlier in time.
SimTalk:
TargetCtrl
Related Topics
setDestination
getDestination
Pull control
Click and select a Method object in the dialog Select Object. Enter the source code of the pull
control. The pick-and-place robot activates it, whenever it is ready to pick up a new part or when it is
ready when a new MU is Waiting at its entrance. In the pull control you can determine which of
the parts, which intends to move onto the object, the pick-and-place robot will accept. For this you
have to get the forward blocking list of the object with the method fwBlockList and unblock an MU
in the list with the method unblock.
Let us assume that red parts are especially important and thus have to priority for being processed.
Then you can always pull red parts first from the predecessors and only then pull parts in other colors.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.PullControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Enter the name_of_the_Method, to call a Method in the Frame into which you inserted
the object. Enter self.name_of_the_Method, to call a user-defined attribute of data type
method.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Related Topic
PullCtrl
Tab Exit
Tab Exit
On the tab Exit you can select how the pick-and-place-robot moves the parts on to its target stations.
As a rule you will configure the pick-and-place-robot with drag and drop as described here.
• For the setting Target selection > Exit strategy or target control you can select the desired
exit strategy. Here the pick-and-place-robot has to be connected with the target objects with
Connectors.
• For the settings Target selection > Place part at sensor and Load part onto MU at sensor the
tab shows the settings Target object and Target sensor ID. Here the pick-and-place-robot does
not have to be connected with a Connector. Instead the pick-and-place-robot uses the sensor
which you have to create.
Target selection
Select how the pick-and-place-robot selects the target for the part that is to be moved:
• Exit strategy or target control: This is the default behavior of previous versions of the
pick-and-place-robot. You either set the target with the selected exit strategy or you define the
target in the target control.
• Load part onto MU at sensor: For this setting you have to manually create a front-triggered
sensor with light-barrier mode on the length-oriented target object. In addition you have to enter
the target object and the target sensor ID. Note that stopping the Container/Transporter, loading
and sending the Container/Transporter on only works automatically if you did not enter a control.
If you use a control, you have to program stopping and sending the Container/Transporter on
in this control.
• Place part at sensor: For this setting you have to manually create a rear-triggered sensor with
light barrier mode on the length-oriented target object. In addition you have to enter the target
object and the target sensor ID.
Selecting and setting the target object is actually quite easy. Just drag the
pick-and-place-robot over the Line, Track, or TwoLaneTrack and select the operation that
is to take place, compare this. Plant Simulation then automatically sets the attributes
and creates the respective sensor.
SimTalk
TargetSelection
Target object
Enter the path to the length-oriented object, at which the part is to be placed or loaded, into the text
box. Or click the button and select the target object in the dialog Select Object.
SimTalk
TargetObject
Target sensor ID
Enter the sensor ID of the target sensor at which the part will be placed or loaded.
Plant Simulation does not create the sensor automatically. You have to create it manually
or use the drag-and-drop operation.
SimTalk
TargetSensorID
Tab Statistics
Statistics is described under the Tab Statistics.
In addition to these vales, the pick-and-place robot collects these statistical values:
To view the Rotation Time in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
Tab Importer
Tab Importer
The importer is described under the Tab Importer. The Pick-and-Place robot only provides the
Sub-tab Failure
To view Importer Statistics in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Sub-tab Failure
Active Broker
Priority
Tab Energy
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
3D
To view all of the methods and attributes of the pick-and-place robot, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getAnglesTable
Syntax: Path.getAnglesTable(AnglesTable:table)
The method getAnglesTable returns the Angles Table of the pick-and-place robot designated by
Path and writes it into a table.
When you insert Connectors or when you drag an object onto the pick-and-place robot and drop it
there, Plant Simulation adds the respective values to the angles table. When you delete a Connector,
Plant Simulation does not remove the respective entry from the table. You have to do this manually.
You can also manually change values or names in the angles table or add new stations to it. This way
you can, for example, request the pick-and-place robot in a sensor control.
Plant Simulation automatically applies changed names of stations to the Times Table.
Parameter
The parameter AnglesTable of data type table designates the name of the table. It contains:
• The name of the predecessor at which the pick-and-place robot picks the part up or the name of
the successor onto which the pick-and-place robot deposits the part.
• The angle between the station in the column Name and the pick-and-place robot.
Example: MyPickAndPlace.getAnglesTable(myAnglesTable);
Related Topics
Angles Table
setAnglesTable
getDestination
The method getDestination returns the destination object on which the pick-and-place robot
designated by Path is to pick the part up or to deposit it.
The method returns a destination object when the pick-and-place robot rotates to the destination
without transporting a part.
Return Value
print PickAndPlace.getDestination
print PickAndPlace.getDestination;
end;
Related Topic
setDestination
getTimesTable
Syntax: Path.getTimesTable(TimesTable:table)
The method getTimesTable returns the Times Table of the pick-and-place robot designated by Path
and writes it into a table.
When you insert Connectors or when you drag an object onto the pick-and-place robot and drop it
there, Plant Simulation enters respective values into the times table. For the calculation Plant
Simulation assumes that a quarter-rotation requires takes up one second. You can change these
times.
When you delete a Connector, Plant Simulation does not delete the entry of the now unconnected
object from the times table. You have to delete the entry in the Angles Table, for example by
right-clicking the respective row and selecting Delete Row on the context menu. When you click
Apply in the dialog window of the pick-and-place robot, Plant Simulation also deletes this entry
from the times table.
Parameter
The parameter TimesTable of data type table designates the name of the table. It contains:
• The names of all objects, which the pick-and-place robot is to serve and the Default angle to
which the pick-and-place robot rotates after it has deposited the part.
• The times above the diagonal are the times during which the pick-and-place robot rotates Empty.
The times below the diagonal are the times during which the pick-and-place robot rotates full, i.e.,
while a part is located on it. The diagonal on the table runs from the values in the topmost cell in
the column default angle to the bottommost cell in the last column.
In the example below the cell labeled A contains the rotation time from the Source to the
SingleProc with picked-up parts, namely 0.3743 seconds.
The cell labeled B contains the rotation time from the Drain to the Source without parts.
The cell labeled C contains the rotation time from Drain1 to the Default angle without parts.
Example: MyPickAndPlace.getTimesTable(myTimesTable);
Related Topics
Times Table
setTimesTable
setAnglesTable
Syntax: Path.setAnglesTable(AnglesTable:table)
The method setAnglesTable sets the name of the Angles Table of the pick-and-place robot designated
by Path.
When you insert Connectors or when you drag an object onto the pick-and-place robot and drop it
there, Plant Simulation adds the respective values to the angles table. When you delete a Connector,
Plant Simulation does not remove the respective entry from the table. You have to do this manually.
You can also manually change values or names in the angles table or add new stations to it. This way
you can, for example, request the pick-and-place robot in a sensor control.
Parameter
The parameter AnglesTable of data type table designates the name of the table. You can enter
these settings:
• The name of the predecessor at which the pick-and-place robot picks the part up or the name of
the successor onto which the pick-and-place robot deposits the part.
• The angle between the station in the column Name and the pick-and-place robot.
Plant Simulation automatically applies changed names of stations to the Times Table.
Example: MyPickAndPlace.setAnglesTable(myAngleTable);
Related Topics
Angles Table
getAnglesTable
setDestination
Syntax: Path.setDestination(DestinationObject/DestinationPlace:object[,WaitAtTarget:bo
Path.setDestination(DefaultPosition:void)
The method setDestination sets the destination object at which the pick-and-place designated by
Path deposits the part or wants to pick up a new part. You will typically usually use setDestination in
the Target control/TargetCtrl.
Parameters
• The parameter DestinationObject of data type object designates the destination object.
The parameter DestinationPlace of data type object designates the destination place of the
part in the Store.
• The optional parameter WaitAtTarget of data type boolean sets, if the robot waits at the target
station (true) or not (false).
• Provided the robot is Empty, you can send it to its default position by entering
setDestination(void).
print PickAndPlace.getDestination
print PickAndPlace.getDestination;
end;
Example: ?.setDestination(MyStore[2,7])
Related Topic
getDestination
setTimesTable
Syntax: Path.setTimesTable(TimesTable:table)
The method setTimesTable sets the name of the Times Table of the pick-and-place robot designated
by Path.
When you insert Connectors or when you drag an object onto the pick-and-place robot and drop it
there, Plant Simulation enters respective values into the times table. For the calculation Plant
Simulation assumes that a quarter-rotation requires takes up one second. You can change these
times.
When you delete a Connector, Plant Simulation does not delete the entry of the now unconnected
object from the times table. You have to delete the entry in the Angles Table, for example by
right-clicking the respective row and selecting Delete Row on the context menu. When you click
Apply in the dialog window of the pick-and-place robot, Plant Simulation also deletes this entry
from the times table.
Parameter
The parameter TimesTable of data type table designates the name of the table.
You can enter these settings:
• The names of all objects, which the pick-and-place robot is to serve and the Default angle to
which the pick-and-place robot moves after it has deposited the part.
• The times above the diagonal are the times during which the pick-and-place robot rotates Empty.
The times below the diagonal are the times during which the pick-and-place robot rotates full, i.e.,
while a part is located on it. The diagonal on the table runs from the values in the topmost cell in
the column default angle to the bottommost cell in the last column.
In the example above the cell labeled A contains the rotation time from the Source to the SingleProc
with picked-up parts, namely 0.5 seconds.
The cell labeled B contains the rotation time from the Drain to the Source without parts.
The cell labeled C contains the rotation time from Drain1 to the Default angle without parts.
Data Type of Value You Can Assign
You can assign a value of data type table.
Example: MyPickAndPlace.setTimesTable(myTimesTable);
Related Topics
Times Table
getTimesTable
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print PickAndPlaceRobot.GetCurrentAngle
GetCurrentAngle
Syntax: Path.GetCurrentAngle
The read-only attribute GetCurrentAngle returns the current angle at which the pick-and-place robot
designated by Path is located.
Return Value
GetLastDestination
Syntax: Path.GetLastDestination
The read-only attribute GetLastDestination returns the last destination object on which the
pick-and-place robot designated by Path deposited the part or picked up the part.
Return Value
The return value has the data type object.
IsLoading
Syntax: Path.IsLoading
The read-only attribute IsLoading returns if the pick-and-place robot designated by Path is in the state
loading at the moment (true) or not (false). You can use it to observe the beginning and the end of
the loading time. The method is required to ensure the correct unloading of a Container/Transporter if
you entered a loading time.
Return Value
The return value has the data type boolean.
Related Topics
LoadingTime
Loading time
IsRotating
Syntax: Path.IsRotating
The read-only attribute IsRotating returns of the pick-and-place robot designated by Path is rotating
at the moment (true) or not (false).
Return Value
The return value has the data type boolean.
StatRotationEmptyPortion
Syntax: Path.StatRotationEmptyPortion
The read-only attribute StatRotationEmptyPortion returns the portion of the statistics collection
period during which the pick-and-place robot designated by Path was rotating Empty, i.e., without
moving a part.
Return Value
The return value has the data type real.
Example: print MyPickAndPlace.StatRotationEmptyPortion;
Related Topics
Tab Statistics of the pick-and-place robot
Statistics report, Rotation Time
StatRotationEmptyTime
Syntax: Path.StatRotationEmptyTime
The read-only attribute StatRotationEmptyTime returns the total time during which the pick-and-place
robot designated by Path was rotating Empty, i.e., without moving a part.
Return Value
The return value has the data type time.
Example: print MyPickAndPlace.StatRotationEmptyTime;
Related Topic
Statistics report, Rotation Time
StatRotationLoadedPortion
Syntax: Path.StatRotationLoadedPortion
The read-only attribute StatRotationLoadedPortion returns the portion of the statistics collection
period during which the pick-and-place robot designated by Path was rotating while moving a part.
Return Value
The return value has the data type real.
Example: print MyPickAndPlace.StatRotationLoadedPortion;
Related Topics
Tab Statistics of the pick-and-place robot
Statistics report, Rotation Time
StatRotationLoadedTime
Syntax: Path.StatRotationLoadedTime
The read-only attribute StatRotationLoadedTime returns the total time during which the pick-and-place
robot designated by Path was rotating while moving a part.
Return Value
The return value has the data type time.
Related Topic
Statistics report, Rotation Time
To view all of the methods and attributes of the pick-and-place robot, open the window Show Attributes
and Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyPickAndPlace.Capacity := 12;
BlockingAngle
Syntax: Path.BlockingAngle
The attribute BlockingAngle sets the Blocking angle in degrees which the pick-and-place robot
cannot cross. This prevents the robot from taking the shortest way. The default setting -1 means
that no blocking angle applies and that the robot thus takes the shortest way. You can enter an
angle between 0 and 360 degrees.
The blocking angle only affects the animation, the simulation is controlled by the rotation times
which you defined in the Times Table.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyPickAndPlace.BlockingAngle := 5;
Related Topic
Blocking angle
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity, i.e., the number of MUs that the pick-and-place robot can
transport at any one time. Enter a number greater than 1.
It enables the pick-and-place robot to transport more than one part at the same time. It might, for
example, pick up a number of bottles and place same into the appropriate slots of a bottle crate
one at a time (FIFO).
If you want to unload the parts according to another rule, for example LIFO, you can accomplish
this in an exit control.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Related Topic
Capacity
DefaultAngle
Syntax: Path.DefaultAngle
The attribute DefaultAngle sets the Default angle, i.e., the rotation angle in degrees to which the side
of the end point of the pick-and-place robot rotates when you set GoToDefaultPosition to true. If
you would like the pick-and-place robot to rotate to the side on which the start point is located, add
180° to this angle. You can enter a value between 0° and 360°.
The default angle is also used as the start position after a Reset, no matter if Go to
default position is activated or not.
Related Topic
Default angle
GoToDefaultPosition
Syntax: Path.GoToDefaultPosition
The attribute GoToDefaultPosition sets if you want the pick-and-place robot to rotate back to its
default position when it has deposited the part (true) or not (false).
When you set the attribute to true, the pick-and-place robot uses the attribute DefaultAngle,
when you reset the model.
Related Topic
Go to default position
LoadingTime
Syntax: Path.LoadingTime
The attribute LoadingTime sets the Loading time. This is the time it takes the pick-and-place robot for
picking up a part at a station.
• When the delivering station is a point-oriented object, the part is booked on the pick-and-place
robot while it picks it up. The delivering station is locked until the loading time has elapsed.
• When the delivering station is a length-oriented object the part remains on the delivering station
during the loading time and is then moved on to the pick-and-place robot.
Select a distribution, and enter the values, which that distribution requires,into the text box. The
program shows these values along the top border of the tab. You can also enter a constant
time(Const).
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the part for which the loading time
applies. The anonymous identifier ? points to the pick-and-place robot.
Related Topic
Loading time
MUConveyingDirection
Syntax: Path.MUConveyingDirection
The attribute MUConveyingDirection sets the conveying direction of the MU on the pick-and-place
robot designated by path.
The conveying direction is of importance because the objects Turnplate, Turntable, AngularConveyor,
and Conveyor change the conveying direction of the MUs in the simulation model. As soon as they
do this, Plant Simulation uses the previous length of the MU as its new width and the previous width
as the new length. The Pick-and-Place robot now can also pick the part up and rotate it arbitrarily and
then place it as it is required for further processing/conveying, just as a robot does in a real factory.
For the setting Retain, Rotate by 90° to the right, Rotate by 90° to the left, and Rotate
by 180° the Pick-and-Place robot executes a relative rotation depending on the direction
from which the MU arrives.
For the settings Forwards, Lateral right, Backwards, and Lateral left the rotation is an
absolute rotation independent of the direction from which the MU arrives.
Related Topic
MU conveying direction
OnlyForEmptyBlockingList
Syntax: Path.OnlyForEmptyBlockingList
The attribute OnlyForEmptyBlockingList sets if you only want the pick-and-place robot only to rotate
back to its default position when its blocking list is empty (true), i.e., when no additional requests are
registered for it or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyPickAndPlace.OnlyForEmptyBlockingList := true
Related Topic
Go to default position
PullCtrl
Syntax: Path.PullCtrl
The attribute PullCtrl designates a Method object, which is called, whenever it is ready to pick up a
new part or when it is ready when a new MU is Waiting at its entrance. In the Pull control you can
determine which of the parts, which intends to move onto the object, the pick-and-place robot will
accept. For this you have to get the forward blocking list of the object with the method fwBlockList
and unblock an MU in the list with the method unblock.
Let us assume that red parts are especially important and thus have to priority for being processed.
Then you can always pull red parts first from the predecessors and only then pull parts in other colors.
For the objects Line, Track, and TwoLaneTrack the pull control only applies to MUs
moving in the forward direction, i.e., to objects, which move onto them at their entrance and
exit them at their exit. It does not apply to MUs moving onto them backwards at their exit!
Related Topic
Pull control
TargetCtrl
Syntax: Path.TargetCtrl
The attribute TargetCtrl designates a Method object, the Target control, which is called as soon as the
robot has completely picked up the part. In this control you determine the successor onto which the
pick-and-place robot deposits the part. As opposed to the exit control, the part is not ready to exit
the object yet. You have to set the destination object in the attribute GoToDefaultPosition.
Plant Simulation also calls the attribute when the pick-and-place robot has deposited the part. In
this case you have to set the object, at which the robot is going to pick up the next part with the
method setDestination.
Data Type of Value You Can Assign
You can assign a value of data type object.
if @.LastStation = Source
?.setDestination(Drain)
elseif @.LastStation = Source1
?.setDestination(SingleProc, true)
else
?.setDestination(Drain1)
end
Related Topic
Target control
TargetObject
Syntax: Path.TargetObject
The attribute TargetObject designates the length-oriented Target object at which the part is to
be placed or loaded.
Data Type of Value You Can Assign
You can assign a value of data type path.
Example: MyPickAndPlace.TargetObject := .Models.Frame.Line
Related Topic
Target object
TargetSelection
Syntax: Path.TargetSelection
The attribute TargetSelection sets how the pick-and-place-robot selects the target for the part that
is to be moved:
• Exit strategy or target control: This is the default behavior of previous versions of the
pick-and-place-robot. You either set the target with the selected exit strategy or you define the
target in the target control.
• Load part onto MU at sensor: For this setting you have to manually create a front-triggered
sensor with light-barrier mode on the length-oriented target object. In addition you have to enter
the target object and the target sensor ID. Note that stopping the Container/Transporter, loading
and sending the Container/Transporter on only works automatically if you did not enter a control.
If you use a control, you have to program stopping and sending the Container/Transporter on
in this control.
• Place part at sensor: For this setting you have to manually create a rear-triggered sensor with
light barrier mode on the length-oriented target object. In addition you have to enter the target
object and the target sensor ID.
Related Topic
Target selection
TargetSensorID
Syntax: Path.TargetSensorID
The attribute TargetSensorID sets the sensor ID of the target object at which the part will be placed
or loaded.
Plant Simulation does not create the sensor automatically. You have to create it manually
or with the method createSensor.
Related Topic
Target sensor ID
TimeFactor
Syntax: Path.TimeFactor
The attribute TimeFactor sets the Time factor with which all times in the Times Table are multiplied.
This allows to simulate the robot with different speeds of without having to manually change the
times on the table.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyPickAndPlace.TimeFactor := 5;
Related Topic
Time factor
UnloadingTime
Syntax: Path.UnloadingTime
The attribute UnloadingTime sets the Unloading time. This is the time it takes the pick-and-place
robot for placing the part it picked up at another station at the target station.
• When the target station is a point-oriented object, the part is booked on the pick-and-place robot
while it places it. The target station is locked until the unloading time has elapsed.
• When the target station is a length-oriented object, the part is moved on to the length-oriented
object before the unloading time starts.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const).
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the part for which the unloading time
applies. The anonymous identifier ? points to the pick-and-place robot.
Related Topic
Unloading time
PlaceBuffer
PlaceBuffer
By default the PlaceBuffer is not part of the built-in objects that the Toolbox provides.
You can add it at any time to your simulation model by clicking Manage Class Library
on the Home ribbon tab.
The PlaceBuffer has a number of stations, which are arranged in a row, one behind the other. The
MUs it processes have to advance from station to station and can only leave the PlaceBuffer after
they passed the last station. This way, you can call and access each and every station individually.
A part can move directly to an idle station in the PlaceBuffer. After the part has passed this and all
succeeding stations, it can exit the PlaceBuffer. When you create a part on an idle station, it does not
have to pass this station, but may move on to the next station or the next object.
In case the first part cannot leave the PlaceBuffer, you can determine what happens next:
• To make the MUs accumulate on the PlaceBuffer, select the check box Accumulating. This allows
the MUs to move front to end to each other, when the exit of the PlaceBuffer is Blocked.
• To make the MUs retain their distance to each other, i.e., make all succeeding MUs stop moving
when the preceding part cannot exit, clear Accumulating.
You can only define the Processing time for the PlaceBuffer as whole, not for each individual station.
It divides the processing time equally among its stations, i.e., when you set a processing time of 60
seconds for 3 stations, each station processes the part for 20 seconds.
If you want to model a buffer with a large capacity that has to be fast, you can use the Buffer .
Related Topics
Tab Controls OK
Failed
Tab Attributes
Tab Attributes
The tab Attributes provides the dialog items Capacity and Accumulating.
Capacity
Enter the Capacity, i.e., the number of MUs that can stay on the object at any one time. Enter -1 for
an infinite capacity, i.e., an unlimited number of stations. Once the capacity is reached, the object
does not accept any additional MUs.
You can access the individual stations of the PlaceBuffer by their index. You can only reduce the
capacity, when enough stations are idle.
SimTalk:
Capacity
Accumulating
To make the MUs accumulate on the PlaceBuffer, select this. This allows the MUs to move front to
end to each other, when the exit of the PlaceBuffer is Blocked.
To make the MUs retain their distance to each other, i.e., make all succeeding MUs stop moving when
the preceding part cannot exit, clear the check box Accumulating. When the preceding part cannot
exit and accumulating is cleared, no additional MU can enter the PlaceBuffer.
Accumulating Non-accumulating
Related Topic
Accumulating
Tab Times
Tab Times
As opposed to the other material flow objects, you can only enter a constant Processing
time for the PlaceBuffer.
Related Topics
Processing time
Recovery time
Cycle time
Processing time
The processing time/dwell time is the time during which the part remains in the PlaceBuffer.
You can only define the processing time for the PlaceBuffer as whole, not for each individual station.
It divides the processing time equally among its stations, i.e., when you set a processing time of 60
seconds for 3 stations, each station processes the part for 20 seconds.
As opposed to the other material flow objects, you can only enter a constant processing
time for the PlaceBuffer.
SimTalk:
ProcTime
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
Related Topics
Resource statistics
Resource type
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Click the icon of the PlaceBuffer with the left mouse button and press Ctrl+I.
Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a number
into the text box that determines how often Plant Simulation draws the contents of the PlaceBuffer
while a part is located on it.
Plant Simulation only uses the setting Number of Animation Events in special cases for the
animation. To speed up the simulation when the PlaceBuffer has a great capacity, you can enter
0. Then Plant Simulation does not schedule any animation events for the PlaceBuffer and thus
does not animate any parts on the PlaceBuffer.
Open Class
Index
Help on Object
To view all of the methods and attributes of the PlaceBuffer, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
pe, [ ]
The method pe accesses the storage place of the PlaceBuffer designated by Path.
Parameter
The parameter Index of data type integer designates the station.
Return Value
The return value has the data type object.
Example: @.move(MyPlaceBuffer[2]);
@.move(MyPlaceBuffer.pe(2));
To view all of the methods and attributes of the PlaceBuffer, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyPlaceBuffer.Accumulating := true
Accumulating
Syntax: Path.Accumulating
The attribute Accumulating sets if the following MUs may move up (true) or will have to wait (false) if
the preceding MU cannot exit the PlaceBuffer.
To make the MUs retain their distance to each other, i.e., make all succeeding MUs stop moving when
the preceding part cannot exit, clear the check box Accumulating. When the preceding part cannot
exit and accumulating is cleared, no additional MU can enter the PlaceBuffer.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyPlaceBuffer.Accumulating := true;
Related Topic
Accumulating
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity, i.e., the number of stations of the PlaceBuffer. The value-1
designates an infinite capacity. Once the capacity is reached, the object does not accept any
additional MUs. You can access the individual locations by their index. You can only reduce the
capacity, when enough stations are idle.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Related Topic
Capacity
SingleProc
SingleProc
The SingleProc has a single station for processing a part. The SingleProc receives a part from its
predecessor, processes it and moves it on to the successor.
If the types of MUs are not the same, i.e., if they do not have the same name, the SingleProc has to
set up to process this new type of MU. While a part is located on the SingleProc, it does not receive
any additional parts. A part may only enter, when the SingleProc is available, i.e., when no other part
is located on it. Plant Simulation always moves the part as a whole not continually, i.e., as soon as its
front is located on the SingleProc, the entire part is located on it.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
As the SingleProc is such a central object in Plant Simulation, it figures prominently in a number
of topics in the Step-by-Step Help.
Related Topics
Tab Times
Define times as described under the Tab Times.
Related Topics
Set-up time
Tab Set-Up
Define properties for setting the object up as described under the Tab Set-Up.
Related Topics
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Pull control, and the Target control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
Related Topics
Statistics Report
Resource statistics
Resource type
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
To view Importer Statistics in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
Tab Energy
Select energy settings for the station on the Tab Energy.
Related Topics
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Exporters
Exporters
The menu command Exporters opens a table showing the names of all Exporters.
Related Topic
getExporters
Services
The menu command Services opens a table showing the names of all imported services. The name
of the failure service is identical with the name of the sub-table.
Double-click the name of the service to open the sub-table. Column 1 contains the Name of the
Exporter, the column Amount the number of services provided.
Related Topics
getImportedServices
getServices
setAlternativeServices
setServices
Unavailable Services
The menu command Unavailable services opens a table showing the names of the four service
types (failure, set-up, processing, and transport) that are unavailable at the moment.
The table shows the name of the unavailable service white on a red background in the respective cell.
Double-click the name of the service to open the sub-table. Its columns show the Name of the
Exporter, the Amount of services defined, the Amount of services missing, and the name of the
associated Alternative.
Related Topic
getUnavailableServices
Associated Workplaces
The menu command Associated Workplaces opens a list showing the names of all the Workplaces
which are assigned to the SingleProc.
Related Topic
assignedWorkplaces
Station
Help on Object
To view all of the methods and attributes of the SingleProc, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
To view all of the methods and attributes of the SingleProc, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
Sorter
Sorter
The Sorter sorts the MUs located on it according to sort criteria, which you define. The exit sequence
of the MUs depends on the priorities you set. The Sorter moves the part with the highest priority first,
regardless of the time at which it entered. You can define the priority of the part with the Sort criterion
and the sort Sort order. The data type of the sort criterion must be real or convertible to real.
The sort parameter can be:
• The processing time of the part.
When you select a Descending sort order, the Sorter moves the part with the highest value, with
respect to the sort criterion, first.
When you select an Ascending sort order, the Sorter moves the part with the lowest value first.
The Sorter sorts again when:
• Another part enters.
When you want to sort the MUs located on the Sorter only when a part enters, it is assumed that
the sort criterion does not change during the MUs time in the Sorter . In this case, Plant Simulation
places new MUs into the existing order of MUs located on it.
When the value of the sort criterion depends on the time, for example the battery charge of a
Transporter, Plant Simulation sorts the MUs every time the contents changes, especially before a
part moves.
When a part does not have a sort criterion, or its data type cannot be converted to real, the MU
sequence on the object is undefined, and Plant Simulation shows an error message in the Console.
When there are several MUs with the same value for the sort criterion, the order of these MUs with
respect to each other is not defined.
We offer alternative graphics for the Sorter in the 3D Viewer. Click Exchange Graphics in the 3D
window of the Sorter and select an alternative graphic.
Related Topics
Double-click the icon of the Sorter, which you inserted into a Frame, to open its dialog window. To
change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Time of sort
Capacity
Enter the Capacity of the Sorter into this text box. The capacity is the maximum number of MUs that
the Sorter can sort at any one time. Enter -1 for an infinite capacity.
You can access a specific location on the Sorter by using its index.
Related Topic
Capacity
Sort order
Select how the Sorter sorts the MUs located in it:
• A Descending sort order moves the part with the highest value, with respect to the sort criterion,
first.
• An Ascending sort order moves the part with the lowest value first.
SimTalk:
Order
Time of sort
Select when the Sorter sorts the MUs located in it:
• On Entry
Sorts the parts each time when a new part enters. When all MUs are located in the Sorter,
the sort criterion is assumed not to change. Thus, select the setting On Entry only when the
value of the attribute or the method you use as the sort criterion does not change while a part is
located on the Sorter.
• On Access
Maintains the sequence of MUs regardless of any sort order changes. After a part enters the
Sorter or before a part leaves it, it sorts the MUs with the current values of the sort criterion
for all MUs.
SimTalk:
TimeOfSort
Sort criterion
Select the Sort criterion. Depending on the setting you select, the program shows additional
drop-down lists and/or text boxes. SimTalk: SortCriterion
Occupation Time
Sorts the MUs according to the time they remained on the Sorter. For a Descending sort order,
the Sorter uses the FIFO policy: First In, First Out. For an Ascending sort order, the Sorter uses the
policy rule Last In, First Out.
The exit sequence of MUs that entered the Sorter at the same time is not defined.
MU-Property
Select the sorting category from the left drop-down list. Then, select the sorting criteria from the
right list.
Select the sorting criteria for the sorting category you selected, from the right drop-down list. SimTalk:
SortProperty.
User-defined Attribute Enter the name of the user-defined attribute into the text box.
Sorting according to statistical data applies only when the statistics for MUs is activated.
Method
To define your own sort criteria, select the setting Method. The sort criterion is the return value of
a user-defined method which the program calls for each part. Within the method you can sort the
objects in the Sorter according to two or more attributes. SimTalk: SortMethod
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
When using a Method, you may not employ any actions, which interfere with the
material flow, i.e., you may not transfer MUs, delete objects, etc. You may only use
read-only access, you cannot change any simulation-relevant parameters of the model.
Related Topics
CustSortAttr
SortCriterion
SortMethod
SortProperty
Start Sorting
To sort the MUs according to the sort criteria you defined, click this.
SimTalk:
sort
Tab Times
Define the Recovery time and the Cycle time as described under the Tab Times. Note that the Sorter
does not have a set-up time. The processing time always is zero.
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
Related Topics
Resource statistics
Resource type
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Index
Help on Object
To view all of the methods and attributes of the Sorter, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
sort
Syntax: Path.sort
The method sort sorts the MUs located on the Sorter designated by Path according to the settings
which you selected.
Example: MySorter.sort;
Related Topic
Start Sorting
To view all of the methods and attributes of the Sorter, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MySorter.Order := "ascending"
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the number of MUs the Sorter can hold, i.e., its Capacity.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: Sorter.Capacity := 10;
Related Topic
Capacity
CustSortAttr
Syntax: Path.CustSortAttr
The attribute CustSortAttr sets the name of a user-defined attribute used as sort criterion when you
select the Sort criterion > MU-Property.
Related Topic
Sort criterion
Order
Syntax: Path.Order
Related Topic
Sort order
SortCriterion
Syntax: Path.SortCriterion
The attribute SortCriterion sets the Sort criterion Plant Simulation uses when sorting.
Data Type of Value You Can Assign
You can assign a value of data type string: "Occupation Time", "MU-Property", or "Method".
Example: MySorter.SortCriterion := "occupation time";
Related Topic
Sort criterion
SortMethod
Syntax: Path.SortMethod
The attribute SortMethod designates the name of the Method object that defines a user-defined sort
criterion that Plant Simulation uses when you select the Sort criterion > Method.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: MySorter.SortCriterion := "mySortMethod";
MySorter.SortMethod := findPriority;
Related Topic
Sort criterion
SortProperty
Syntax: Path.SortProperty
The attribute SortProperty sets the sort property that Plant Simulation uses when you select the Sort
criterion > MU-Property. Enter any of the properties described under MU-Property.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MySorter.SortProperty := "Length";
Related Topic
Sort criterion
TimeOfSort
Syntax: Path.TimeOfSort
Related Topic
Time of sort
Source
Source
The Source produces MUs in a single station. It has a capacity of one and no processing time. It
produces the same or different types of MUs one after the other or in a mixed sequence. It might,
for example, represent the receiving department of your plant that introduces parts produced at
another location into the plant. Or it can be a machine, which produces the parts that the other
stations process.
You can set a procedure to determine the times at which it creates the parts as well as a procedure to
determine the types of MUs to be produced. As an active material flow object, the Source attempts to
move the MUs it produced to the objects to which it is connected. You can also define how the Source
proceeds when it cannot move an MU to its succeeding object, by selecting or clearing Operating
mode .
You will use the Source to produce the parts and workpieces that move through your plant and
which are processed by the different stations.
You will use the Drain to remove these parts from the factory to model, for example, the shipping
department of your facility.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the Source Shared Properties of the Material Flow Objects
Double-click the icon of the Source, which you inserted into a Frame, to open its dialog window. To
change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Controls OK
Failed
Tab Attributes
Tab Attributes
Interval MU selection
Operating mode
The Operating mode sets how the Source proceeds when it cannot create the MUs at the Time of
creation you entered.
When you select Blocking, the Source remembers the time at which it was supposed to produce
the next MU. It then produces the following MUs at the next possible point in time, i.e., when the
MU that was blocked by the successor, was moved on. The Source stops creating parts when
the simulation time has reached the Stop time.
When you clear Blocking, the Source creates another MU exclusively at the time of creation you
entered.
When the Source is temporarily not operational because it is failed, paused or blocked,
the times of creation may shift, when you select Blocking. Then, the settings for the
times of creation cannot be realized.
SimTalk:
Blocking
Time of creation
Time of creation
Select the point in time at which and how the Source produces MUs:
• Interval adjustable: It produces the first MU at the Start time. The time of creation designates
the Interval between two creation events. It produces the last MU at the Stop time.
If you do not enter a Stop time for this setting, Plant Simulation produces the amount of parts
you entered at most. The default value of -1 designates an unlimited number of parts to be
produced. Otherwise the Source produces parts until the Stop time is reached and ignores
the Amount of parts you entered.
When you select a constant time all MUs are produced at this point in time.
• Number adjustable: It produces the number of MUs, which you enter as the Amount. When you
activate the check box Generate as batch, the amount does not designate the number of parts,
but the number of batches that the Source produces. The times at which the MUs are created are
distributed according to the distribution you select for the Interval.
When you select a constant time all MUs are produced at this point in time.
• Delivery table: It produces MUs according to the delivery time, the class, the number the
name, and the attribute which you enter into the Delivery Table.
When you assign a new delivery table to the Source during the simulation, it also
produces parts which were to be produced in the past according to the new delivery
table.
• Trigger: It produces MUs according to the values that a set of Trigger objects control.
Depending on the setting you select, the attribute Path (dialog item MU or Table )
either sets the path to the MU class, the delivery list, the sequence table, the frequency
table, or the percentage table.
When the Source cannot produce the MUs at the time of creation, the Operating mode determines
how it proceeds:
• When you select Blocking , the Source remembers the
time at which it was supposed to produce the next MU. It then produces the following MUs at the
next possible point in time, i.e., when the MU that blocked the successor was moved on.
• When you clear Blocking, the Source creates another MU exclusively at the time of creation
you entered.
When the Source is temporarily not operational because it is failed, paused or blocked,
the times of creation may shift, when you select Blocking. Then, the settings for
the times of creation cannot be realized.
SimTalk:
TimeOfGeneration
Interval adjustable
The three settings Interval, Start, and Stop determine the points in time at which the Source produces
the parts:
• The Start time designates the point in time at which the Source produces the first MU. It produces
additional MUs after the time, which you enter as the Interval, has elapsed.
• The Stop time designates the point in time at which the Source produces the last MUs. When
you enter 0 as the Stop time, the Source produces MUs according to the Amount you entered.
You can also select one of the Probability Distributions for the Interval, for the Start time, and for
the Stop time.
Amount
This setting is only possible for the Time of creation > Number Adjustable and Interval
Adjustable.
When you do not enter a Stop time for the setting Interval Adjustable, Plant Simulation
produces the amount of parts you entered at most. The default value of -1 designates an
unlimited number of parts to be produced. Otherwise the Source produces parts until the
Stop time is reached and ignores the Amount of parts you entered.
For the setting Interval Adjustable the Source might possibly create more parts than
the Amount you entered, when the check box Generate as batch is activated. This is
because the lots are produced in their entirety.
For the setting Time of creation > Number Adjustable the value does not designate
the amount of MUs but the amount of batches/lots which the Source produces when
you activated Generate as batch.
SimTalk:
Number
TimeOfGeneration
Related Topics
Probability Distributions
Number adjustable
The Source creates the number of MUs, which you enter into the text box Amount. When you
activate the check box Generate as batch, the amount does not designate the number of parts, but
the number of batches that the Source produces.
Select a distribution from the drop-down list Creation times and enter the values that the selected
distribution requires into the text box. The distribution determines the point in time at which the
Source creates the MUs.
As opposed to Interval adjustable, the Creation times designate a range here within which the
Source creates MUs, and not a repeating interval.
The Source creates the number of MUs at the different times the random number generator
generated at the beginning of the simulation.
When you select the Constant distribution, the Source creates the number of MUs all at one point in
time, as the Creation times are points in time, not ranges!
When you enter a very large Amount of MUs, the list of MUs to be created is very long as well, which
might result in a great consumption of memory.
For this setting you cannot select Sequence from the drop-down list MU selection.
SimTalk:
Number
TimeOfGeneration
Related Topics
Probability Distributions
Delivery table
The Source creates the MUs according to thedelivery time, the class, the number and the name,
which you entered into the Delivery Table.
Enter the path of the Delivery Table into the text box next to Table.
Or you can click and select a table in the dialog Select Object.
You may also add information about the name and number of the produced entities as well as values
for their attributes to theDelivery Table.
The Delivery Table has five columns with the data types time, object, integer, string, and table.
Instead of the data type time you can also use the data types date, dateTime, or real. Each row of the
Delivery Table defines one order for producing MUs:
• Enter the time at which the Source produces the MUs into the column Delivery Time.
Plant Simulation processes the Delivery Table line by line. For this reason the time
should increase from row to row. If Plant Simulation processes a row in which the
time is located in the past, it creates the part immediately. This may not be what you
would expect to happen.
When you enter 0 as Number into a row, Plant Simulation does take the specified
interval for the next creating cycle into account. This means that it does not skip this
row, but does not produce a part during this cycle.
• Enter a name for the MUs to be produced into the column Name.
You have to enter data in the columns Delivery Time and MU. When you leave column
3 (Number) empty, Plant Simulation produces a single MU. When you leave column 4
empty, the MUs produced inherit the name of their class.
• Type in the name of the table attributes and user-defined attributes that the Source sets when it
produces the MUs into the column Attributes.
Enter the name of the attribute in column 1 of the attribute table. When an attribute with that
name does not exist, Plant Simulation creates it.
Plant Simulation assigns the data type of the column containing the value of the
attribute to the data type of the attribute. The respective entry is the value of the
generated attribute.
When the data type of the column is table/list/stack/queue, Plant Simulation does not
copy the sublists of the attribute table, but creates a reference to this list. The newly
created user-defined attribute then accesses this list, i.e., when you change one of the
two lists, the contents of the other list is changed as well.
The Source does not produce parts whose time of creation is in the future when you
assign a delivery table during the simulation.
Instead of using a TableFile, which you inserted into a Frame, you can also employ a user-defined
attribute of data type table of the Source as the Delivery Table.
SimTalk:
creationTable
TimeOfGeneration
Related Topics
Probability Distributions
Trigger
The Source produces MUs according to the values that one or several Trigger objects control. Click
Trigger and enter the name(s) of the Trigger object(s) into the list that opens. Each Trigger in this list
sends orders to produce MUs to the Source.
Open the Trigger, click the tab Values, make sure that the Trigger type > Input is selected and
click Values.
Enter the orders into the cells on the tab Contents:
• Enter the Point in Time at which the Source creates MUs into the cells on the left hand side.
• Enter the order into the cells on the right hand side. An order is a string with this format:
<num>,mu_Type>,distributionType>[,distribution parameters].
You always have to enter the amount of MUs to be produced, the type to be produced, and at least
a constant value. When you enter just Const, the Source produces the MUs at the point in time
you entered into the cell to the left. When you would like it to produce the MUs with an offset to
the time you entered there, enter the number of seconds after which it produces them after Const.
When you enter a distribution, its values set the time offset to the time you entered into the
corresponding left cell. Note that the offset you enter has to be a positive number!
When you enter the Source as a resource into the ShiftCalendar, Plant Simulation interrupts the
production sequence during the weekends:
• When you select the Operating mode > Blocking , the Source does not produce MUs
at all during the weekends.
• When you clear Blocking , the Source produces and moves the MUs, as soon as
its shift starts again.
You might, for example, use a Source that is controlled by a Trigger, if you want to set a time of
creation, such as with a delivery table, and you would like to periodically repeat using the values in
this list, for example when you select Sequence cyclical from the drop-down list MU selection.
SimTalk:
Trigger
Related Topics
Interval
When you select Interval adjustable as the Time of creation, the interval is the time span between
two events at which the Source produces parts. The Source creates an infinite number of MUs.
When you select Number adjustable, the Creation times are the points in time at which the Source
creates the MUs. These times are distributed according to the selected distribution.
When you select a constant time, all MUs are created at this time.
Select a distribution from the drop-down list, and enter the values, which that distribution requires,
into the text box. The program shows these values along the top border of the tab.
SimTalk:
Interval
Related Topics
Start
The Start time designates the point in time at which the Source produces the first MU.
Select a distribution from the drop-down list, and enter the values, which that distribution requires,
into the text box. The program shows these values along the top border of the tab.
SimTalk:
Start
Related Topics
Stop
The Stop time designates the time at which the Source does not produce any more MUs.
Select a distribution from the drop-down list, and enter the values, which that distribution requires,
into the text box. The program shows these values along the top border of the tab.
SimTalk:
Stop
Related Topics
MU selection
MU selection
Select which type of MUs and how the Source produces MUs:
Constant: It produces one type of MU only. Enter its path into the text box MU.
Sequence cyclical: It produces the MUs in a fixed sequence, which you enter into a table. As soon as
the Source has processed the sequence, it repeats the production sequence periodically.
Sequence: It produces MUs according to the sequence table, whose name you entered into the text
box next to Table. As opposed to Sequence cyclical, Sequence processes the sequence only
once, not repeatedly.
Random: It produces MUs in random frequencies according to the values which you entered into
the frequency table.
Percentage: It produces MUs in percentages according to the values which you entered into the
percentage table.
Depending on the setting you select, the attribute Path (dialog item MU or Table) either
sets the path to the MU class, the delivery list, the sequence table, the frequency table,
or the percentage table.
SimTalk:
MuSelection
Related Topic
Produce Parts During an Interval Which You Define
Constant
The Source produces one type of MU only. Enter the path to this type of MU into the text box next
to MU.
Or you can click and select an MU class, Entity, Container or Transporter, in the dialog Select
Object.
Or you can select the MU in the Toolbox or the Class Library, drag it to the text box and drop it there.
SimTalk:
Path
Related Topics
MuSelection
Produce a Single Part Type Only
Sequence cyclical
Enter the path to the frequency table, to the sequence table, or to the percentage table according to
which the Source produces the MUs. SimTalk: Path.
Or you can click and select the name of the table in the dialog Select Object.Plant Simulation
automatically formats the table.
Or you can select the MU in the Toolbox or the Class Library, drag it to the text box and drop it there.
To make the Source produce the number of MUs, which you entered into the cell Number of the
Table in a single lot, select Generate as batch. When you select Number adjustable as the time
of creation, the amount does not designate the number of parts, but the number of batches that
the Source produces.
Then the Source produces the entire set of parts all at once at the given start time and attempts to
move all of the parts on to the next object in a single lot.
To make the Source produce the MUs as a sequence of individual parts, clear the check box.
Once the Source has processed the entire sequence, it starts processing the information on the table
again starting at the beginning of the sequence.
Related Topics
Produce Parts in a Fixed Sequence Over and Over Again
GenerateAsBatch
MuSelection
Path
Sequence
The Source produces MUs according to the values which you entered into the sequence table, whose
name you entered into the text box next to Table.
Or you can click and select the name of the table in the dialog Select Object. Plant Simulation
automatically formats the table.
As opposed to the setting Sequence cyclical, the setting Sequence processes the
sequence only once, not repeatedly.
The setting Sequence is not available when you set Time of Generation to Number
adjustable.
To make the Source produce the number of MUs, which you entered into the cell Number of the
Table in a single lot, select Generate as batch . When you select Number
adjustable as the time of creation, the amount does not designate the number of parts, but the
number of batches that the Source produces.
Then the Source produces the entire set of parts all at once at the given start time and attempts to
move all of the parts on to the next object in a single lot.
To make the Source produce the MUs as a sequence of individual MUs, clear the check box.
Related Topics
MuSelection
CreationTableActive
GenerateAsBatch
Produce Parts in a Fixed Sequence One Time Only
Random
The Source produces MUs according to the values which you entered into the frequency table. Enter
the path to this table into the text box next to Table.
Or you can click and select the name of the table in the dialog Select Object. Plant Simulation
automatically formats the table.
Define a frequency number for each type of MU in the frequency table. It has five columns with
the data types object, real, integer, string, and table. Each row in the frequency table refers to a
production order.
• Enter the MU class into the column MU.
• Enter the frequency of the respective production order into the column Frequency.
You can, but you do not have to enter a Name and Attributes into the table.
• Enter the name of the produced MUs into the column Name.
• Enter the name of the attribute sub-table of the produced MUs into the column Attributes.
When the Source produces the MUs, Plant Simulation selects and processes a random
production order according to the frequency distribution given in column 2 of the frequency table.
To make the Source produce the number of MUs, which you entered into the cell Number of the
Table in a single lot, select Generate as batch . When you select Number
adjustable as the time of creation, the amount does not designate the number of parts, but the
number of batches that the Source produces. Then the Source produces the entire set of parts all at
once at the given start time and attempts to move all of the parts on to the next object in a single lot.
To make the Source produce the MUs as a sequence of individual MUs, clear the check box.
To check which part types were produced at which point in time, you can activate the check box
Creation table on the tab Statistics and then open the table.
Related Topics
MuSelection GenerateAsBatch
Percentage
The Source produces MUs according to the values which you entered into the percentage table.
Enter the path to this table into the text box next to Table.
Or you can click and select the name of the table in the dialog Select Object. Plant Simulation
automatically formats the table.
Define the percentage for each type of MU in the percentage table. It has five columns with the data
types object, real, integer, string, and table. Each row in the percentage table refers to a production
order.
• Enter the name of and the path to the MU class into the column MU.
• Enter the percentage of the respective part types to be produced into the column Portion.
• Enter the amount of the respective part types to be produced into the column Number.
You can, but you do not have to enter a Name and Attributes into the table.
• Enter the name of the respective part types to be produced into the column Name.
• Enter the name of the attribute sub-table of the respective part types to be produced into the
column Attributes.
To make the Source produce the number of MUs, which you entered into the cell Number of the
Table in a single lot, select Generate as batch . When you select Number
adjustable as the time of creation, the amount does not designate the number of parts, but the
number of batches that the Source produces. Then the Source produces the entire set of parts
at the point in time you entered as Start time.
To make the Source produce the MUs as a sequence of individual MUs, clear the check box.
MU selection > Percentage is a deterministic process for realizing the frequencies of the
part types which you entered into the column Portion for the part types. When selecting
the next part, the Source goes to the row on the table which has the greatest need in the
column Portion at this point in time. This creates periodically repeating patterns in the
sequence of the part types to be produced.
Related Topics
MuSelection
CreationTableActive
GenerateAsBatch
Produce Parts According to a Percentage Entered into a Table
Exit strategy > Percentage
Generate as batch
To make the Source produce the number of MUs, which you entered into the cell Number of the Table
in a single lot, select this. When you select Number adjustable as the time of creation, the amount
does not designate the number of parts, but the number of batches that the Source produces.
Then the Source produces the entire set of parts all at once at the given start time and attempts to
move all of the parts on to the next object in a single lot.
To make the Source produce the MUs as a sequence of individual parts, clear the check box.
The setting applies for the MU selections Sequence, Sequence cyclical, Random, and Percentage.
When you select Number adjustable as the time of creation, the amount does not
designate the number of parts, but the number of batches that the Source produces. Then
the Source produces the entire set of parts at the point in time you entered as Start time.
SimTalk:
GenerateAsBatch
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control and the Exit control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control , such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Related Topic
Entrance control
Tab Statistics
Tab Statistics
In addition to the features described under the Tab Statistics, the tab Statistics provides the dialog
items Creation table and Open.
To view more detailed statistics in the Statistics Report, click the object in the Frame, and press F6
(Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Viewing and Visualizing Statistics
Statistics Report
Resource statistics
Resource type
Creation table
To write all events, for which the Source produced MUs during a simulation run, into a table, select
this. Then you can click Open to open the creation table.
The Source records the creation events in addition to the resource statistics it collects in
any case.
SimTalk:
CreationTableActive
creationTable
Open
To open the creation table of the Source, when you selected the check box Creation table, click Open.
• The column Path shows the path of the MU class, the name of the MU and its number.
• The column Time of Generation shows the time at which the Source created the individual MU.
SimTalk:
creationTable
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
To view all of the methods and attributes of the Source, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
creationTable
Syntax: Path.creationTable(CreationTable:table)
The method creationTable returns the Creation table of the Source designated by Path and writes it
into a table.
Parameter
The parameter CreationTable of data type table either designates a local variable, the path to a
TableFile object, or a table cell of data type table.
Example: MySource.creationTable(myEvaluationTable);
MySource.creationTable(MyTableFile[2,8]);
Related Topics
Creation table
CreationTableActive
To view all of the methods and attributes of the Source, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MySource.GenerateAsBatch := true
Blocking
Syntax: Path.Blocking
The attribute Blocking sets if the Source saves the time at which it was supposed to produce the next
MU. It then produces the following MUs at the next possible point in time, i.e., when the MU that was
blocked by the successor, was moved on (true). When you set Blocking to false , the Source creates
another MU exclusively at the Time of creation which you entered.
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Related Topic
Operating mode
CreationTableActive
Syntax: Path.CreationTableActive
The attribute CreationTableActive sets if Plant Simulation writes all events, for which the Source
produced MUs during a simulation run, into a table (true) or not (false).
The Source records the creation events in addition to the resource statistics it collects in
any case.
Related Topics
Creation table
creationTable
GenerateAsBatch
Syntax: Path.GenerateAsBatch
The attribute GenerateAsBatch sets if the Source produces MUs in a single batch all at once (true) or
individually one by one (false).
Then the Source produces the entire set of parts all at once at the given start time and attempts to
move all of the parts on to the next object in a single lot.
This setting applies, when you set MuSelection to Sequence cyclical, Sequence, Random
or to Percentage.
When you set MuSelection to Number adjustable and when you activate the check box
Generate as batch, the amount does not designate the number of parts, but the number
of batches that the Source produces
Related Topic
Generate as batch
Interval
Syntax: Path.Interval
The attribute Interval sets the time between the creation events. The attribute Start sets the
simulation time at which the Source starts producing MUs, when you set the TimeOfGeneration
to Interval adjustable.
The attribute Stop sets the simulation time at which the Source stops producing MUs. A Stop time of
zero indicates that the Source will keep producing MUs infinitely.
Data Type of Value You Can Assign
You can assign a value of data typetime.
Example: MySource.MuSelection := "Interval adjustable";
MySource.Start := 3600;
MySource.Stop := str_to_time("1:00:00:00.00");
MySource.Interval.setParam("Normal",1,500,100,200,900);
Related Topics
Interval
Start
Stop
MuSelection
Syntax: Path.MuSelection
The attribute MuSelection sets how the Source selects the MUs to be produced.
Depending on the setting of you enter, the attribute Path either sets the path to the delivery
list, the sequence table, the frequency table, or the MU class.
Related Topic
MU selection
Number
Syntax: Path.Number
The attribute Number sets the number of MUs which the Source produces.
This setting is only possible for the Time of creation > Number adjustable and Interval
Adjustable.
When you do not enter a Stop time for the setting Interval Adjustable, Plant Simulation
produces the amount of parts you entered at most. The default value of -1 designates an
unlimited number of parts to be produced. Otherwise the Source produces parts until the
Stop time is reached and ignores the Amount of parts you entered.
For the setting Interval Adjustable the Source might possibly create more parts than the
Amount you entered, when the check box Generate as batch is activated. This is because
the lots are produced in their entirety.
For the setting Time of creation > Number Adjustable the value does not designate
the amount of MUs but the amount of batches/lots which the Source produces when
you activated Generate as batch.
Example: MySource.Number := 5;
Related Topic
MU selection
Path
Syntax: Path.Path
Depending on the settings of you entered for TimeOfGeneration and MuSelection, the attribute Path
either sets the path to the delivery list, the sequence table, the frequency table, or the MU class.
The Source does not produce parts whose time of creation is in the future when you
assign a delivery table during the simulation.
Related Topics
Time of creation
MU selection
Delivery table
Start
Syntax: Path.Start
The attribute Start sets the simulation time at which the Source starts producing MUs, when you set
the TimeOfGeneration to Interval adjustable.
The attribute Interval sets the time between creation events.
The attribute Stop sets the simulation time at which the Source stops producing MUs. A Stop time of
zero indicates that the Source will keep producing MUs infinitely.
Data Type of Value You Can Assign
You can assign a value of data typetime.
Example: MySource.MuSelection := "Interval adjustable";
MySource.Start := 3600;
MySource.Stop := str_to_time("1:00:00:00.00");
MySource.Interval.setParam("Normal",500,100,200,900);
Related Topics
Start
Interval
Stop
Stop
Syntax: Path.Stop
The attribute Stop sets the simulation time at which the Source does not produce any more MUs. A
Stop time of zero indicates that the Source will keep producing MUs infinitely.
The attribute Start sets the simulation time at which the Source starts producing MUs, when you set
the TimeOfGeneration to Interval adjustable.
The attribute Interval sets the time between creation events.
Data Type of Value You Can Assign
You can assign a value of data typetime.
Example: MySource.MuSelection := "Interval adjustable";
MySource.Start := 3600;
MySource.Stop := str_to_time("1:00:00:00.00");
MySource.Interval.setParam("Normal",500,100,200,900);
Related Topics
Stop
Interval
Start
TimeOfGeneration
Syntax: Path.TimeOfGeneration
The attribute TimeOfGeneration sets how the Source produces new MUs.
Depending on the setting of you enter, the attribute Path either sets the path to the delivery list, the
sequence table, the frequency table, or the MU class.
The Source does not produce parts whose time of creation is in the future when you
assign a delivery table during the simulation.
Plant Simulation processes the Delivery Table line by line. For this reason the time should
increase from row to row. If Plant Simulation processes a row in which the time is located
in the past, the part will be created immediately, which is not what you would expect.
Related Topic
Time of creation
Trigger
Syntax: Path.Trigger
The attribute Trigger returns the internal Trigger list of the Source designated by Path.
Return Value
The return value has the data type array.
Related Topic
Trigger
Store
Store
The Store stores any number of MUs you define. They remain in the Store until you remove them, for
example by using a Method. Enter the number of storage places into a net of coordinates, i.e., into
the text boxes X-dimension and Y-dimension.
When you decrease the size of the Store, note that you will have to delete or move MUs that are
located outside of these new coordinates. If, for example, a part is located at the position (3,4), the
new x-coordinate may not be less than 3, and the new y-coordinate less than 4.
The Store receives MUs as long as storage places are available within the storage area. The part
triggers a sensor, when it enters the Store. The sensor then calls an entrance control, i.e., a Method
object that determines the storage place onto which the Store places the part. The entrance control
can update the inventory list or execute any other action you define. If you do not define an entrance
control, the Store places the part onto the first unoccupied storage place in the net of coordinates.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the Store Shared Properties of the Material Flow Objects
Tab Controls OK
Label
Tab Attributes
Tab Attributes
Enter the number of the storage places in a net of coordinates.
• Enter the number of storage places on the x-axis into the text box X-dimension
• Enter the number of storage places on the y-axis into the text box Y-dimension.
• Enter the number of storage places on the Z-axis into the text box Z-dimension.
The Store accesses the various storage places using their x-coordinate and their y-coordinate.
X-dimension
Enter the number of MUs the Store can store on the x-axis into the text box X-dimension. The
capacity of the Store is X-dimension times Y-dimension times Z-dimension.
When you decrease the dimension of the Store, make sure that no MUs are located on the storage
places that will be deleted by this action! Either delete these MUs or move them to another storage
place on the smaller loading space.
Related Topics
XDim
capacity
pe, [ ]
setDim
Y-dimension
Enter the number of MUs the Store can store on the y-axis into the text box Y-dimension. The
capacity of the Store is X-dimension times Y-dimension times Z-dimension.
When you decrease the dimension of the Store, make sure that no MUs are located on the storage
places that will be deleted by this action! Either delete these MUs or move them to another storage
place on the smaller loading space.
Related Topics
YDim
capacity
pe, [ ]
setDim
Z-dimension
Enter the dimension of the Store along the z-axis into the text box Z-dimension. The Z-dimension
allows to stack parts in the Store. The capacity of the Store is X-dimension times Y-dimension
times Z-dimension
When you decrease the dimension of the Store, make sure that no MUs are located on the storage
places that will be deleted by this action! Either delete these MUs or move them to another storage
place on the smaller loading space.
SimTalk
ZDim
Related Topic
Unloading Stacked Parts
Tab Times
Define times as described under the Tab Times.
Related Topics
Recovery time
Cycle time
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the Shift calendar, which controls the shifts during which the object works.
Related Topics
Entrance control
Pull control
Shift calendar
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
Related Topics
Resource statistics
Resource type
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Contents
Edit Controls
Edit Observers
3D
Contents
Index
Help on Object
To view all of the methods and attributes of the Store, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
findFreePlace
Syntax: Path.findFreePlace([StartingAtEnd:boolean:=false, XStart:integer:=1, YStart:in
The method findFreePlace finds a free storage place in the Store designated by Path and returns it.
The method applies to the Store, the ParallelProc, the Container, and to the Transporter
with a loading space of type Store.
Parameters
• The optional parameter StartingAtEnd of data type boolean specifies is the search is to proceed
starting at the end backwards or not.
• The optional parameter XStart of data type integer designates the X-coordinate of the storage
place from which on the search is to be started.
• The optional parameter YStart of data type integer designates the Y-coordinate of the storage
place from which on the search is to be started.
Return Value
The return value has the data type any.
Example: print MyStore.findFreePlace
Example: MyParallelStation.findFreePlace(false,1,1)
findPart
Syntax: Path.findPart(PartType:string) → object
The method findPart finds the part with the specified name on the Store designated by Path and
returns it.
Parameter
The parameter PartType of data type string designates the part type.
Return Value
The return value has the data type object.
Example: var o: object := MyStore.findPart("Container"); -- assigns for example .MUs.Co
pe []
Syntax: Path.pe(X:integer,Y:integer)
Path[X:integer,Y:integer]
The method pe[X:integer, Y:integer] accesses a storage place in the Store designated by Path.
To access the MU that is located on that station, append .Cont.
Parameters
• The parameter X of data type integer designates the X-dimension.
Example: MyStore[2,3].Cont.move(SingleProc)
@.move(MyStore.pe(2,3))
Related Topic
Methods and Read-Only Attributes of the pe
Cont
Syntax: pe.Cont
The read-only attribute Cont returns the MU, which is located at the top-most location of the pe.
Return Value
The return value has the data type object.
Example: MyStore[1,1].Cont.move(SingleProc)
mu
Syntax: pe.mu(MU:integer) → object
The method mu accesses all MUs in the Store. The index does not declare the order of entrance.
You can query the largest index using the method NumMu.
Parameter
When you call the method with the parameter -1, it returns the last MU on the object or VOID when
the object is empty.
Standard Value
The last MU always is the MU that is located on the bottom storage place, As a rule this is
the MU that was moved onto the object first.
Return Value
The return value has the data type object.
Example: print MyStore[5,5].mu(1)
NumMU
Syntax: pe.NumMU
The read-only attribute NumMU returns the number of MUs, which are located on the pe.
Return Value
The return value has the data type integer.
Example: print MyStore[1,1].NumMU
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Store.Capacity
Capacity
Syntax: Path.Capacity
The read-only attribute Capacity returns the capacity of the Store designated by Path. It is the
product of XDim times YDim.
Return Value
The return value has the data type integer.
Related Topics
X-dimension
Y-dimension
To view all of the methods and attributes of the Store, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyStore.YDim := 10
XDim
Syntax: Path.XDim
The attribute XDim sets the number of storage places on the x-axis. Note that the capacity of the
Store is the product of XDim times YDim times ZDim.
When you decrease the dimension of the Store, make sure that no MUs are located on the storage
places that will be deleted by this action! Either delete these MUs or move them to another storage
place on the smaller loading space.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyStore.XDim := 10
Related Topics
X-dimension
YDim
YDim
Syntax: Path.YDim
The attribute YDim sets the number of storage places on the y-axis. Note that the capacity of the
Store is the product of XDim times YDim times ZDim.
When you decrease the dimension of the Store, make sure that no MUs are located on the storage
places that will be deleted by this action! Either delete these MUs or move them to another storage
place on the smaller loading space.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyStore.YDim := 10
Related Topics
Y-dimension
XDim
ZDim
Syntax: Path.YDim
The attribute ZDim sets the number of storage places on the y-axis. Note that the capacity of the
Store is the product of XDim times YDim times ZDim.
When you decrease the dimension of the Store, make sure that no MUs are located on the storage
places that will be deleted by this action! Either delete these MUs or move them to another storage
place on the smaller loading space.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyStore.ZDim := 4
Related Topics
Z-dimension
Track
Track
You can use the Track to model a part of a transport line, with or without automatic routing, on which
the Transporter moves parts. You might, for example, utilize both to model an AGV (automated
guided vehicle) system.
The distance, which the Transporter has to travel on the Track—defined by the Track’s Length, the
Transporter’s MU length, and its Speed—determine the time, which the Transporter remains on the
Track. As opposed to the other material flow objects, Plant Simulation uses the actual Length, which
you enter, during your simulation run. One Transporter cannot pass another one moving in front of it.
Transporters thus retain their order of moving onto and of moving off the Track (FIFO)
When several Transporters travel along the Track at a different speed, and a faster one collides with a
slower one, Plant Simulation activates the collision control of the faster Transporter and automatically
reduces its speed to the speed of the slower Transporter.
The maximum capacity of the Track is defined by its length and the lengths of the individual
Transporters moving on it, i.e., a Track that is three yards long accepts three Transporters of one
yard each at the most. You can use the Capacity to further restrict the number of Transporters
located on the Track.
The Transporter can drive forwards and Backwards on the Track, i.e., it drives onto the Track at its
Exit and exits it at its Entrance. Note that driving forwards and backwards are not properties of the
Track, but of the Transporters , which drive on it.
You can insert the Track into a Frame:
• As a curve, which is the default, compare Tab Curve.
By inserting any sequence of curved segments and straight segments, you can realistically model
curved tracks on which the Transporters move.
• With its icon, when you deactivate Curve mode by clearing the check box . Then, it
looks like this .
To change the width / height of the icon, open the dialog of the object and type in the Curve width
on the tab Curve. Then, it looks like this .
• You can control how often the part is shown on the Track with the setting Animate every x-th
pixel. When you insert the Track with its icon , the Number of Animation Events controls
these steps.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Routing
To facilitate a branching Track, you can use any of these controls to move a Transporter on to the
succeeding object:
• The Exit control of the Track.
The exit control of the Track has the highest priority. When you did not define an exit control and
when you entered a destination list for the Transporter, automatic routing moves the Transporter on to
the proper successor, employing the destination lists of the successors.
You can also assign a Destination to the Transporter. The Track has a Forward destination list and a
Backward destination list, into which you enter all destinations that the Transporter can reach when
it moves on the Track. When you assigned a destination list to the Transporter that is ready to be
moved on, the Track searches the Forward destination list and the Backward destination list of all
successors for the Destination you entered, and, as soon as it finds it, moves the Transporter on
to that successor. If the Track does not find the destination, it moves the Transporter to the next
successor in turn. Note that Plant Simulation terminates the search after it finds the first instance of
the Destination . Automatic routing is inactive when you did not enter a Destination for the Transporter
or when you entered an exit control for the Track.
When neither entered an exit control nor any destination lists for the successors, the Track uses the
Driving control of the Transporter to move it. When you do not enter any controls, the Track moves
the Transporters to each of the successors, to which it is connected, in turn.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Label
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Capacity
Length
Enter the Length of the Track. After you inserted it, Plant Simulation shows its length here. The
length of the Track and the sum of the lengths of all MUs located on it determine how many MUs it
can accommodate at any one time.
When Transfer length is active, the program adapts the graphic, when you change
the length of a Track, which only consists of a single straight segment. When the length cannot be
exactly displayed in pixels, the program adapts the length of the graphic. If you need to use the exact
length, clear transfer length.
You can only enter the length, when you deactivate transfer length or when the Track consists of
a single straight segment.
SimTalk:
Length
Related Topic
OccupiedLength
Width
Enter the width of the Track. The width only applies when the setting Transfer length is activated.
You can only enter the Curve width when you deactivate Transfer length. When you
activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Capacity
Enter the Capacity of the Track into this text box. The capacity is the maximum number of
Transporters that may be located on the Track as a whole or in part at any one time. The default
value -1 stands for an infinite capacity.
Related Topic
Capacity
Click this and select a List object in the dialog Select Object. Enter all destination objects into this
List object, which the Track can reach, when the Transporter moves in reverse on it.
The Transporter cannot only move forward but also in reverse on the Track, i.e., a
Transporter may enter the Track at its exit and leave it at its entrance. Moving forward or in
reverse are not properties of the object Track, but of the Transporter moving on it!
Plant Simulation evaluates the destination lists when a Transporter is to be moved on to a successor.
Plant Simulation searches for the destination of the Transporter in the destination lists of all
succeeding Tracks, which are directly connected with Connectors. If a succeeding Track is connected
via an Interface, this Interface should only have a single successor because Plant Simulation only
searches in the first successor of the Interface for a destination list.
SimTalk:
BwDestList
Click this and select a List object in the dialog Select Object. Enter all destination objects into this
List object, which the Track can reach, when the Transporter drives forward on it.
Plant Simulation evaluates the destination lists when a Transporter is to be moved on to a successor.
Plant Simulation searches for the destination of the Transporter in the destination lists of all
succeeding Tracks, which are directly connected with Connectors. If a succeeding Track is connected
via an Interface , this Interface should only have a single successor because Plant Simulation only
searches in the first successor of the Interface for a destination list.
SimTalk:
FwDestList
Tab Times
Define times as described under the Tab Times.
Related Topic
Recovery time
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Backward entrance control, the
Backward exit control, and the Pull control.
You can also select the Shift calendar, which controls the shifts during which the object works.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame , drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Sensors EntranceCtrl
BwDestList EntranceCtrlFront
FwDestList EntranceCtrlRear
BwExitCtrl ExitCtrl
BwExitCtrlFront ExitCtrlFront
BwExitCtrlRear ExitCtrlRear
BwExitCtrl PullCtrl
BwEntranceCtrl ShiftCalendarObject
BwEntranceCtrlFront
Select to which of its successors the object moves the MU on the Tab Exit.
Related Topics
Blocking
Strategy
Tab Statistics
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in the
Frame, and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
Tab Curve
Create curved Tracks for your simulation model as described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the MU, while it is located on the
Track during a simulation run.
• Click the icon of the Track with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Related Topics
Working with Curved Objects
Context Menu of Curved Objects
Methods of Curved Objects
Attributes of the Curved Objects
Set and Link Animation Points and Animation Lines
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
To view all of the methods and attributes of the Track, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getRouteLength
The method getRouteLength computes the shortest route from the Track designated by Path to the
target, designated by the parameter of data type object, and returns the length of this route. The
destination may either be a material flow object, which can be reached directly via Connectors, or a
destination, which you entered into a sensor.
As the route is intended for Transporters, Plant Simulation only takes objects of type Track
and TwoLaneTrack into consideration, when calculating the route.
Parameters
• The parameter Target of data type object designates the target.
• The optional parameter Backwards of data type boolean designates the direction in which Plant
Simulation looks for a route. True stands for backwards, false stands for forwards , which is the
default setting.
• The optional parameter Position of data type length designates the position on the Track at which
the search starts. If you do not enter the parameter, Plant Simulation starts searching at the end
of the Track if you search forwards, or it starts searching at the beginning if you search backwards
. This is particularly important if the Destination is a sensor, which is located on the Track itself.
• When you enter the optional parameter ObjectsAlongRoute of data type table, Plant Simulation
writes the objects along the route into the specified table.
• The optional parameter RouteWeightingAttribute of data type string sets the name of the attribute
for the route weighting attribute (RouteWeightingAttr) for automatic routing. If the parameter is
not passed, Plant Simulation does not weight the lengths of the routes.
Return Value
The return value has the data type length.
The method returns -1, when Plant Simulation did not find a route.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Store.Capacity
OccupiedLength
Syntax: Path.OccupiedLength
The read-only attribute OccupiedLength returns the part of the entire Length of the Track. designated
by Path, which is occupied by all Transporters located on it. Remember that each Transporters
located on the Track occupies part of the entire length available.
Return Value
The return value has the data type length.
Example: print MyTrack.OccupiedLength;
Related Topic
Length
To view all of the methods and attributes of the Track, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyTrack.Pause := true
BwDestList
Syntax: Path.BwDestList
The attribute BwDestList sets the path to the destination list for a Transporter driving in reverse on the
Track. The destination list contains all destinations that the Transporter can reach while driving in
reverse on this Track.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: MyTrack.BwDestList := myCardFile;
Related Topic
Backward destination list
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the maximum number of Transporters that may be located on the Track as
a whole or in part at any one time. Enter -1 for an infinite capacity.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: -- SimTalk 2.0 notation
if MyTrack.Capacity = -1
@.move(AELine)
end;
Related Topic
Capacity
FwDestList
Syntax: Path.FwDestList
The attribute FwDestList sets the path to the destination list for Transporters, which move forward
on the Track. The destination list contains all destinations that the Transporter can reach, while
moving in the forward direction on this Track.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: MyTrack.FwDestList := myCardFile1;
Related Topic
Forward destination list
Length
Syntax: Path.Length
The attribute Length sets the physical length of the Track. A Transporter enters the Track at position
0, and exits after covering the length which you enter here.
Related Topics
Length
OccupiedLength
Width
Syntax: Path.Width
The attribute Width sets the width of the Track designated by Path. The width only applies when the
setting Transfer length/TransferLengthToObject is activated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Related Topics
Width
Curve width
CurveWidth
Turnplate
Turnplate
You can use the Turnplate to model a rotating platform, which rotates the loaded part and ensures the
uniform orientation of the leaving part. A typical Syntax is in the package shipping industry where
all packages have to be rotated to a uniform direction so that a scanner can automatically read
the barcode holding the address information.
The Turnplate has a capacity of one, i.e., only one part can be located on it at any one time. The
part moves onto the Turnplate and the Turnplate starts rotating once the booking point of the part
has reached the center of rotation of the Turnplate. When the rotation is finished, the part exits
the Turnplate. The conveying direction on the Turnplate is unidirectional, i.e., the part cannot be
conveyed forwards and then backwards.
The length of the part does not matter as long as the part itself is not longer than the Turnplate itself.
The center of rotation is by default located in the center of the turnplate. The rotation takes up a
certain amount of time. You can enter the rotation time per rotation steps of 90 degrees. If you enter a
rotation time of 0, the part is rotated instantaneous without using up any time at all.
The rotation angle that you enter should be a multiple of 90 degrees. If you enter an angle other
than that, Plant Simulation rounds this angle to the next angle that is divisible by 90. You can also
enter a value greater than 360 degrees as long as it is divisible by 90. This way the turnplate can
rotate the part several times to simulate packing machines. By default the turnplate rotates 90
degrees clockwise.
After the turnplate has rotated the part and it has left it, the turntable returns to its starting position.
You can control the rotation animation steps, with which the Turnplate rotates, with the setting
Animate every x-th pixel. When you insert the Turnplate with its icon , the Number of Animation
Events controls these steps.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the Turnplate Shared Properties of the Material Flow Objects
Double-click the icon of the Turnplate, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Statistics OK
Label
Tab Attributes
Tab Attributes
Length Angle
Length
Enter the length of the Turnplate. After you inserted it, Plant Simulation shows its length here. The
Turnplate only rotates parts, which it can accommodate in their entirety, meaning that they are shorter
or as long as the value you enter here.
When Transfer length on the Tab Curve is active, the program adapts the graphic
of the Turnplate, when you change the length. When the length cannot be exactly displayed in
pixels, the program adapts the length of the graphic. If you need to use the exact length, clear
transfer length.
SimTalk:
Length
Width
Enter the width of the Turnplate. The width only applies when the setting Transfer length is activated.
You can only enter the Curve width when you deactivate Transfer length. When you
activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Speed
Enter the speed with which the Turnplate conveys the part, while it is located on the plate. You
can also enter -1 for an infinite speed.
SimTalk:
Speed
Enter the time it takes the Turnplate to rotate by 90 degrees. To rotate the part immediately, without
using up any time at all, enter a rotation time of 0.
SimTalk:
RotationTimePer90Degrees
Strategy
Select the strategy according to which the Turnplate rotates the part:
• Angle rotates the part according to the rotation Angle you enter.
• MU Attribute rotates the part according to a built-in or a user-defined attribute of the part. Click
Open List and enter the name of the attribute of the part, the value of the attribute, and the
rotation angle.
• MU Name rotates the part according to its name. Click Open List and enter the name of the
part and the rotation angle.
• Method rotates the part according to the strategy method. Within this method you have to call
the method rotatePart with the rotation angle as parameter. Enter the name of the method
into the text box Strategy method.
SimTalk:
Strategy
Angle
Enter the angle in degrees to which the Turnplate rotates the part. The rotation angle should be a
multiple of 90. If you enter an angle other than that, Plant Simulation rounds this angle to the next
angle that is divisible by 90. You can also enter a value greater than 360 degrees as long as it
is divisible by 90. This way the turnplate can rotate the part several times around its own axis to
simulate packing machines.
By default the turnplate rotates the part 90 degrees clockwise. To rotate the part counter-clockwise,
enter negative angles.
SimTalk:
Angle
Attribute type
Select the data type of the attribute that determines the rotation angle by which the Turnplate rotates
the part. This applies to Strategy > MU Attribute.
SimTalk:
AttributeType
Open List
For the Strategy > MU Attribute and MU Name you can open the exit list and enter the information
pertaining to the respective strategy.
To open the rotation angles list for the parts, click this.
For the Strategy > MU Attribute you can enter the name of the attribute of the part, the value of
the attribute, and the rotation angle.
For the Strategy > MU Name you can enter the name of the attribute of the part and the rotation angle.
SimTalk:
setAttributeList,
getAttributeList
Related Topics
Configure the Turnplate to Rotate the Part According to an Attribute
Data Held in Tabular Form in Attributes
Strategy method
Click this and select a Method object in the dialog Select Object. Enter the source code of the
strategy method which rotates the part around the rotation angle which you specify. The Turnplate
calls the control for the Strategy > Method as soon as the booking point of the part is located on
the center of rotation of the Turnplate. Within this method you have to call the method rotatePart
with the rotation angle as parameter.
The default strategy method looks like this in SimTalk 2.0 notation:
Example: ?.rotatePart(90)
The default strategy method looks like this in SimTalk 1.0 notation:
Example: is
do
?.rotatePart(90);
end;
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
StrategyCtrl
Automatic stop
To set the current speed of the Turnplate to 0 when it does not transport a part, select this. This might,
for example, be the case when it is empty or when it is blocked when a part cannot leave it.
When the speed of the Turnplate is 0, the energy state changes to Operational.
SimTalk:
AutomaticStop
Tab Times
Define times as described under the Tab Times.
Related Topics
Recovery time
Cycle time
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, and the Pull control.
You can also select the Shift calendar, which controls the shifts during which the object works.
Or you can click and select a Method in the dialog Select Object.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type Method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
In Curve mode the Turnplate shows sensors you defined on its graphic. To open the dialog Sensors,
hold down Alt and double-click the sensor.
Do not use an exit control for determining the target of the MU, as an exit control will be
called only when the MU is ready to exit the Turnplate. This point in time is too late though,
as the target has to be determined earlier in time.
Tab Statistics
To view the Rotation Time in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
Tab Curve
As opposed to the regular length-oriented objects, the Turnplate consists of a single segment formed
by two points, not of a sequence of straight and curved segments. You can apply all of the settings
described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the MU, while it is located on the
object Turntable during a simulation run.
• Click the icon of the Turnplate with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th
pixel.
The settings Number of Animation Events or Animate on every x-th pixel also apply
to the rotation.
Related Topics
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
To view all of the methods and attributes of the Turnplate, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getAttributeList
Syntax: Path.getAttributeList(Attributes:table)
The method getAttributeList returns the attribute list for the Strategy > MU Attribute according to
which the part leaves the Turnplate designated by Path. It contains the name of the attribute of the
part, the value of the attribute, and the rotation angle.
For the Strategy > MU Name it contains the name of the attribute of the part and the rotation angle.
Parameter
The parameter Attributes of data type table designates the name of the list.
Example: MyTurnplate.getAttributeList(MyAttributesList);
Related Topics
setAttributeList
Open List
rotatePart
Syntax: Path.rotatePart(Angle:integer)
The method rotatePart rotates the part on the Turnplate designed by Path by a certain angle.
Parameter
The parameter Angle of data type integer designates the angle. This angle has to be a positive
or a negative multiple of 90.
Example: ?.rotatePart(180);
setAttributeList
Syntax: Path.setAttributeList(Attributes:table)
The method setAttributeList sets the attribute list for the Strategy > MU Attribute according to which
the part leaves the Turnplate designated by Path. You can enter the name of the attribute of the
part, its value and the rotation angle .
For the Strategy >MU Name you can enter the name of the part and the rotation angle .
Parameter
The parameter Attributes of data type any designates the path to a list or a variable of the same data
type. Plant Simulation then copies the contents of the passed list to the target list of the Turnplate.
Example: MyTurnplate.setAttributeList(MyAttributes);
Related Topics
getAttributeList
Open List
Data Held in Tabular Form in Attributes
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Turnplate.StatRotationLoadedPortion
StatRotationLoadedPortion
Syntax: Path.StatRotationLoadedPortion
The read-only attribute StatRotationLoadedPortion returns the portion of the statistics collection
period during which the Turnplate designated by Path was rotating.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Turnplate
Statistics report, Rotation Time
StatRotationLoadedTime
Syntax: Path.StatRotationLoadedTime
The read-only attribute StatRotationLoadedTime returns the total time during which the Turnplate
designated by Path was rotating.
Return Value
The return value has the data type time.
Related Topic
Statistics report, Rotation Time
To view all of the methods and attributes of the Turnplate, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyTurnplate.angle := 180
Angle
Syntax: Path.Angle
The attribute Angle sets the rotation angle in degrees to which the Turnplate rotates the part. The
rotation angle should be a multiple of 90 degrees. If you enter an angle other than that, Plant
Simulation rounds this angle to the next angle that is divisible by 90. You can also enter a value
greater than 360 degrees as long as it is divisible by 90. This way the turnplate can rotate the part
several times to simulate packing machines.
By default the turnplate rotates 90 degrees clockwise. To rotate counter-clockwise, enter negative
angles.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Related Topic
Angle
AttributeType
Syntax: Path.AttributeType
The attribute AttributeType sets the Attribute type of the Turnplate for the Strategy > MU Attribute.
This attribute sets the rotation angle by which the Turnplate rotates the part.
Related Topic
Attribute type
AutomaticStop
Syntax: Path.AutomaticStop
The attribute AutomaticStop sets the current speed of the Turnplate to 0 when it does not transport
a part. This might, for example, be the case when it is empty or when it is blocked when a part
cannot leave it.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTurnplate.AutomaticStop := true;
Related Topic
Automatic stop
Length
Syntax: Path.Length
The attribute Length sets the length of the Turnplate. The Turnplate only rotates parts, which it can
accommodate in their entirety, meaning that they are shorter or as long as the value you enter here.
When Transfer length on the Tab Curve is active, the program adapts the graphic
of the Turnplate, when you change the length. When the length cannot be exactly displayed in pixels,
the program adapts the length of the graphic. If you need to use the exact length, clear transfer length .
Data Type of Value You Can Assign
You can assign a value of data type length.
Example: MyTurnplate.Length := 2.0; -- meters
Related Topic
Length
RotationTimePer90Degrees
Syntax: Path.RotationTimePer90Degrees
The attribute RotationTimePer90Degrees sets the time it takes the Turnplate to rotate by a rotation
step of 90 degrees.
To rotate the part immediately, without using up any time at all, enter a rotation time of 0.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MyTurnplate.RotationTimePer90Degrees := 0.75;
Related Topic
Rotation time per 90°
Speed
Syntax: Path.RotationTimePer90Degrees
The attribute Speed sets the speed, with which the Turnplate transports the part, while it is located on
the plate. You can also enter -1 for an infinite speed.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: MyTurnplate.RotationTimePer90Degrees := 0.75;
Related Topic
Speed
Strategy
Syntax: Path.Strategy
The attribute Strategy sets the strategy according to which the Turnplate rotates the part:
• Angle rotates the part according to the rotation Angle you enter.
• MU Attribute rotates the part according to a built-in or a user-defined attribute of the part. Click
Open List and enter the name of the attribute of the part, the value of the attribute, and the
rotation angle.
• MU Name rotates the part according to its name. Click Open List and enter the name of the
attribute of the part and the rotation angle.
• Method rotates the part according to the strategy method. Within this method you have to call
the method rotatePart with the rotation angle as parameter. Enter the name of the method
into the text box Strategy method.
Related Topic
Strategy
StrategyCtrl
Syntax: Path.StrategyCtrl
The attribute StrategyCtrl sets the name of the method which contains the source code of the
strategy method which rotates the part around the rotation angle you specify. The Turnplate
calls the control for the Strategy > Method as soon as the booking point of the part is located on
the center of rotation of the Turnplate. Within this method you have to call the method rotatePart
with the rotation angle as parameter.
The default strategy method looks like this:
Example: ?.rotatePart(90)
Related Topic
Strategy method
Width
Syntax: Path.Width
The attribute Width sets the width of the Turnplate designated by Path. The width only applies when
the setting Transfer length/TransferLengthToObject is activated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Example: MyTurnplate.Width := 6
Related Topics
Width
Curve width
CurveWidth
Turntable
Turntable
You can use the Turntable to model a rotating platform, which moves the part onto one of several
connected material flow objects and/or turns it around. The Turntable has a capacity of one, i.e. only
one part can be located on it at any one time.
The Turntable moves the part on to its successors within the flow of materials like this:
• The part arrives at the exit of the predecessor. It notifies the turntable that it wants to be rotated.
• The turntable then determines if it accepts the part for rotating it or not.
o Without a pull control, the turntable will be notified that a part wants to be rotated and it
accepts it.
o When you entered a Pull control, the turntable executes it, and when the part is selected, it
will be rotated.
• The turntable rotates to the respective predecessor, and the part moves onto the turntable and
drives onto it.
• Once one of the conditions below is met, the turntable looks for the target station and starts
rotating towards it:
o When the part has completely entered the turntable.
o When the part has reached the rotation point on the table.
o When the part is located in the center of the turntable, i.e., when both ends of the part have
the same distance from the ends of the turntable.
o When you want the turntable to not rotate automatically, but only when the part has reached
a user-defined sensor, select User-defined with Sensor. In the sensor control, you have to
tell the turntable to call the method setDestination.
• For determining the target station the turntable either uses its default exit strategies or the Target
control. Within this Method you set the target station with the method setDestination.
Do not use an exit control for determining the target of the part, as an exit control will
be called only when the part is ready to exit the Turntable. This point in time is too late
though, as the target has to be determined earlier in time.
• Then the turntable rotates to the target and the part moves on, once the turntable has reached
the final position of the rotation. Only then a new part can move onto the Turntable.
When an object, from which/onto which the part is to be moved is not present in the
respective angle table, the Turntable checks the Exit Angle Table for an entering part
or the Entry Angle Table for a leaving part, if the object is present there and uses
that angle. If the object is not contained in the respective table, the Turntable uses
the angle from the layout in the Frame.
You can control the rotation animation steps, with which the Turntable rotates, with the setting
Animate every x-th pixel. When you insert the Turntable with its icon , the Number of Animation
Events controls these steps.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the Turntable Shared Properties of the Material Flow Objects
Double-click the icon of the Turntable, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Material Flow in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Statistics OK
Tab Attributes
Tab Attributes
Length
Enter the length of the Turntable. After you inserted it, Plant Simulation shows its length here. The
Turntable only rotates parts, which are shorter or as long as the value, which you enter here.
When Transfer length on the Tab Curve is active, the program adapts the graphic
of the Turntable, when you change the length. When the length cannot be exactly displayed in
pixels, the program adapts the length of the graphic. If you need to use the exact length, clear
transfer length.
SimTalk:
Length
Related Topic
OccupiedLength
Width
Enter the width of the Turntable in meters. The width only applies when the setting Transfer length is
activated.
You can only enter the Curve width when you deactivate Transfer length. When you
activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Rotation point
Enter the position of the fulcrum around which the Turntable rotates. You can enter a value between 0
and the length of the Turntable. 0 designates the point at which you start inserting the Turntable.
The center of rotation is the fulcrum around which the table rotates. The start point is the point
which you click, when you start inserting the Turntable. The end point is the point which you click,
when you finish inserting the Turntable. The circle in the screenshot below shows all points which the
turntable can reach with its end point, when it rotates around the fulcrum.
SimTalk:
RotationPoint
Conveyor speed
Enter the speed with which the Turntable transports the part, while it is located on the table.
SimTalk:
Speed
Rotate when
Select, when the Turntable rotates towards its target object:
• When the part has completely entered the Turntable.
• When the part has reached the rotation point/the fulcrum on the table.
o When the part is located in the center of the Turntable, i.e., when both ends of the part have
the same distance from the edges of the turntable.
o When you want the turntable to not rotate automatically, but only when the part has reached
a user-defined sensor, select User-defined with Sensor. In the sensor control, you have to
tell the turntable to call the method setDestination.
SimTalk:
RotateWhen
Go to default position
Select this, if you want the Turntable to return to its default position, when the part has left the
Turntable and when no new part is ready to be rotated.
When you activated the check box, the Turntable uses the Default angle, when you reset
the model.
Then, enter the default angle at which the default position is located.
SimTalk:
GoToDefaultPosition
DefaultAngle
Default angle
Enter the angle in degrees to which the Turntable rotates, when you selected Go to default position.
The default position is located at this angle. If you would like the Turntable to rotate to the side on
which the start point is located, add 180 degrees to this angle.
SimTalk:
DefaultAngle,
GoToDefaultPosition
Type in the name of the user-defined attribute of the part, which triggers its rotation, so that it exits
the table driving backwards. This attribute can be an attribute of data type boolean or a Method
which returns a value of data type boolean. This setting will only be evaluated, when you select Any
as the side in the Exit Angle Table.
SimTalk:
MURotationAttribute
Automatic stop
To set the current speed of the Turntable to 0 when it does not transport a part, select this. This might,
for example, be the case when it is empty or when it is blocked when a part cannot leave it.
When the speed of the Turntable is 0, the energy state changes to Operational.
SimTalk:
AutomaticStop
To open the table of the entry angles at which the MUs move onto the Turntable, click this. You
can view or fine-tune these settings:
• The angle at which the Connector from this predecessor connects to the Turntable.
o When you select Start Point, the Turntable turns with the side, at which you started inserting
the Turntable, towards this predecessor.
o When you select End Point, the Turntable turns with the side, at which you finished inserting
the Turntable, towards this predecessor.
o When you select Any, the Turntable computes the smallest angle and turns with this
calculated side towards this predecessor.
The button Entry Angle Table is only active after you connected the Turntable with
its predecessor.
If you want the Turntable to compute the angles at which you connected it to its predecessors, click it
with the right mouse button and select Calculate Angles.
SimTalk:
setEntryAngles,
getEntryAngles
To open the table of the exit angles at which the parts leave the Turntable, click this. You can view
or fine-tune these settings:
• The number of the successor.
• The angle the Connector from the Turntable connects to this successor.
o When you select End Point, the Turntable turns with the side, at which you finished inserting
the Turntable towards this successor.
o When you select Any, the Turntable computes the smallest angle and turns with this
calculated side towards this successor. With this setting the part can leave backwards or
forwards, depending on the side which can be reached with the smallest angle.
o When you select MU keeps Direction, the Turntable turns this side of the Turntable towards
this successor which makes the part keep its direction.
• When you select MU leaves backwards, the Turntable turns this side of the Turntable towards
this successor so that the Turntable turns the part around and it leaves moving backwards.
Compare MU leaves backwards depends on.
The button Exit Angle Table is only active after you connected the Turntable with
its successor.
If you want the Turntable to compute the angles at which you connected it to its successors, click it
with the right mouse button and select Calculate Angles.
SimTalk:
setExitAngles,
getExitAngles
Tab Times
Define times as described under the Tab Times.
Related Topics
Recovery time
Cycle time
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Pull control, and the Target control.
You can also select the Shift calendar, which controls the shifts during which the object works.
Or you can click and select a Method in the dialog Select Object.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Do not use an exit control for determining the target of the MU, as an exit control will be
called only when the MU is ready to exit the Turntable. This point in time is too late though,
as the target has to be determined earlier in time.
Target control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
target control in which you determine the successor to which the MU is moved. The Turntable calls
the control as soon as the part has completely moved onto the turntable or has reached the center of
rotation. As opposed to the exit control, the part is not ready to exit the object yet. You have to set the
destination object with the method setDestination.
The standard target control looks like this:
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Do not use an exit control for determining the target of the MU, as an exit control will
be called only when the MU is ready to exit the Turntable. This point in time is too late
though, as the target has to be determined earlier in time.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
TargetCtrl
Related Topics
setDestination
getDestination
Tab Statistics
Statistics is described under the Tab Statistics.
In addition, the Turntable collects these statistical values:
To view the Rotation Time in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
Tab Curve
As opposed to the regular length-oriented objects, the Turntable consists of a single straight segment
formed by two points, not of a sequence of straight and curved segments. You can apply all of the
settings described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the MU, while it is located on the
object Turntable during a simulation run.
• Click the icon of the Turntable with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every
x-th pixel.
The settings Number of Animation Events or Animate on every x-th pixel also
apply to the rotation.
Related Topics
Working with Curved Objects
Context Menu of Curved Objects
Methods of Curved Objects
Attributes of the Curved Objects
Set and Link Animation Points and Animation Lines
Tab Energy
Standby State
Off
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Edit Controls
Edit Observers
3D
Contents
Index
Help on Object
To view all of the methods and attributes of the Turntable, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getDestination
Syntax: Path.getDestination → object
The method getDestination returns the destination object to which the Turntable designated by
Path moves the MU.
You will usually use getDestination in the Target control/TargetCtrl.
Return Value
The return value has the data type object.
Example: MyStation := ?.getDestination;
Related Topic
setDestination
getEntryAngles
Syntax: Path.getEntryAngles(EntryAnglesTable:table)
The method getEntryAngles returns the Entry Angle Table of the Turntable designated by Path and
writes it into a table.
Parameter
The parameter EntryAnglesTable of data type table designates the name of the table.
The table contains the number of the predecessor, its name, at which angle the Connector from this
predecessor connects to the Turntable and which side turns toward the predecessor.
Related Topics
Entry Angle Table
setEntryAngles
getExitAngles
Syntax: Path.getExitAngles(ExitAnglesTable:table)
The method getExitAngles returns the Exit Angle Table of the Turntable designated by Path and
writes it into a table.
Parameter
The parameter ExitAnglesTable of data type table designates the name of the table.
The table contains the number of the successor, its name, at which angle the Connector from the
Turntable connects to this successor, and which side turns towards the successor.
Related Topics
Exit Angle Table
setExitAngles
goToAngle
Syntax: Path.goToAngle(Angle:real)
The method goToAngle sets the angle to which the side of the end point of the Turntable designated
by Path rotates. This only applies, when no MU is located on it and when no MU is waiting for it.
Parameter
The parameter Angle of data type real designates the angle.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: ?.goToAngle(45)
setDestination
Syntax: Path.setDestination(Destination:object)
The method setDestination sets the destination object to which the Turntable designated by Path
moves the MU. You will usually use setDestination in the Target control/TargetCtrl.
Parameter
The parameter Destination of data type object designates the destination object.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
if @.Name = "PartA"
-- the identifier "@" points to the MU, the part in our case,
-- which triggers the call of the current method in a control
?.setDestination(LinePartA)
-- the identifier "?" points to the object which
-- calls the method, the turntable in our case
else
?.setDestination(LinePartB)
end
?.setDestination(LinePartA);
-- the identifier "?" points to the object which
-- calls the method, the turntable in our case
else
?.setDestination(LinePartB);
end;
end;
Related Topic
getDestination
setEntryAngles
Syntax: Path.setEntryAngles(EntryAnglesTable:table)
The method setEntryAngles sets the name of the Entry Angle Table of the Turntable designated by
Path.
Parameter
The parameter EntryAnglesTable of data type table designates the name of the table.
You can enter these settings:
• The number of the predecessor.
• The angle at which the Connector from this predecessor connects to the Turntable.
o When you select End Point, the Turntable turns with the side, at which you finished inserting
the Turntable, towards this predecessor.
o When you select Any, the Turntable computes the smallest angle and turns with this
calculated side towards this predecessor.
Related Topics
Entry Angle Table
getEntryAngles
setExitAngles
Syntax: Path.setExitAngles(ExitAnglesTable:table)
The method setExitAngles sets the name of the Exit Angle Table of the Turntable designated by Path.
Parameter
The parameter ExitAnglesTable of data type table designates the name of the table.
You can enter these settings:
• The number of the successor.
• The angle the Connector from the Turntable connects to this successor.
o When you select End Point, the Turntable turns with the side, at which you finished inserting
the Turntable towards this successor.
o When you select Any, the Turntable computes the smallest angle and turns with this
calculated side towards this successor. With this setting the MU can leave backwards or
forwards, depending on the side which can be reached with the smallest angle.
o When you select MU keeps Direction, the Turntable turns this side of the Turntable towards
this successor which makes the MU keep its direction.
o When you select MU leaves backwards, the Turntable turns this side of the Turntable
towards this successor so that the Turntable turns the MU around and it leaves moving
backwards.
Related Topics
Exit Angle Table
getExitAngles
stopMU
Example: Path.stopMU
The method stopMU stops the MU while the Turntable designated by Path is still rotating. Once the
rotation is finished, the MU automatically moves again. You might use this method to stop the MU
before it reaches the end of the table to prevent collisions for example. You will mostly use the
method in a sensor control.
Example: MyTurntable.stopMU;
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print Turntable.StatRotationEmptyPortion
StatRotationEmptyPortion
Syntax: Path.StatRotationEmptyPortion
The read-only attribute StatRotationEmptyPortion returns the portion of the statistics collection period
during which the Turntable designated by Path was rotating without a part being located on the table.
Return Value
Related Topics
Tab Statistics of the Turntable
Statistics report, Rotation Time
StatRotationEmptyTime
Syntax: Path.StatRotationEmptyTime
The read-only attribute StatRotationEmptyTime returns the total time during which the Turntable
designated by Path was rotating Empty, i.e., no part being located on the table.
Return Value
The return value has the data type time.
Example: print MyTurntable.StatRotationEmptyTime
Related Topic
Statistics report, Rotation Time
StatRotationLoadedPortion
Syntax: Path.StatRotationEmptyPortion
The read-only attribute StatRotationLoadedPortion returns the portion of the statistics collection period
during which the Turntable designated by Path was rotating with a part being located on the table.
Return Value
The return value has the data type real.
Example: print MyTurntable.StatRotationEmptyPortion;
Related Topics
Tab Statistics of the Turntable
Statistics report, Rotation Time
StatRotationLoadedTime
Syntax: Path.StatRotationLoadedTime
The read-only attribute StatRotationLoadedTime returns the total time during which the Turntable
designated by Path was rotating with a part being located on the table.
Return Value
Related Topic
Statistics report, Rotation Time
To view all of the methods and attributes of the Turntable, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyTurntable.GoToDefaultPosition := false
AutomaticStop
Syntax: Path.AutomaticStop
The attribute AutomaticStop sets the current speed of the Turntable to 0 when it does not transport
a part. This might, for example, be the case when it is empty or when it is blocked when a part
cannot leave it.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTurnplate.AutomaticStop := true
Related Topic
Automatic stop
DefaultAngle
Syntax: Path.DefaultAngle
The attribute DefaultAngle sets the rotation angle in degrees to which the side of the end point of the
Turntable rotates, when you set GoToDefaultPosition (Go to default position) to true. If you would like
the Turntable to rotate to the side on which the start point is located, add 180° to this angle.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyTurntable.DefaultAngle := 5;
Related Topic
Default angle
GoToDefaultPosition
Syntax: Path.GoToDefaultPosition
The attribute GoToDefaultPosition sets if you want the Turntable to return to its default position, when
the part has left the Turntable, and when no new part is ready to be rotated (true) or not (false).
When you set the attribute to true, the Turntable uses the attribute DefaultAngle (Default
angle), when you reset the model.
Related Topic
Go to default position
Length
Syntax: Path.Length
Related Topic
Length
MURotationAttribute
Syntax: Path.MURotationAttribute
The attribute MURotationAttribute sets name of the user-defined attribute of the MU which triggers
its rotation. This attribute can be an attribute of data type boolean or a Method, which returns a
value of data type boolean. This attribute will only be evaluated, when you select Any as the side
in the Exit Angle Table/method setExitAngles.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyTurntable.MURotationAttribute := "MyRotationAttribute";
Related Topic
Exit Angle Table
RotateWhen
Syntax: Path.RotateWhen
The attribute RotateWhen (Rotation point) sets, when the Turntable rotates towards it target station.
You can enter:
• Completely entered, i.e., when the MU has completely entered the Turntable.
• Rotation point reached, i.e., when the MU has reached the center of rotation on the table.
• Centered, i.e., when both ends of the MU have the same distance from the ends of the turntable.
• User-defined with Sensor. Here the Turntable does not rotate automatically, but only when the
MU has reached a user-defined sensor. In the sensor control, you have to tell the Turntable
to call the method setDestination
Related Topic
Strategy
RotationPoint
Syntax: Path.RotationPoint
The attribute RotationPoint (Rotation point) sets the position of the point around which the Turntable
rotates. You can enter a value between 0 and the length of the Turntable. 0 designates the point at
which you start inserting the Turntable.
Data Type of Value You Can Assign
You can assign a value of data type length.
Example: MyTurntable.RotationPoint := 4
Related Topic
Rotation point
Speed
Syntax: Path.Speed
The attribute Speed sets the speed, with which the Turntable rotates. You can also enter -1 for
an infinite speed.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: MyTurntable.Speed := 1.5
Related Topic
Conveyor speed
RotationTimePer90Degrees
Syntax: Path.RotationTimePer90Degrees
The attribute RotationTimePer90Degrees sets the time it takes the Turntable designated by Path to
rotate by 90 degrees.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MyTurntable.RotationTimePer90Degrees := 2
Related Topic
Rotation time per 90°
TargetCtrl
Syntax: Path.TargetCtrl
The attribute TargetCtrl designates a Method object, which is called as soon as the part has
completely moved onto the turntable or has reached the center of rotation. In the Target control you
determine the successor to which the Turntable moves the MU. As opposed to the exit control, the part
is not ready to exit the object yet. You have to set the destination object in the method setDestination.
Data Type of Value You Can Assign
You can assign a value of data type object.
?.setDestination(LinePartA)
-- the identifier "?" points to the object which
-- calls the method, the turntable in our case
else
?.setDestination(LinePartB)
end
?.setDestination(LinePartA);
-- the identifier "?" points to the object which
-- calls the method, the turntable in our case
else
?.setDestination(LinePartB);
end;
end;
Related Topic
Target control
Width
Syntax: Path.Width
The attribute Width sets the width in meters of the Turntable designated by Path. The Width only
applies when the setting Transfer length/TransferLengthToObject is activated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Example: MyTurntable.Width := 4
Related Topics
Width
Curve width
CurveWidth
TwoLaneTrack
TwoLaneTrack
You can use the TwoLaneTrack to model a part of a transport line with two lanes on which traffic
moves in opposing directions. It also provides automatic routing.
The Transporter is the only moving material flow object that can use the TwoLaneTracks in a
meaningful way. You might, for example, utilize both to model an AGV (automated guided vehicle)
system.
The distance, which the Transporter has to travel on the TwoLaneTrack—defined by the Length of
lane A and the Length of lane B of the TwoLaneTrack, the Transporter’sMU length, and its speed,
defined by the Speed—determine the time, which the Transporter remains on the TwoLaneTrack.
As opposed to the other material flow objects, Plant Simulation uses the actual length , which you
enter, during your simulation run. One Transporter may not pass another one moving in front of it.
Transporters thus retain their order of moving onto and leaving the TwoLaneTrack. Each lane of the
TwoLaneTrack may have its own length to realistically model the length of the lanes, when the
TwoLaneTrack turns the corner. In that case the outside lane is longer than the inside lane.
When several Transporters travel along the TwoLaneTrack at a different speed, and a faster one
collides with a slower one, Plant Simulation activates the collision control of the faster Transporter
and automatically reduces its speed to the speed of the slower Transporter.
The Transporter can drive forwards and Backwards on the TwoLaneTrack, i.e., it drives onto the
TwoLaneTrack at its exit and exits it at its entrance. Note that driving forwards and backwards are
not properties of the TwoLaneTrack, but of the Transporters, which drive on it.
The maximum capacity of the TwoLaneTrack is defined by its length and the lengths of the individual
Transporters moving on it, i.e., a TwoLaneTrack that is three yards long accepts three Transporters of
one yard each at the most. With the Capacity you can further restrict the number of Transporters
located on the TwoLaneTrack.
The TwoLaneTrack supports bidirectional traffic. You can thus select if right-hand traffic or left-hand
traffic prevails.
• With its icon, when you deactivate Curve mode by clearing the check box . Then, it
• You can control how often the part is shown on the TwoLaneTrack with the setting Animate every
x-th pixel. When you insert the TwoLaneTrack with its icon , the Number of Animation
Events controls these steps.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Routing
To facilitate a branching TwoLaneTrack, you can use any of these controls to move a Transporter
on to the succeeding object:
• The Exit control of the TwoLaneTrack.
The exit control has the highest priority. When you did not define an exit control and when you
entered a destination list for the Transporter, automatic routing moves the Transporter on to the
proper successor, employing the destination list of the successors.
You can also assign a Destination to the Transporter. The TwoLaneTrack has a Forward destination
list and Backward destination list, into which you enter all destinations that the Transporter can reach,
when it moves on the TwoLaneTrack. When you assigned a destination list to the Transporter that is
ready to be moved on, the TwoLaneTrack searches the Forward destination list and the Backward
destination list of all successors for the Destination you entered, and, as soon as it finds it, moves
the Transporter on to that successor. If the TwoLaneTrack does not find the destination, it moves
the Transporter to the next successor in turn. Note that Plant Simulation terminates the search after
it finds the first instance of the Destination. Automatic routing is inactive when you did not enter a
Destination for the Transporter or when you entered an exit control for the TwoLaneTrack.
When you did not enter an exit control and destination lists for the successors, the TwoLaneTrack
uses the Driving control of the Transporter to move it. When you do not enter any controls, the Track
moves the Transporters to each of the successors, to which it is connected, in turn.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Tab Curve OK
Paused/Planned/Unplanned
Tab Attributes
Tab Attributes
Lane A
Lane A
You can select these settings for lane A: Length, Entrance locked, and Exit locked.
Length
Enter the Length of lane A of the TwoLaneTrack. After you inserted it, Plant Simulation shows
its length here. The length of the lanes of the TwoLaneTrack and the sum of the lengths of all
Transporters located on it determine how many Transporters it can accommodate at any one time.
Each lane of the TwoLaneTrack may have its own length to realistically model the length of the lanes,
when the TwoLaneTrack turns a corner. In that case the outside lane is longer than the inside lane.
When Transfer length is active, the program adapts the graphic, when you change
the length of lane A of a TwoLaneTrack, which only consists of a single straight segment. When the
length cannot be exactly displayed in pixels, the program adapts the length of the graphic. If you
need to use the exact length, clear transfer length.
You can only enter the Length of lane A, when you deactivate transfer length or when the
TwoLaneTrack consists of a single straight segment.
SimTalk:
A.Length
A.OccupiedLength
Entrance locked
To close the entrance of lane A, select this. The TwoLaneTrack will finish transporting the
Transporters already located on it. It does not accept any additional Transporters and enters those
into the Forward Blocking List of lane A.
Transporting starts again, when you clear the check box. Note that the first Transporter in the
Forward Blocking List of lane A is going to be moved on first.
SimTalk:
A.EntranceLocked
Exit locked
To close the exit of lane A, select this. The TwoLaneTrack prevents Transporters from being moved
on to the successors in the material flow and enters them into the Exit Blocking List of lane A of the
TwoLaneTrack.
Once the exit is unlocked again, the TwoLaneTrack moves the first Transporter in the Exit Blocking
List of lane A on to its successor.
The Transporter does not trigger the exit control, when you selected the check box Exit
locked.
SimTalk:
A. ExitLocked
Lane B
Lane B
You can select these settings for lane B: Length, Entrance locked, and Exit locked.
Length
Enter the Length of lane B of the TwoLaneTrack. After you inserted it, Plant Simulation shows
its length here. The length of the lanes of the TwoLaneTrack and the sum of the lengths of all
Transporters located on it determine how many Transporters it can accommodate at any one time.
Each lane of the TwoLaneTrack may have its own length to realistically model the length of the lanes,
when the TwoLaneTrack turns a corner. In that case the outside lane is longer than the inside lane.
When Transfer length is active, the program adapts the graphic, when you change
the length of lane B of a TwoLaneTrack, which only consists of a single straight segment. When the
length cannot be exactly displayed in pixels, the program adapts the length of the graphic. If you
need to use the exact length, clear transfer length.
You can only enter the length of lane B, when you deactivate transfer length or when the
TwoLaneTrack consists of a single straight segment.
SimTalk:
B. Length
B. OccupiedLength
Entrance locked
To close the entrance of lane B, select this. The TwoLaneTrack will finish transporting the
Transporters already located on it. It does not accept any additional Transporters and enters those
into the Forward Blocking List of lane B.
Transporting starts again, when you clear the check box. Note that the first Transporter in the
Forward Blocking List of lane B is going to be moved on first.
SimTalk:
B.EntranceLocked
Exit locked
To close the exit of lane B, select this. The TwoLaneTrack prevents Transporters from being moved
on to the successors in the material flow and enters them into the Exit Blocking List of lane B of the
TwoLaneTrack.
Once the exit is unlocked again, the TwoLaneTrack moves the first Transporter in the Exit Blocking
List of lane B on to its successor.
The Transporter does not trigger the exit control, when you selected the check box Exit
locked.
SimTalk:
B.ExitLocked
Capacity
Enter the Capacity of the TwoLaneTrack into this text box. The capacity is the maximum number
of Transporters that may be located on both lanes TwoLaneTrack as a whole or in part at any one
time. Enter -1 for an infinite capacity.
Related Topic
Capacity
Width
Enter the width of both lanes of the TwoLaneTrack in meters. The width only applies when the
setting Transfer length is activated.
You can only enter the Curve width when you deactivate Transfer length. When you
activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Track pitch
Enter the track pitch between lane A and lane B. The track pitch is the distance between the center
lines of the two lanes of the two-lane track.
SimTalk:
TrackPitch
Select the side of the TwoLaneTrack on which traffic moves: Right-hand traffic or left-hand traffic.
SimTalk:
Traffic
Destination list A
Click this and select a List object in the dialog Select Object. Enter all destination objects into this
List object, which the TwoLaneTrack can reach, when the Transporter drives forward on lane A. This
forward destination list of lane A concurrently is the backward destination list of lane B.
Plant Simulation evaluates the destination lists when a Transporter is to be moved on to a successor.
Plant Simulation searches for the destination of the Transporter in the destination lists of all
succeeding Tracks, which are directly connected with Connectors. If a succeeding Track is connected
via an Interface, this Interface should only have a single successor because Plant Simulation only
searches in the first successor of the Interface for a destination list.
SimTalk:
DestListA
Destination list B
Click this and select a List object in the dialog Select Object. Enter all destination objects into this
List object, which the TwoLaneTrack can reach, when the Transporter drives forward on lane B. This
forward destination list of lane B concurrently is the backward destination list of lane A.
Plant Simulation evaluates the destination lists when a Transporter is to be moved on to a successor.
Plant Simulation searches for the destination of the Transporter in the destination lists of all
succeeding Tracks, which are directly connected with Connectors. If a succeeding Track is connected
via an Interface, this Interface should only have a single successor because Plant Simulation only
searches in the first successor of the Interface for a destination list.
SimTalk:
DestListB
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Backward entrance control, the
Backward exit control, and the Pull control for lane A and/or for lane B of the TwoLaneTrack.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
In addition, you can insert Sensors on each lane separately or on both lanes. The TwoLaneTrack
provides additional settings to accommodate the two lanes. The button Sensors shows how many
sensors you inserted for this lane. Clicking the button shows the Sensor List, which displays all
sensors you defined for the two lanes. In Curve mode the TwoLaneTrack shows sensors, which
you defined, on its graphic in the Frame window. To open the dialog Sensors, hold down Alt and
double-click the sensor.
You can also select the Shift calendar, which controls the shifts during which the object works.
Related Topics
Sensors EntranceCtrl
BwDestList EntranceCtrlFront
FwDestList EntranceCtrlRear
BwExitCtrl ExitCtrl
BwExitCtrlFront ExitCtrlFront
BwExitCtrlRear ExitCtrlRear
BwEntranceCtrl PullCtrl
BwEntranceCtrlFront ShiftCalendarObject
BwEntranceCtrlRear
Tab Statistics
Related Topics
Resource statistics
Resource type
Tab Curve
Create curved TwoLaneTracks for your simulation model as described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the Transporter, while it is located
on the TwoLaneTrack during a simulation run.
• Click the icon of the TwoLaneTrack with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Related Topics
Working with Curved Objects
Context Menu of Curved Objects
Methods of Curved Objects
Attributes of the Curved Objects
Set and Link Animation Points and Animation Lines
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
A number of methods, which the TwoLaneTrack shares with the other material flow objects,
apply to a lane, instead of to the entire object.
To view all of the methods and attributes of the TwoLaneTrack, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
bwBlockList
Syntax: Path.A.bwBlockList[(BackwardBlockingList:table]) → any
Path.B.bwBlockList[(BackwardBlockingList:table]) → any
The method bwBlockList returns the blocking list in the backward direction of the specified lane of the
TwoLaneTrack designated by Path.
• If you specify the optional parameter of data type table, the method writes the objects contained
in the Backward Blocking List into this list.
• If you do not specify the parameter, the method returns an array containing the objects contained
in the Backward Blocking List. The array is one-dimensional and only contains the objects in the
blocking list. If you need the start times of the blockages, which are contained in the blocking
table, you can query them from the object with the attribute BlockingStarttime.
For objects that have more than one stations next to each other, such as the ParallelProc and the
Store, the blocking table also contains the position of the station for which a part is entered into
the table. If you need this information you still have to pass a table instead of using an array.
Parameter
The optional parameter BackwardBlockingList of data type table designates the name of the table,
which can be a TableFile or a local variable, into which the method writes the values.
Plant Simulation automatically generates the format of this table with two columns. Column 1 has the
data type object and contains all Transporters that unsuccessfully tried to move to the object. Column
2 contains the simulation time at which the Transporters attempted to enter the object. The number
of rows matches the number of Transporters in the blocking list.
Return Value
The return value has the data type any.
If you do not specify the optional parameter, the method returns an array containing all MUs which
are contained in the Backward Blocking List of the TwoLaneTrack on the specified lane.
Example: MyTwoLaneTrack.B.bwBlocklist(TableFile);
Related Topic
Backward Blocking List
contentsList
Syntax: Path.A.contentsList[(ContentsList:table]) → any
Path.B.contentsList[(ContentsList:table]) → any
The method contentsList returns the entire contents, i.e., all Transporters which are located on the
specified lane of the TwoLaneTrack designated by Path.
• If you specify the optional parameter of data type table, the method writes the objects contained
in the Contents list into this list.
• If you do not specify the parameter, the method returns an array containing the objects contained
in the Contents list.
Parameter
The optional parameter ContentsList of data type table designates the name of the table. Plant
Simulation automatically generates the format of this table and deletes any existing format and
contents of the table. The contents list is a table with three columns. The data type of column 1 is
object, of the second and third length. Column 1 contains the path to the Transporters, column 2
the start position of the MU part, and column 3 the end position in the length unit you specified. The
number of rows matches the number of Transporter parts located on the object.
Return Value
The return value has the data type any.
If you do not specify the optional parameter, the method returns an array containing all MUs which
are located on the TwoLaneTrack on the specified lane.
Example: MyTwoLaneTrack.A.contentsList(TableFile);
Related Topic
Contents
ContentsList of the material flow objects
exitBlockList
The method exitBlockList returns the exit blocking list of the specified lane of the TwoLaneTrack
designated by Path.
• If you specify the optional parameter of data type table, the method writes the objects contained
in the Exit Blocking List into this list.
• If you do not specify the parameter, the method returns an array containing the objects contained
in the Exit Blocking List. The array is one-dimensional and only contains the objects in the
blocking list. If you need the start times of the blockages, which are contained in the blocking
table, you can query them from the object with the attribute BlockingStarttime.
Parameter
The optional parameter ExitBlockingList of data type table designates the name of the table, which
can be a TableFile or a local variable, into which the method writes the values.
Plant Simulation automatically generates the format of this table with two columns. Column 1 has the
data type object and contains the Transporters that unsuccessfully tried to exit the object. Column 2
contains the simulation time at which the Transporters attempted to enter the object.
Return Value
If you do not specify the optional parameter, the method returns an array of data type object containing
all MUs which are contained in the Exit Blocking List of the TwoLaneTrack on the specified lane.
Example: MyTwoLaneTrack.B.exitBlockList(TableFile)
Related Topic
Exit Blocking List
fwBlockList
The method fwBlockList returns the blocking list in the forward direction of the specified lane of the
TwoLaneTrack designated by Path.
• If you specify the optional parameter of data type table, the method writes the objects contained
in the Forward Blocking List into this list.
• If you do not specify the parameter, the method returns an array containing the objects contained
in the Forward Blocking List. The array is one-dimensional and only contains the objects in the
blocking list. If you need the start times of the blockages, which are contained in the blocking
table, you can query them from the object with the attribute BlockingStarttime.
Parameter
The optional parameter ForwardBlockingList of data type table designates the name of the table,
which can be a TableFile or a local variable, into which the method writes the values.
Plant Simulation automatically generates the format of this table with two columns. Column 1 has
the data type object and contains the Transporters that unsuccessfully tried to move to the object.
Column 2 contains the simulation time at which the Transporters attempted to enter the object. The
number of rows matches the number of Transporters in the blocking list.
Return Value
The return value has the data type array.
If you do not specify the optional parameter, the method returns an array of data type object containing
all MUs which are contained in the Forward Blocking List of the TwoLaneTrack on the specified lane.
Example: MyTwoLaneTrack.B.fwBlockList(TableFile)
Related Topic
Forward Blocking List
getRouteLength
The method getRouteLength computes the shortest route from the lane of the TwoLaneTrack to the
target, designated by the parameter of data type object and returns the length of this route. The
destination may either be a material flow object, which can be reached directly via Connectors, or
a destination, which you entered into a sensor. The method returns -1, when Plant Simulation did
not find a route.
As the route is intended for Transporters, Plant Simulation only takes objects of type Track
and TwoLaneTrack into consideration, when calculating the route.
Parameters
• The parameter Target of data type object designates the target.
• The optional parameter Backwards of data type boolean designates the direction in which Plant
Simulation looks for a route. True stands for backwards, false stands for forwards , which is the
default setting.
• The optional parameter Position of data type length designates the position on the lane at which
the search starts. If you do not enter the parameter, Plant Simulation starts searching at the end
of the lane if you search forwards , or it starts searching at the beginning if you search backwards
. This is particularly important if the Destination is a sensor, which is located on the lane of the
TwoLaneTrack itself.
• When you enter the optional parameter ObjectsAlongRoute of data type table, Plant Simulation
writes the objects along the route into the specified table.
• The optional parameter RouteWeightingAttribute of data type string sets the name of the attribute
for the route weighting attribute (RouteWeightingAttr) for automatic routing. If the parameter is
not passed, Plant Simulation does not weight the lengths of the routes.
Return Value
The return value has the data type length.
pred
The method pred accesses the direct predecessor of the designated lane of the TwoLaneTrack
designated by Path.
Related Topic
succ
predConnector
Syntax: Path.A.predConnector → object
Path.B.predConnector → object
Path.A.predConnector(PredecessorNumber:integer) → object
Path.B.predConnector(PredecessorNumber:integer) → object
The method pred accesses the incoming Connector joined directly to the specified lane of the
TwoLaneTrack designated by Path.
The method predConnector(PredecessorNumber:integer) accesses the n-th preceding Connector
designated by the parameter of data type integer of the specified lane of the TwoLaneTrack
designated by Path.
Note that adding and deleting connections may change the index number of a connection.
Return Value
The return value has the data type object.
The method returns VOID if the connection does not exist.
Example: -- SimTalk 2.0 notation
for i := MyTwoLaneTrack.B.NumPred downto 1 -- deletes connections
MyTwoLaneTrack.B.predConnector(i).deleteObject
next
Related Topic
succConnector
predLane
The method predLane accesses the direct predecessor of the designated lane of the TwoLaneTrack
designated by Path.
The method predLane(integer) accesses the lane of the n-th predecessor designated by the
parameter of data type integer of the TwoLaneTrack designated by Path. Note that the objects
have to be connected for this to work.
Return Value
The return value has the data type any.
Related Topic
SuccLane
predLaneNo
The method predLaneNo returns the number of the preceding lane of the specified lane of the
TwoLaneTrack designated by Path.
The method predLaneNo(integer) returns the number of the lane of the n-th predecessor designated
by the parameter of data type integer. Note that the objects have to be connected for this to work.
Return Value
The return value has the data type integer.
Related Topic
SuccLaneNo
succ
Syntax: Path.A.succ → object
Path.B.succ → object
Path.A.succ(SuccessorNumber:integer) → object
Path.B.succ(SuccessorNumber:integer) → object
The method succ accesses the direct successor of the specified lane of the TwoLaneTrack
designated by Path.
The method succ(SuccessorNumber:integer) accesses the n-th successor designated by the
parameter of data type integer of the specified lane of the TwoLaneTrack designated by Path. Note
that the objects have to be connected for this to work.
Return Value
The return value has the data type object.
Example: -- SimTalk 2.0 notation
if MyTwoLaneTrack.B.succ = TwoLaneTrack1
...
end
Related Topic
pred
succConnector
Syntax: Path.A.succConnector → object
Path.B.succConnector → object
Path.A.succConnector(SuccessorNumber:integer) → object
Path.B.succConnector(SuccessorNumber:integer) → object
The method succConnector the outgoing Connector joined directly to the specified lane of the
TwoLaneTrack designated by Path.
The method succConnector(SuccessorNumber:integer) accesses the n-th succeeding Connector
designated by the parameter of data type integer of the specified lane of the TwoLaneTrack
designated by Path.
Note that adding and deleting connections may change the index number of a connection.
Return Value
The return value has the data type object.
The method returns VOID if the connection does not exist.
Example: myTwoLaneTrack.B.succConnector.deleteObject;
Related Topic
predConnector
succLane
Syntax: Path.A.succLane → any
Path.B.succLane → any
Path.A.succLane(Successor:integer) → any
Path.B.succLane(Successor:integer) → any
The method succLane accesses the direct successor of the designated lane of the TwoLaneTrack
designated by Path.
The method succLane (Successor:integer) accesses the lane of the n-th successor designated by
the parameter of data type integer of the TwoLaneTrack designated by Path. Note that the objects
have to be connected for this to work.
Example: -- SimTalk 2.0 notation
if MyTwoLaneTrack.B.succLane = TwoLaneTrack1.A
...
end
Related Topic
PredLane
succLaneNo
Syntax: Path.A.succLaneNo → integer
Path.B.succLaneNo → integer
Path.A.succLaneNo(LaneNumber:integer) → integer
Path.B.succLaneNo(LaneNumber:integer) → integer
The method succLaneNo returns the number of the succeeding lane of the specified lane of the
TwoLaneTrack designated by Path.
The method succLaneNo(LaneNumber:integer) returns the number of the lane of the n-th successor
designated by the parameter of data type integer. Note that the objects have to be connected for
this to work.
Return Value
Related Topic
PredLaneNo
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To query the value of a read-only attribute, you might, for example, enter:
print TwoLaneTrack.A.NumPred
NumPred
Syntax: Path.A.NumPred
Path.B.NumPred
The read-only attribute NumPred returns the number of predecessors of the specified lane of the
TwoLaneTrack designated by Path.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
for var i := 1 to MyTwoLaneTrack.B.NumPred
print MyTwoLaneTrack.B.pred(i) -- prints all predecessors
next
Related Topic
NumSucc
NumSucc
Syntax: Path.A.NumSucc
Path.B.NumSucc
The read-only attribute NumSucc returns the number of successors of the specified lane of the
TwoLaneTrack designated by Path.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
if MyTwoLaneTrack.A.NumSucc > 1
... -- more than one successor
end
Related Topic
NumPred
OccupiedLength
Syntax: Path.A.OccupiedLength → length
Path.B.OccupiedLength → length
The read-only attribute OccupiedLength returns the part of the entire length of the specified lane of the
TwoLaneTrack designated by Path, which is occupied by all Transporters located on it. Remember
that each Transporter located on the TwoLaneTrack occupies part of the entire length available.
Return Value
The return value has the data type length.
Related Topics
Length of lane A
Length of lane B
A number of attributes, which the TwoLaneTrack shares with the other material flow
objects, apply to a lane, instead of to the entire object.
To view all of the methods and attributes of the Track, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyTwoLaneTrack.Pause := true
BwEntranceCtrl
Syntax: Path.A.BwEntranceCtrl
Path.B.BwEntranceCtrl
The attribute BwEntranceCtrl designates a Method object, that is called, when a Transporter enters
the designated lane of the TwoLaneTrack via its exit and/or when the Transporter moves towards
its entrance after entering.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyTwoLaneTrack.B.BwEntranceCtrl := &MyBackwardEntranceMethod
Related Topic
BwEntranceCtrlFront
Syntax: Path.A.BwEntranceCtrlFront
Path.B.BwEntranceCtrlFront
The attribute BwEntranceCtrlFront sets if the TwoLaneTrack activates the backward entrance control
as soon as the front of the Transporter enters the TwoLaneTrack via its exit and/or when it moves
towards its entrance after entering (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.B.BwEntranceCtrlFront := false;
Related Topic
Backward entrance control
BwEntranceCtrlRear
Syntax: Path.A.BwEntranceCtrlRear
Path.B.BwEntranceCtrlRear
The attribute BwEntranceCtrlRear sets if the TwoLaneTrack activates the backward entrance control
as soon as the rear of the Transporter enters the TwoLaneTrack via its exit and/or when it moves
towards its entrance after entering (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.B.BwEntranceCtrlRear := true
Related Topic
Backward entrance control
BwExitCtrl
Syntax: Path.A.BwExitCtrl
Path.B.BwExitCtrl
The attribute BwExitCtrl designates a Method object, which is called, when a Transporter exits the
designated lane of the TwoLaneTrack via it entrance and/or when the Transporter moves towards its
entrance when exiting.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
MyTwoLaneTrack.B.BwExitCtrl := &MyBackwardExitMethod
Related Topic
Backward exit control
BwExitCtrlFront
Syntax: Path.A.BwExitCtrlFront
Path.B.BwExitCtrlFront
The attribute BwExitCtrlFront sets if the TwoLaneTrack activates the exit control as soon as the front
of the Transporter exits the designated lane of the TwoLaneTrack via it entrance and/or when the
Transporter moves towards its entrance when exiting (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.A.BwExitCtrlFront := false;
Related Topic
Backward exit control
BwExitCtrlRear
Syntax: Path.A.BwExitCtrlRear
Path.B.BwExitCtrlRear
The attribute BwExitCtrlRear sets if the TwoLaneTrack activates the exit control as soon as the rear
of the Transporter exits the designated lane of the TwoLaneTrack via it entrance and/or when the
Transporter moves towards its entrance when exiting (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.B.BwExitCtrlRear := true;
Related Topic
Backward exit control
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the maximum number of Transporters that may be located on the
TwoLaneTrack as a whole or in part at any one time. Enter -1 for an infinite Capacity.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: if MyTwoLaneTrack.Capacity = -1
@.move(AELine);
end
Related Topic
Capacity
DestListA
Syntax: Path.DestListA
The attribute DestListA (Destination list A myControls.spp) sets the path to the destination list for
Transporters, which move forward on lane A on the TwoLaneTrack. The destination list contains
all destination objects, which the Transporter can reach, while moving forward on lane A on this
TwoLaneTrack. Note that this forward destination list of lane A concurrently is the backward
destination list of lane B.
Data Type of Value You Can Assign
You can assign a value of data type object.
Related Topic
Destination list A myControls.spp
DestListB
Syntax: Path.DestListB
The attribute DestListB (Destination list B) sets the path to the destination list for Transporters, which
move forward on lane B on the TwoLaneTrack. The destination list contains all destinations that the
Transporter can reach, while moving forward on lane B on this TwoLaneTrack. Note that this forward
destination list of lane B concurrently is the backward destination list of lane A.
Data Type of Value You Can Assign
You can assign a value of data type object.
Related Topic
Destination list A myControls.spp
EntranceLocked
Syntax: Path.A.EntranceLocked
Path.B.EntranceLocked
The attribute EntranceLocked locks (true) or unlocks (false) the entrance of the specified lane
of the TwoLaneTrack designated by Path, so no Transporter can enter. Plant Simulation enters
Transporters attempting to unsuccessfully move in the Forward Blocking List of the object. When
setting EntranceLocked to false, Transporters entered into the blocking list will make another attempt
to enter the object.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.B.EntranceLocked := true;
waituntil MyTwoLaneTrack.B.numMu 10 prio 1;
MyTwoLaneTrack.B.EntranceLocked := false;
Related Topics
Entrance locked of lane A
Entrance locked of lane B
EntranceCtrl
Syntax: Path.A.EntranceCtrl
Path.B.EntranceCtrl
The attribute EntranceCtrl designates a Method object, which the TwoLaneTrack designated by Path
calls as soon as a Transporter enters on the specified lane.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyTwoLaneTrack.A.EntranceCtrl := &MyEntranceMethod
Related Topic
Entrance control
EntranceCtrlFront
Syntax: Path.A.EntranceCtrlFront
Path.B.EntranceCtrlFront
The attributeEntranceCtrlFront sets if the TwoLaneTrack designated by Path triggers the entrance
control, on the specified lane as soon as the front of the Transporter enters the object (true) or
not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.A.EntranceCtrlFront := true;
Related Topic
Entrance control
EntranceCtrlRear
Syntax: Path.A.EntranceCtrlRear
Path.B.EntranceCtrlRear
The attribute EntranceCtrlRear sets if the TwoLaneTrack designated by Path triggers the entrance
control, on the specified lane as soon as the back of the Transporter enters the object (true) or
not (false).
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: MyTwoLaneTrack.A.EntranceCtrlRear := true;
Related Topic
Entrance control
ExitCtrl
Syntax: Path.A.ExitCtrl
Path.B.ExitCtrl
The attribute ExitCtrl designates a Method object, which the TwoLaneTrack designated by Path calls
as soon as a Transporter exits on the specified lane.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyTwoLaneTrack.A.ExitCtrl := &MyExitMethod
Related Topic
Exit control
ExitCtrlFront
Syntax: Path.A.ExitCtrlFront
Path.B.ExitCtrlFront
The attributeExitCtrlFront sets if the TwoLaneTrack designated by Path triggers the exit control as
soon as the front of the Transporter exits on the specified lane (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Exit control
ExitCtrlRear
Syntax: Path.A.ExitCtrlRear
Path.B.ExitCtrlRear
The attribute ExitCtrlRear sets if the TwoLaneTrack designated by Path triggers the exit control as
soon as the back of the Transporter exits on the specified lane (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.A.ExitCtrlRear := true;
Related Topic
Exit control
ExitLocked
Syntax: Path.A.ExitLocked
Path.B.ExitLocked
The attribute ExitLocked locks (true) or unlocks (false) the exit of the specified lane of the
TwoLaneTrack designated by Path, so no Transporter can exit. Plant Simulation enters Transporters
attempting to exit unsuccessfully in the Exit Blocking List of the object. When setting ExitLocked to
false Transporters entered into the blocking list will make another attempt to exit the object.
You can assign a value of data type boolean.
Example: MyTwoLaneTrack.A.ExitLocked := true;
Related Topics
Exit locked of lane A
Exit locked of lane B
Length
Syntax: Path.A.Length
Path.B.Length
The attribute Length sets the physical length of the specified lane of the TwoLaneTrack. A Transporter
enters the specified lane of the TwoLaneTrack at position 0, and exits after covering the length
you enter here.
Data Type of Value You Can Assign
Related Topics
Length of lane A
Length of lane B
OccupiedLength
PullCtrl
Syntax: Path.A.PullCtrl
Path.B.PullCtrl
The attribute PullCtrl designates a Method object, which is called, whenever the TwoLaneTrack is
ready to accept a new Transporter on the specified lane or when it is ready, when a new Transporter
is Waiting at its entrance. In the Pull control you can determine which Transporter, which intends to
move onto the TwoLaneTrack, the TwoLaneTrack will accept. For this you have to get the forward
blocking list of the respective lane with the method fwBlockList and unblock a Transporter in the
list with the method unblock.
Data Type of Value You Can Assign
You can assign a value of data type object.
Related Topic
Pull control
TrackPitch
Syntax: Path.TrackPitch
The attribute TrackPitch sets the Track pitch, which is the distance between the center lines of
the two lanes of the two-lane track.
Example: MyTwoLaneTrack.TrackPitch := 5
Related Topic
Track pitch
Traffic
Syntax: Path.Traffic
The attribute Traffic sets the side of the TwoLaneTrack designated by Path on which the bidirectional
traffic moves: Right-hand traffic or left-hand traffic.
Related Topic
Right-Hand Traffic/Left-Hand Traffic
Width
Syntax: Path.Width
The attribute Width sets the width in meters of the TwoLaneTrack designated by Path. The Width only
applies when the setting Transfer length/TransferLengthToObject is deactivated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Example: MyTwoLaneTrack.Width := 4
Related Topics
Width
Curve width
CurveWidth
Fluid Objects
Fluid Objects
Tecnomatix Plant Simulation provides the following fluid objects to simulate free-flowing materials, be
they in liquid, gaseous, or pourable form. The fluid objects are suited for the food and beverages
processing, and for the pharmaceutical industries.
A typical simulation with fluid objects consists of several FluidSources which provide the ingredients
for mixing together the intermediate or the finished product. The FluidSources are connected with
Connectors and Pipes to Tanks, which temporarily store the ingredients or the products, or to Mixers,
which mix the different ingredients to an intermediate or to a finished product. Pipes transport the
free-flowing materials from fluid object to fluid object. The fluid objects themselves have to be
connected with Pipes. The FluidDrain removes the finished product from the plant.
You have to connect the individual fluid objects with Connectors. You cannot connect
them with Pipes only.
You can control the flow of ingredients by opening or closing the entrances or the exits of the Tanks,
Mixers, and Pipes. The Mixer pulls the ingredients from the predecessors via inflow connections
according to the chemical formula which you entered into the MaterialsTable. Provided an open Pipe
is connected, the Mixer sends the processed product on via an outflow connection.
Fluid objects encompass:
• The Connector to establish connections between the fluid objects.
• The DePortioner to empty incoming parts of bulk goods or fluids and feed the resulting fluids
into a Pipe.
• The FluidDrain to remove the product from the plant after it has been mixed or processed.
• The FluidSource to remove the product from the plant after it has been mixed or processed.
• The MaterialsTable to define the ingredients and the products to be processed in the plant.
Related Topics
Shared Properties of the Fluid Objects
Simulating Free-Flowing Materials and Fluids
You will find the object-specific properties in the sub-chapters of the corresponding objects.
The fluid objects share a number of dialog items and menus. To open the dialog window of an
object, double-click its icon.
After opening the dialog, Plant Simulation shows the current values. Enter new properties into
the text boxes or select them from the drop-down lists. Click OK or Apply to accept changes you
made and to update the dialog. Instead, you can also press the F5 key to show the most current
results of a simulation run on some of the tabs.
Related Topics
OK Tab Importer
Context Menu of Text Boxes in Dialogs States and Icons of the Material Flow Objects
Entrance locked
To close the entrance of the fluid object, select this. As long as the entrance is locked, the fluid
object does not accept any material.
The LED of a fluid object whose entrance is locked is cyan .
SimTalk:
EntranceLocked
Exit locked
To close the exit of the fluid object, select this. When you close the exit of a fluid object, Plant
Simulation prevents material from flowing off.
SimTalk:
ExitLocked
Tab Statistics
The fluid objects show the most important statistical data on the tab Statistics. Note that the values
for Waiting, Working, Blocked, Setting-Up, Failed, Stopped, Paused and Unplanned should add up
to 100 percent.
Not all fluid objects provide all statistics values described above, while some fluid objects provide
additional values that are described in the chapter of the respective object.
Related Topics
Viewing Statistics in the Dialogs of the Objects
Attributes of the Fluid Objects
Methods of the Fluid Objects
Open Class
Refresh Services
Exporters
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger .
Related Topics
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentInFlowrate
Syntax: Path.CurrentInFlowrate
The read-only attribute CurrentInFlowrate returns the current in-flow rate of the fluid object designated
by Path. This is the amount of liters of the material per second which flows into the object.
Return Value
The return value has the data type real.
CurrentOutFlowrate
Syntax: Path.CurrentOutFlowrate
The read-only attribute CurrentOutFlowrate returns the current out-flow rate of the fluid object
designated by Path. This is the amount of liters per second which flows out of the object.
Return Value
The return value has the data type real.
ResBlocked
Syntax: Path.ResBlocked
The read-only attribute ResBlocked returns if the fluid object designated by Path is blocked (true) or
not (false).
Return Value
ResSetUp
Syntax: Path.ResSetUp
The read-only attribute ResSetUp returns if the fluid object designated by Path is setting up and not
failed, not paused, or not stopped (true) or not (false).
Return Value
ResWaiting
Syntax: Path.ResWaiting
The read-only attribute ResWaiting returns if the fluid object designated by Path is waiting (true) or
not (false).
Return Value
ResWorking
Syntax: Path.ResWorking
The read-only attribute ResWorking returns if the fluid object designated by Path is Working (true) or
not (false).
Return Value
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Homeribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
EntranceLocked
Syntax: Path.EntranceLocked
The attribute EntranceLocked locks (true) or unlocks (false) the entrance of the fluid object
designated by Path.
You can also lock or unlock the entrance with the check box Entrance locked.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyMixer.EntranceLocked := true;
ExitLocked
Syntax: Path.ExitLocked
The attribute ExitLocked locks (true) or unlocks (false) the exit of the fluid object designated by Path.
You can also lock or unlock the exit with the check box Exit locked.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyMixer.ExitLocked := true;
RandomSeed
Syntax: Path.RandomSeed
The attribute RandomSeed sets, together with the attribute Random Numbers Variant of the
Eventcontroller , the seed values which are required for creating the random numbers of the object
designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyMixer.RandomSeed := 40
Related Topics
Simulating Random Processes
Increment Variant on Reset of the EventController
SetupTime
Syntax: Path.SetupTime
The attribute SetupTime sets the duration of the Set-up time of the object designated by Path. A fluid
object has to set up, whenever the name of the material differs from the name of its preceding material.
The set-up time is the time it takes to set the object up for processing a different type of material. An
identical name designates that materials are of the same type.
Related Topic
Times and Distributions
DePortioner
DePortioner
The DePortioner receives incoming parts of bulk goods or fluids, creates a fluid out of it, and feeds
the resulting fluid into a Pipe. We provide three ways of defining the fluid that is to be created:
• By a fixed material and a fixed amount for every MU. For this setting you can enter the Material
and the Amount per MU.
• By the MU Name depending on the MU names that are defined in the Mapping table.
• By the MU Attribute, for which you can enter the Material attribute and the Amount attribute
of the MU.
When the created fluid flows out of the DePortioner in a Pipe, the part that delivered it will be deleted.
When the outflow of fluids is interrupted, caused by a failure, a pause, or because the successor
cannot accept anything at the moment, the Exporters will not be released.
You can, for example, use the DePortioner to empty barrels of fluids or bulk goods, which are then
used as ingredients for mixed goods down your production line, and feed the material into Pipes.
You can think of the DePortioner as the counterpart of the Portioner.
Related Topics
Tab Controls OK
Failed
Tab Attributes
The tab Attributes provides these dialog items:
Outflow rate
Enter the outflow rate with which the material flows out of the DePortioner after it has emptied the
arriving part and flows through the objects of type Pipe to the next object in the flow of materials.
The outflow rate is the amount of liters of the material that flows off in a second.
If the DePortioner has several successors, it passes this outflow rate on to each of the successors.
SimTalk:
OutflowRate
Fluid depends on
Select how the material and the amount of the fluid that is to be created is defined:
• By a fixed material and a fixed amount for every MU. For this setting you can enter the Material
and the Amount per MU.
• By the MU Name depending on the MU names that are defined in the Mapping table.
• By the MU Attribute, for which you can enter the Material attribute and the Amount attributeof
the MU.
The name of each material that is to be used has to be defined in the MaterialsTable.
SimTalk:
FluidDependsOn
Material
Enter the name of the material that the DePortioner creates. It applies when you select Fixed under
Fluid depends on.
SimTalk:
Material
Amount per MU
Enter the total amount in liters of the fluid which the DePortionercreates. It applies when you select
Fixed under Fluid depends on.
SimTalk:
AmountPerMU
Materials table
Click this and select the MaterialsTable in the dialog Select Object. The MaterialsTable object
contains the data of the different materials which the DePortioner can create.
Or you can select the MaterialsTable in a Frame , drag it to the text box and drop it there.
SimTalk:
MaterialsTable
Mapping table
Enter the name of the table file that contains the MU Name of the arriving MU, and the Material
and the Amount of the fluid,which the DePortioner creates. It applies when you select MU Name
under Fluid depends on.
SimTalk:
MappingTable
Material attribute
Enter the name of the Material attribute, which defines the fluid which the DePortioner creates. It
applies when you select MU Attribute under Fluid depends on.
SimTalk:
AttrNameMaterial
Amount attribute
Enter the name of the Amount attribute, which defines the amount of the fluid which the DePortioner
creates. It applies when you select MU Attribute as the definition method of the Fluid depends on.
SimTalk:
AttrNameAmount
Current amount
This field shows the current amount of the fluid that is located in the DePortioner at the moment.
SimTalk:
CurrentAmount
This field shows the current out flow rate, i.e., the amount of liters of the fluid, which flows out of
the DePortioner in a second.
SimTalk:
currentOutFlowrate
Tab Times
Define times as described under the Tab Times.
Related Topics
Recovery time/RecoveryTime
Select the Set-Up Time
Set-up time/SetupTime
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object into which you entered the source code of the respective control
in the dialog Select Object.
You can select or enter the Entrance control, the Exit control, the Set-up control and the Pull control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method , which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control . Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the name of the Shift calendar, which controls the shifts during which the object
works.
Tab Statistics
The DePortioner shows resource statistics as described under the Tab Statistics.
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Services
To view all of the methods and attributes of the DePortioner, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentAmount
Syntax: Path.CurrentAmount
The read-only attribute CurrentAmount returns the Current amount of the fluid that is located in the
DePortioner designated by Path at the moment.
The current amount is measured in liters.
Return Value
The return value has the data type real.
Example: print MyDePortioner.CurrentAmount;
Related Topic
Current amount
To view all of the methods and attributes of the DePortioner, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object FluidSource.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyDePortioner.AmountPerMU := 10
AmountPerMU
Syntax: Path.AmountPerMU
The attribute AmountPerMU sets the total amount in liters of the material which the
DePortioner designated by Path creates. It applies when you select Fixed under Fluid depends
on/FluidDependsOn.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyDePortioner.AmountPerMU := 20;
Related Topic
Amount per MU
AttrNameAmount
Syntax: Path.AttrNameAmount
The attribute AttrNameAmount sets the name of the Amount attribute, which defines the amount of
the material which the DePortioner designated by Path creates. It applies when you select MU
Attribute as the definition method of the Fluid depends on/FluidDependsOn.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyDePortioner.AttrNameAmount := "amount"
Related Topic
Amount attribute
AttrNameMaterial
Syntax: Path.AttrNameMaterial
The attribute AttrNameMaterial sets the name of the Material attribute , which defines the material
which the DePortioner designated by Path creates. It applies when you select MU Attribute under
Fluid depends on/FluidDependsOn.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyDePortioner.AttrNameMaterial := "Material"
Related Topic
Material attribute
FluidDependsOn
Syntax: Path.FluidDependsOn
The attribute FluidDependsOn sets how the material and the amount of the fluid that is to be created
is defined:
• By a fixed material and a fixed amount for every MU. For this setting you can enter the
Material/Material and the Amount per MU/AmountPerMU.
• By the MU Name depending on the MU names that are defined in the Mapping
table/MappingTable.
• By the MU Attribute, for which you can enter the Material attribute/AttrNameMaterial and the
Amount attribute/AttrNameAmount of the MU.
The name of each material that is to be used has to be defined in the MaterialsTable.
Data Type of Value You Can Assign
You can assign a value of data type string, namely "Fixed", "MU Name", or "MU Attribute".
Related Topic
Fluid depends on
Material
Syntax: Path.Material
The attribute Material sets the name of the material which the DePortioner designated by Path
creates. It applies when you select Fixed under Fluid depends on.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyDePortioner.Material := "StandardMaterial"
Related Topic
Material
MappingTable
Syntax: Path.MappingTable
The attribute MappingTable sets the name of the table file that contains the MU Name of the arriving
MU, and the Material and the Amount of the fluid, which the DePortioner designated by Path creates.
It applies when you select MU Name under Fluid depends on/FluidDependsOn.
Data Type of Value You Can Assign
Related Topic
Mapping table
MaterialsTable
Syntax: Path.MaterialsTable
The attribute MaterialsTable sets the MaterialsTable which contains the data of the different materials
which the DePortioner designated by Path can create.
Data Type of Value You Can Assign
You can assign a value of data type path.
Example: MyDePortioner.MaterialsTable := MyMaterialsTable
Related Topic
Materials table
OutflowRate
Syntax: Path.OutflowRate
The attribute OutflowRate sets the outflow rate with which the fluid flows out of the DePortioner
designated by Path and flows through the objects of type Pipe to the next object in the flow of
materials.
The outflow rate is the amount of liters of the fluid that flows off in a second.
If the DePortioner has several successors, it passes this outflow rate on to each of the successors.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: MyDePortioner.OutflowRate := 1;
Related Topic
Outflow rate
RecoveryTime
Syntax: Path.RecoveryTime
The attribute RecoveryTime sets the duration of the Recovery time of the DePortioner designated
by Path. This is the time during which no material will be accepted after the MU exited the object.
When you enter 0, materials can enter continually.
The recovery time is the time which is required to flush and clean it and prepare it for the next
procedure.
Data Type of Value You Can Assign
You can assign a value of data type time.
Related Topic
RecoveryTime
FluidDrain
FluidDrain
The FluidDrain removes the free-flowing materials, which the FluidSource introduced into the
plant, from the plant after they have been mixed and processed. It differentiates the materials by
their names.
Related Topics
Double-click the icon of the FluidDrain, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Fluids in the Toolbox. The dialog elements and menus, which all material flow objects share, are
described under Dialog Items of the Objects.
Related Topics
Tab Failures OK
Paused/Planned/Unplanned
Tab Attributes
The tab Attributes provides the dialog items Shift calendar and Current inflow rate.
Shift calendar
Click this and select the ShiftCalendar in the dialog Select Object. This ShiftCalendar object
contains the data of the shifts in your installation and controls which shifts the FluidDrain works
during the simulation.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
This automatically enters the object into the list of Objects on the tab Resources of the ShiftCalendar.
SimTalk:
ShiftCalendarObject
Related Topic
Associated Shift Calendar
This field shows the current inflow rate, i.e., the amount of liters of the material which flows into the
FluidDrain in a second and which it in turn drains from the plant.
SimTalk:
CurrentInFlowrate
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Statistics
Tab Statistics
The tab Statistics of the FluidDrain shows the resource statistics values that are described under
the Tab Statistics.
To open the Detailed Statistics Table, click this. It itemizes the materials, which the FluidDrain
drained from the plant.
The table contains this statistical data:
SimTalk:
typeStatistics
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Contents
The Tools Menu provides the menu commands Edit Controls, Edit Observers, and 3D.
The Help Menu provides the menu commands Contents, Index, and Help on Object.
To view all of the methods and attributes of the FluidDrain, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
typeStatistics
Syntax: Path.typeStatistics(TypeStatisticsTable:table)
The method typeStatistics returns the Detailed Statistics Table of the FluidDrain designated by
Path and writes it into a table.
Parameter
The parameter TypeStatisticsTable of data type table designates the name of the table.
Example: MyFluidDrain.typeStatistics(MyFluidDrainStatisticsTable);
Related Topic
Detailed Statistics Table of the FluidDrain
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
StatMaxFlowRate
Syntax: Path.StatMaxFlowRate
The read-only attribute StatMaxFlowRate returns the maximum flow rate of the FluidDrain designated
by Path. This is the amount of liters of material that flowed through the FluidDrain per second.
Return Value
The return value has the data type real.
Example: print MyDFluidDrain.StatMaxFlowRate;
Related Topic
Tab Statistics
StatThroughput
Syntax: Path.StatThroughput
The read-only attribute StatThroughput returns the amount of material that the FluidDrain designated
by Path drained from the plant.
The throughput is measured in liters.
Return Value
The return value has the data type real.
Example: print MyDFluidDrain.StatThroughput;
Related Topic
Tab Statistics
StatThroughputPerDay
Syntax: Path.StatThroughputPerDay
The read-only attribute StatThroughputPerDay returns the amount of material that the FluidDrain
designated by Path drained from the plant while the FluidDrain was available. This is the value
of the throughput per hour multiplied with 24.
The throughput is measured in liters.
Return Value
Related Topic
Tab Statistics
StatThroughputPerHour
Syntax: Path.StatThroughputPerHour
The read-only attribute StatThroughputPerHour the amount of material that the FluidDrain designated
by Path drained from the plant in an hour while the FluidDrain was available.
The throughput is measured in liters.
Return Value
The return value has the data type real.
Related Topic
Tab Statistics
To view all of the methods and attributes of the FluidDrain, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyFluidDrain.Pause := true
FluidSource
FluidSource
The FluidSource produces a single free-flowing material continuously. You will use the FluidDrain
to remove the processed and mixed products from the installation.
Related Topics
Tab Failures OK
Paused/Planned/Unplanned
Tab Attributes
Materials table
Outflow rate
Enter the outflow rate with which the material flows out of the object and flows through the objects of
type Pipe to the next object in the flow of materials.
The outflow rate is the amount of liters of the material that flows off in a second.
If the FluidSource has several successors, it passes this outflow rate onto each of the successors.
SimTalk:
OutflowRate
Material
Enter the name of the material, i.e., the ingredient which the FluidSource is to produce and pass on
objects of type Mixer or Tank. The Mixer then creates the intermediate or the finished product by
mixing the ingredients.
The name of this material has to be defined in the MaterialsTable.
SimTalk:
Material
Materials table
Click this and select the MaterialsTable in the dialog Select Object. The MaterialsTable object
contains the data of the different materials which the FluidSource can produce.
Or you can select the MaterialsTable in a Frame, drag it to the text box and drop it there.
SimTalk:
MaterialsTable
Shift calendar
Click this and select the ShiftCalendar in the dialog Select Object. This ShiftCalendar object
contains the data of the shifts in your installation and controls during which shifts the object works.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
This automatically enters the object into the list of Objects on the tab Resources of the ShiftCalendar.
SimTalk:
ShiftCalendarObject
Related Topic
Associated Shift Calendar
This field shows the current outflow rate, i.e., the amount of liters of the material that flows out of
the FluidSource in a second.
SimTalk:
currentOutFlowrate
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Statistics
In addition to the values described under the Tab Statistics the tab Statistics of the FluidSource
shows this object-specific value.
Related Topic
Statistics Report
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Contents
To view all of the methods and attributes of the FluidSource, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
• Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
StatAmount
Syntax: Path.StatAmount
The read-only attribute StatAmount returns the amount of material that flowed out of the FluidSource
designated by Path.
Return Value
The return value has the data type real.
Example: print MyFluidSource.StatAmount
Related Topic
Tab Statistics
To view all of the methods and attributes of the FluidSource, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyFluidSource.OutflowRate := 1
Material
Syntax: Path.Material
The attribute Material sets the name of the material/ingredient which the FluidSource designated
by Path is to produce.
The name of this material has to be defined in the MaterialsTable.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyFluidSource.Material := "MyDefaultMaterial";
Related Topic
Material
MaterialsTable
Syntax: Path.MaterialsTable
The attribute MaterialsTable sets the MaterialsTable which contains the data of the different materials
which the FluidSource designated by Path can produce.
Data Type of Value You Can Assign
You can assign a value of data type path.
Example: MyFluidSource.MaterialsTable := MyMaterialsTable;
Related Topic
Materials table
OutflowRate
Syntax: Path.OutflowRate
The attribute OutflowRate sets the outflow rate with which the material flows out of the FluidSource
designated by Path and flows through the objects of type Pipe to the next object in the flow of
materials.
The outflow rate is measured in liters per second.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: MyFluidSource.OutflowRate := 1
Related Topic
Outflow rate
MaterialsTable
In the object MaterialsTable you can define the ingredients and the products that are going to be used
by the FluidSource , by the DePortioner , and by the Mixer in your simulation model.
You can enter the:
• Name of the Material, for example DefaultProduct, MyIngredient, MyMaterial, etc.
• The value of the Current material of the Pipe and the Tank .
• Color to be used during the animation of the product. Click in the respective cell and select a color
in the dialog Colors. Plant Simulation then enters the color and the color number into the cell.
• Product Amount which is the amount of the intermediate or of the finished product which the
Mixer is to produce using the ingredients.
• Unit of the material. Double-click in the respective cell and select the unit for the material from
the drop-down list.
• Name of Ingredient 1 to Ingredient 4, its respective Amount, and its respective Unit. By default
we provide for four ingredients. You can add additional columns for additional ingredient sets at
any time.
The MaterialsTable shares most of the properties of the TableFile. It provides the Methods of the
TableFile and the Attributes of the TableFile.
Related Topic
Configure the Recipe in the MaterialsTable
Configure the Recipe of the Ingredient in the MaterialsTable
Mixer
Mixer
The Mixer transmutes the ingredients of the process into an intermediate or a finished product
by mixing them.
The ingredients can flow into the Mixer simultaneously from several preceding FluidSources or
Tanks .
• If you defined the ingredients for the product in the MaterialsTable, the Mixer only uses the
defined ingredients. As soon as the respective amount of these ingredients is present in the
mixing container, the Mixer starts mixing them.
• If you did not define ingredients for the product, the Mixer takes all materials from the connected
Pipes and starts mixing when the mixing container is full.
When processing is finished, the product flows out of the Mixer. After the Mixer is empty again, the
recovery time starts, which is required to flush and to clean it and to prepare it for the next procedure.
Related Topics
Read-Only Attributes of the Mixer Configure the Mixer Which Mixes the Materials
Tab Statistics OK
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Outflow rate
Enter the outflow rate with which the material flows out of the object and flows through the objects of
type Pipe to the next object in the flow of materials.
The outflow rate is the amount of liters of the material that flows off in a second.
SimTalk:
OutflowRate
Volume
Enter the volume of the Mixer, i.e. the amount of liters that is available for the ingredients or the
product respectively within the mixing container.
SimTalk:
Volume
Product
Enter the name of the intermediate or of the finished product which the Mixer is to produce by mixing
the ingredients.
The name of this product has to be defined in the MaterialsTable.
SimTalk:
Product
Product amount
Enter the amount of the intermediate or of the finished product which the Mixer is to produce by
mixing the ingredients.
The default value -1 means that the finished product fully exploits the volume of the Mixer. The
product amount is measured in liters.
When the product amount differs from the product amount which you entered into
the MaterialsTable, Plant Simulation adjusts the amounts of the individual ingredients
accordingly to ensure that the ratio of the ingredients is retained.
SimTalk:
ProductAmount
Materials table
Click this and select the MaterialsTable in the dialog Select Object. The MaterialsTable object
contains the data of the different materials which the Mixer can mix.
Or you can select the MaterialsTable in a Frame , drag it to the text box and drop it there.
SimTalk:
MaterialsTable
Shift calendar
Click this and select the ShiftCalendar in the dialog Select Object. This ShiftCalendar object
contains the data of the shifts in your installation and controls during which shifts the object works.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
This automatically enters the object into the list of Objects on the tab Resources of the ShiftCalendar.
SimTalk:
ShiftCalendarObject
Related Topic
Associated Shift Calendar
This field shows the current fill level of the container in which the Mixer transmutes the materials.
SimTalk:
CurrentFillLevel
Current amount
This field shows the current amount of product that is located in the container of the Mixer at the
moment.
SimTalk:
CurrentAmount
This field shows the current inflow rate , i.e., the amount of liters of the material which flows into
the Mixer in a second.
SimTalk:
CurrentInFlowrate
This field shows the current outflow rate, i.e., the amount of liters of the material that flows out of
the Mixer in a second.
SimTalk:
currentOutFlowrate
Tab Times
Define times as described under the Tab Times.
Related Topics
Processing time/ProcTime
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object into which you entered the source code of the respective control
in the dialog Select Object.
You can select or enter the Ingredient complete control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the name of the Shift calendar, which controls the shifts during which the object
works.
Ingredient complete
Click and select a Method object into which you entered the source code of the respective control
in the dialog Select Object.
Plant Simulation activates the Ingredient complete control when an ingredient of the recipe has
completely arrived in the Mixer. This way you can define/start any actions that need to take place in
your the simulation model via SimTalk.
You can select or enter the Ingredient complete control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control , such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk
IngredientCompleteCtrl
Tab Statistics
In addition to the values described under the Tab Statistics the tab Statistics of the Mixer shows this
object-specific value.
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Services
To view all of the methods and attributes of the Mixer, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentAmount
Syntax: Path.CurrentAmount
The read-only attribute CurrentAmount returns the Current amount of product in the container of the
Mixer designated by Path.
Return Value
The return value has the data type real.
Example: print MyMixer.CurrentAmount;
Related Topic
Current amount
CurrentFillLevel
Syntax: Path.CurrentFillLevel
The read-only attribute CurrentFillLevel returns the Current fill level of product in container of the
Mixer designated by Path.
Return Value
The return value has the data type real.
Example: print MyMixer.CurrentFillLevel;
Related Topic
Current fill level
Empty
Syntax: Path.Empty
The read-only attribute Empty returns if the Mixer designated by Path is empty (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print MyMixer.Empty;
EntranceOpen
Syntax: Path.EntranceOpen
The read-only attribute EntranceOpen returns if material can enter the Mixer designated by Path
because of current recovery times (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print MyMixer.EntranceOpen;
Related Topics
Entrance locked
TimeUntilEntranceOpen
Full
Syntax: Path.Full
The read-only attribute Full returns if the Mixer designated by Path is full (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print MyMixer.Full;
StatThroughput
Syntax: Path.StatThroughput
The read-only attribute StatThroughput returns the amount of product that the Mixer designated
by Path mixed using the ingredients.
The throughput is measured in liters.
Return Value
The return value has the data type real.
Example: print MyMixer.StatThroughput;
Related Topic
Tab Statistics
TimeUntilEntranceOpen
Syntax: Path.TimeUntilEntranceOpen
The read-only attribute TimeUntilEntranceOpen returns the time until the entrance of the Mixer
designated by Path opens again after the recovery time has elapsed.
Return Value
The return value has the data type real.
Example: print MyMixer.TimeUntilEntranceOpen;
Related Topic
EntranceOpen
To view all of the methods and attributes of the Mixer, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyMixer.OutflowRate := 1
IngredientCompleteCtrl
Syntax: Path.IngredientCompleteCtrl
The attribute IngredientCompleteCtrl designates a Method object, the Ingredient complete, which the
Mixer when an ingredient of the recipe has completely arrived in the Mixer.
Data Type of Value You Can Assign
You can assign a value of data type object/method.
Related Topic
Ingredient complete
MaterialsTable
Syntax: Path.MaterialsTable
The attribute MaterialsTable sets the MaterialsTable which contains the data of the different materials
which the Mixer can mix.
Data Type of Value You Can Assign
You can assign a value of data type path.
Related Topic
Materials table
OutflowRate
Path.OutflowRate
id15169Syntax:
The attribute OutflowRate sets the outflow rate of the material which the Mixer designated by Path
creates and which flows off through the objects of type Pipe to the next object in the flow of
materials.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: MyMixer.OutflowRate := 1;
Related Topic
Outflow rate
ProcTime
Syntax: Path.ProcTime
The attribute ProcTime sets the duration of the Processing time of the Mixer designated by Path.
The processing time is the time during which the Mixer transmutes materials.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MyMixer.ProcTime := 1:00:00; -- one hour
Related Topic
Processing time
Product
Syntax: Path.Product
The attribute Product sets the name of the intermediate or of the finished product which the Mixer
designated by Path is to produce by mixing the ingredients.
The name of this product has to be defined in the MaterialsTable.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: MyMixer.Product := "MyProduct";
Related Topic
Product
ProductAmount
Syntax: Path.ProductAmount
The attribute ProductAmount sets the amount of the intermediate or of the finished product which the
Mixer designated by Path is to produce by mixing the ingredients.
The default value -1 means that the finished product fully exploits the volume of the Mixer. The
product amount is measured in liters.
When the product amount differs from the product amount which you entered into
the MaterialsTable, Plant Simulation adjusts the amounts of the individual ingredients
accordingly to ensure that the ratio of the ingredients is retained.
Related Topic
Product amount
RecoveryTime
Syntax: Path.RecoveryTime
The attribute RecoveryTime sets the duration of the Recovery time of the Mixer designated by Path.
When you enter 0 materials can enter continually.
The recovery time is the time which is required to flush and clean the Mixer and to prepare it for the
next procedure.
Data Type of Value You Can Assign
You can assign a value of data type time.
Example: MyMixer.RecoveryTime := 1:00:00;
Related Topic
Recovery time
Volume
Syntax: Path.Volume
The attribute Volume sets the space that is available for the ingredients or the product respectively in
the mixing container of the Mixer designated by Path.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: MyMixer.Volume := 10;
Related Topic
Volume
Pipe
Pipe
Pipes transport free-flowing materials between the objects FluidSource , Tank , Mixer , Portioner
, DePortioner, and FluidDrain . While material is flowing through the Pipe, it shows the color of
that material as its color. This is the color which you selected for the material in the MaterialsTable.
You have to establish connections between Pipes and fluid objects with the Connector . To make
materials flow between the fluid objects, you have to use Pipes.
Related Topics
Tab Attributes OK
Label
Tab Attributes
Tab Attributes
The tab Attributes provides the dialog items Outflow rate, Pipe opened, Current material, and
Current flow rate.
Outflow rate
For a Pipe that is located directly after a FluidSource, a Tank, or a Mixer, you can enter the outflow
rate with which the material flows out of the Pipe to the next object in the flow of materials. The default
value-1 denotes that the Pipe uses the same outflow rate as its predecessor.
With this setting you can create the effect that not all of the succeeding Pipes connected to a
FluidSource, a Tank, or a Mixer, have to have the same outflow rate.
If the predecessor of the Pipe is another Pipe, Plant Simulation ignores the value.
The outflow rate is the amount of liters of the material that flows off in a second.
SimTalk:
OutflowRate
Pipe opened
To open the entrance of the Pipe so that materials can flow through it, select this. This way you can
model a valve to open and to close the Pipe. To close the Pipe, clear the checkbox.
SimTalk:
PipeOpened
Current material
This field shows the name of the material that currently flows through the Pipe.
SimTalk:
CurrentMaterial
This field shows the current flow rate of the materials flowing through the Pipe. This is the amount
of liters per second.
SimTalk:
CurrentFlowrate
Tab Times
Tab Statistics
The Pipe provides the statistics values described under the Tab Statistics.
Tab Curve
Create curved Pipes for your simulation model as described under the Tab Curve.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Related Topics
Working with Curved Objects
Context Menu of Curved Objects
Methods of Curved Objects
Attributes of the Curved Objects
Set and Link Animation Points and Animation Lines
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
The View menu provides the menu commands Refresh, Show Attributes and Methods, and Contents.
The Tools Menu provides the menu commands Edit Controls, Edit Observers, and 3D.
To view all of the methods and attributes of the Pipe, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentFlowrate
Syntax: Path.CurrentFlowrate
The read-only attribute CurrentFlowrate returns current flow rate of the materials flowing through the
Pipe designated by Path. This is the amount of liters per second.
Return Value
The return value has the data type real.
Example: print Pipe1.CurrentFlowrate;
Related Topic
Current flow rate
CurrentMaterial
Syntax: Path.CurrentMaterial
The read-only attribute CurrentMaterial returns the Current material that currently flows through
the Pipe designated by Path.
Return Value
The return value has the data type string.
Example: print Pipe1.CurrentMaterial;
Related Topic
Current material
LengthOfPipe
Syntax: Path.LengthOfPipe
The read-only attribute LengthOfPipe returns the length of the Pipe designated by Path. This is the
length of the Pipe which you inserted into the Frame by clicking the left mouse button to set its
first and its last point.
Return Value
The return value has the data type real.
Example: print Pipe1.LengthOfPipe;
To view all of the methods and attributes of the Pipe , open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
Pipe.PipeOpened := true
OutflowRate
Syntax: Path.OutflowRate
For a Pipe that is located directly after a FluidSource, a Tank, or a Mixer, the attribute OutflowRate
sets the outflow rate with which the material flows out of the Pipe designated by Path to the next
object in the flow of materials. The default value -1 denotes that the Pipe uses the same outflow
rate as its predecessor.
With this setting can create the effect that not all of the succeeding Pipes connected to a FluidSource,
a Tank , or a Mixer, have to have the same outflow rate.
If the predecessor of the Pipe is another Pipe, Plant Simulation ignores the value.
The outflow rate is the amount of liters of the material that flows off in a second.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: Pipe.OutflowRate := 1;
Related Topic
Outflow rate
PipeOpened
Syntax: Path.PipeOpened
The attribute PipeOpened opens the Pipe designated by Path so that materials can flow through it
(true). This way you can model valves to open and to close the Pipe. To close it, enter false.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: Pipe.PipeOpened := true;
Related Topic
Pipe opened
Portioner
Portioner
The Portioner portions the produced products and creates mobile objects out of them. You can then
connect the Portioner with one of the Material Flow Objects to further process the created MUs.
You can think of the Portioner as the counterpart of the DePortioner.
Related Topics
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
MU Current amount
MU
Click this and select the type of MU which the Portioner is to create. You can either use one of the
predefined MUs or you can create your own MU for just this purpose.
SimTalk:
MUPath
Amount per MU
Enter the total amount of the material which the Portioner is to transmute into an individual MU.
SimTalk:
AmountPerMU
Enter number of the predecessor object which delivers the material to the Portioner.
SimTalk:
PrecedessorNumber
Current amount
This field shows the current amount of the material that is located in the Portioner at the moment.
SimTalk:
CurrentAmount
This field shows the current inflow rate , i.e., the amount of liters of the material per second which
flows into the Portioner in a second.
SimTalk:
CurrentInFlowrate
Current material
This field shows the name of the material that currently flows into the Portioner.
SimTalk:
CurrentMaterial
Tab Times
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Controls
Click and select a Method object into which you entered the source code of the respective control
in the dialog Select Object.
You can select or enter the Entrance control and the Exit control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control , such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
You can also select the name of the Shift calendar, which controls the shifts during which the object
works.
Tab Statistics
The Portioner shows resource statistics as described under the Tab Statistics.
Tab Importer
Define services processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Services
The Tools Menu provides the menu commands Edit Controls, Edit Observers, and 3D.
The Help Menu provides the menu commands Contents, Index, and Help on Object.
To view all of the methods and attributes of the Portioner, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentAmount
Syntax: Path.CurrentAmount
The read-only attribute CurrentAmount returns the Current amount of materials in the container
of the Portioner designated by Path.
The current amount is measured in liters.
Return Value
The return value has the data type real.
Example: print MyPortioner.CurrentAmount
Related Topic
Current amount
CurrentMaterial
Syntax: Path.CurrentMaterial
The read-only attribute CurrentMaterial returns the current material that flows into the Portioner
designated by Path.
Return Value
The return value has the data type string.
Example: print MyPortioner.CurrentMaterial
Related Topic
Current material
To view all of the methods and attributes of the Portioner, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source .
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyPortioner.AmountPerMU := 10
AmountPerMU
Syntax: Path.AmountPerMU
The attribute AmountPerMU sets the amount of material which the Portioner designated by Path
is to transmute into individual MUs.
The amount of material is measured in liters.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: MyPortioner.AmountPerMU := 10;
Related Topic
Amount per MU
MUPath
Syntax: Path.MUPath
The attribute MUPath sets the type of MU which the Portioner designated by Path is to create. You
can either use one of the predefined MUs or you can create your own MU for just this purpose.
Data Type of Value You Can Assign
You can assign a value of data type Path.
Example: MyPortioner.MUPath := .MUs.Container;
Related Topic
MU
PrecedessorNumber
Syntax: Path.PrecedessorNumber
The attribute PrecedessorNumber sets the number predecessor object which delivers the material
to the Portioner designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyPortioner.PrecedessorNumber := 2;
Related Topic
Fluid from predecessor
Tank
Tank
The Tank is a type of buffer for temporarily storing a single material before or after processing.
The material can flow into the Tank from several predecessors and can flow out of the Tank to
several successors.
Related Topics
Tab Statistics OK
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Outflow rate
Enter the outflow rate with which the material flows out of the Tank and flows through the objects of
type Pipe to the next object in the flow of materials.
The outflow rate is the amount of liters of the material that flows off in a second.
SimTalk:
OutflowRate
Volume
Enter the volume of the Tank, i.e. the space that the ingredient occupies within the tank.
SimTalk:
Volume
Shift calendar
Click this and select the ShiftCalendar in the dialog Select Object. This ShiftCalendar object
contains the data of the shifts in your installation and controls during which shifts the object works.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
This automatically enters the object into the list of Objects on the tab Resources of the ShiftCalendar.
SimTalk:
ShiftCalendarObject
Related Topic
Associated Shift Calendar
Current material
This field shows the name of the material that is currently located in the Tank.
SimTalk:
CurrentMaterial
This field shows the current fill level of the material in the Tank.
SimTalk:
CurrentFillLevel
Current amount
This field shows the current amount of the material that is located in the Tank.
SimTalk:
CurrentAmount
This field shows the current inflow rate, i.e., the amount of liters of the material which flows into
the Tank in a second.
SimTalk:
CurrentInFlowrate
This field shows the current outflow rate , i.e., the amount of liters of the material that flows out of
the Tank in a second.
SimTalk:
currentOutFlowrate
Sensors
Sensors
To create sensors in the Tank, click Sensors. This opens the dialog Sensor List, where you create
new sensors or modify or delete existing sensors.
To edit the settings of the sensor, click Edit or double-click the name of the sensor in
the sensor list.
To delete the sensor, which you selected in the list of sensors, click Delete .
For the Tank you can:
• Enter the relative Position of the sensor in the Tank.
• Select if sensor is to be triggered when the amount of material has Exceeded the position
of sensor.
• Select if sensor is to be triggered when the amount of material is below the position, i.e., has
Underrun it.
Related Topics
Methods of the Sensors of the Tank
Attributes of the Sensors of the Tank
Create Sensors
Position
Enter the position of the sensor in the Tank. You can enter a value between 0 and 1, i.e., between
0 percent and 100 percent.
SimTalk:
Position
Exceeded
Select this if the sensor is to triggered when the amount of material in the Tank has exceeded, i.e., is
located above the sensor position.
SimTalk:
Exceeded
Underrun
Select this if the sensor is to triggered when the amount of material in the Tank has underrun the
sensor position,i.e.,is located below the sensor position.
SimTalk:
Underrun
Control
Click this and select the Method object, which the sensor calls, in the dialog Select Object. To
open the dialog of the object, whose name you entered into the text box, click in the text box, and
press the F2 key.
As soon as the sensor calls this Method, it passes the Sensor-ID as an optional parameter. When
the Method expects a parameter of datatype integer, the sensor passes the Sensor-ID to the
Method; if you do not enter an integer parameter, the Method will be called without a parameter. The
second optional parameter of datatype boolean shows the user if the sensor position is exceeded or
underrun. SimTalk: sensorID(sensorID>).Ctrl.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu
to create a control method :
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
Enter the source code of this control into the Method that opens.
Once you enter a sensor control, the context menu of the object in the Frame shows the command
Controls. You can then select the name of the sensor control on the submenu to edit it.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
sensorID(sensorID).Ctrl
id
Tab Times
Tab Failures
Active Availability
Start Availability
Stop MTTR
Tab Statistics
In addition to the values described under the Tab Statistics the tab Statistics of the Tank shows this
object-specific value.
Tab Importer
Define services for processing the parts, for setting the station up for a certain type of part, and for
repairing the station as described under the Tab Importer.
Related Topics
Sub-tab Processing
Sub-tab Set-up
Sub-tab Failure
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Services
To view all of the methods and attributes of the Tank, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string[,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
setCurrentContent
Syntax: Path.setCurrentContent(Amount:real[, Material:string, Materialstable:path])
The method setCurrentContent sets the current amount of the material in the Tank designated by Path.
If the tank is empty, you can also set the Current material.
Parameters
• The parameter Amount of data type real designates the amount of material.
• The optional parameter Material of data type string designates the material.
• The optional parameter Materialstable of data type path designates the path to the MaterialsTable.
createSensor
Syntax: Path.createSensor(Position:real, Control:method, Exceeded:boolean, Underrun:bo
The method createSensor creates a new sensor for the Tank designated by Path. It then returns its
unique number. You can use this number to access the sensor.
Parameters
The sensor itself is defined by these parameters:
• The parameter Position of data type real sets the relative position.
• The parameter Control of data type method designates the name of the Method object that
the sensor triggers.
o In SimTalk 2.0 you can enter the name of the method as a string, i.e., "myMethod" or you
can enter &myMethod.
o In SimTalk 1.0 you can enter the name of the method as a string, i.e., "myMethod" or you
can enter ref(myMethod).
• The parameter Exceeded of data type boolean sets if the sensor is going to be triggered when
the amount of material in the Tank has exceeded, i.e., is located above the sensor position
(true) or not (false).
• The parameter Underrun of data type boolean sets if the sensor is going to be triggered when
the amount of material in the Tank has underrun, i.e., is located below the sensor position (true)
or not (false).
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
var ID1,ID2: integer
ID1 := MyTank.createSensor(0.5,"SensCtrl",true,false)
ID2 := MyTank.createSensor(0.7,&myMethod,false,true)
Related Topics
deleteSensor
Sensors
deleteSensor
Syntax: Path.deleteSensor(SensorID:integer) → boolean
The method deleteSensor deletes the sensor from the Tank designated by Path.
Parameter
The parameter SensorID of data type integer designates the sensorID.
Return Value
The return value has the data type boolean.
Example: MyTank.deleteSensor(2);
Related Topics
Sensors
Sensor Delete
createSensor
existsSensorID
Syntax: Path.existsSensorID(SensorID:integer) → boolean
The method existsSensorID returns if a sensor exists (true) or does not exist (false ) for the Tank
designated by Path.
Parameter
The parameter SensorID of data type integer designates the sensorID.
Return Value
The return value has the data type boolean.
Example: print MyTank.existsSensorID(2);
Related Topics
Sensors
sensorID
id
Syntax: Path.Sensor.id → integer
The method id returns the unique identifier of a sensor of the Tank designated by Path, enabling you
to access it. Our example deletes all sensors of the object Tank that are triggered when the amount
of material exceeds the sensor position.
Return Value
The return value has the data type integer.
Example: -- SimTalk 2.0 notation
for i := MyTank.numSensors downto 1
if MyTank.sensorNo(i).Exceeded = true
sensorID := MyTank.sensorNo(i).id
MyTank.deleteSensor(sensorID)
end
next
Related Topics
Sensors
sensorID
numSensors
Syntax: Path.numSensors → integer
The method numSensors returns the number of sensors defined for the Tank designated by Path.
Return Value
The return value has the data type integer.
Example: print MyTank.numSensors
Related Topic
Sensors
origin
Syntax: Path.Sensor.origin
The method origin returns the origin of the sensor of the Tank designated by Path. If the sensor does
not have an origin, it returns VOID.
Example: print MyTank.sensorID(1).origin;
Related Topic
Sensors
sensorID
Syntax: Path.sensorID(SensorID:integer) → any
The method sensorID accesses the designated sensor of the Tank designated by Path.
Parameter
The parameter SensorID of data type integer designates the unique Sensor-ID which Plant Simulation
assigns when you create the sensor.
Return Value
The return value has the data type any.
Example: MyTank.sensorID(3).Exceeded := true;
Related Topics
Sensors
deleteSensor
existsSensorID
sensorNo
Syntax: Path.sensorNo(SensorNumber:integer) → object
The method sensorNo accesses a sensor of the Tank designated by Path whose unique identifier
you do not know.
Parameter
The parameter SensorNumber of data type integer may be a value between 1 and the number of
sensors. Which sensor Plant Simulation accesses may change during the simulation, i.e., when
existing sensors are deleted. Thus only use the method sensorNo if a method call iterates through all
sensors of the object.
Return Value
The return value has the data type object.
Example: MyTank.sensorNo(1).Underrun := true;
Related Topic
Sensors
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentAmount
Syntax: Path.CurrentAmount
The read-only attribute CurrentAmount returns the Current amount of the material in the Tank
designated by Path.
The current amount is measured in liters.
Return Value
The return value has the data type real.
Related Topic
Current amount
CurrentFillLevel
Syntax: Path.CurrentFillLevel
The read-only attribute CurrentFillLevel returns the Current fill level of the material in the Tank
designated by Path.
The current amount is measured in percent.
Return Value
The return value has the data type real.
Related Topic
Current fill level
CurrentMaterial
Syntax: Path.CurrentMaterial
The read-only attribute CurrentMaterial returns the Current material that is located in the Tank
designated by Path.
Return Value
The return value has the data type string.
Related Topic
Current material
Empty
Syntax: Path.Empty
The read-only attribute Empty returns if the Tank designated by Path is Empty (true) or not (false).
Return Value
The return value has the data type boolean.
Full
Syntax: Path.Full
The read-only attribute Full returns if the Tank designated by Path is Full (true) or not (false).
Return Value
The return value has the data type boolean.
StatRelativeOccupation
Syntax: Path.StatRelativeOccupation
The read-only attribute StatRelativeOccupation returns the relative occupancy of the Tank designated
by Path.
Return Value
The return value has the data type real.
Related Topic
Tab Statistics
StatThroughput
Syntax: Path.StatThroughput
The read-only attribute StatThroughput returns the amount of material that flowed through the Tank
designated by Path.
Return Value
The return value has the data type real.
Related Topic
Tab Statistics
To view all of the methods and attributes of the Tank, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyTank.OutflowRate := 1;
OutflowRate
Syntax: Path.OutflowRate
The attribute OutflowRate sets the outflow rate of the material which the Tank designated by Path
stores and which flows off through the objects of type Pipe to the next object in the flow of materials.
Data Type of Value You Can Assign
You can assign a value of data typereal.
Example: MyTank.OutflowRate := 1;
Related Topic
Outflow rate
Volume
Syntax: Path.Volume
The attribute Volume sets the amount of the ingredient which the Tank designated by Path can hold.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyTank.Volume := 10;
Related Topic
Volume
Ctrl
Syntax: Path.Sensor.Ctrl
The attribute Ctrl designates a Method object, the sensor Control, which the sensor of the Tank
designated by Path activates. A value, which you assign, has to be the reference to a Method
(object) or the name of the Method.
As soon as the sensor calls this Method, it passes the Sensor-ID as optional parameter. When the
Method expects an integer parameter, the sensor passes the Sensor ID to the Method; if you do not
enter an integer parameter, the Method will be called without a parameter. The second optional
parameter of data type boolean shows the user if the sensor position is exceeded or underrun .
Data Type of Value You Can Assign
You can assign a value of data typestring.
Example: -- SimTalk 2.0 notation
MyTank.sensorID(2).Ctrl := &mySensorCtrl
MyTank.sensorID(2).Ctrl := "mySensorCtrl"
Related Topic
Control
Exceeded
Syntax: Path.Sensor.Exceeded
The attribute Exceeded sets if the sensor is to be triggered when the amount of material in the Tank
designated by Path has exceeded, i.e., is located above the sensor position (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: MyTank.sensorID(1).Exceeded := true;
Related Topic
Exceeded
Position
Syntax: Path.Sensor.Position
The attribute Position sets the position of the sensor on the Tank designated by Path. You can enter a
value between 0 and 1, i.e., between 0 percent and 100 percent.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: MyTank.sensorID(2).Position := 0.1;
Related Topic
Position
Underrun
Syntax: Path.Sensor.Underrun
The attribute Underrun sets if the sensor is to be triggered when the amount of material in the Tank
designated by Path has underrun, i.e., is located below the sensor position (true) or not (false).
Data Type of Value You Can Assign
You can assign a value of data typeboolean.
Example: MyTank.sensorID(1).Underrun := true;
Related Topic
Underrun
Resource Objects
Resource Objects
Tecnomatix Plant Simulation provides these resource objects, which represent the Workers and the
people and stations related to them:
• The Broker for brokering services offered and services required. It might represent the
supervisor of your plant.
• The Exporter for providing and exporting services. It represents a group of people, whose
individual members you cannot distinguish and whom you cannot address as individuals.
• The FootPath for modeling a path on which the Worker walks from the Workerpool to the
Workplace.
• The LockoutZone for controlling a group of material flow objects. If one of these objects fails,
all other objects within the lockout zone stop processing parts
• The Workplace for modeling the actual place attached to the station, where the Worker
performs his job.
The resource objects work together with the material flow objects SingleProc, ParallelProc, Assembly
Station, and DismantleStation.
Broker
Broker
The Broker cooperates with the Exporter and the importers (see Tab Importer and Sub-tab Failure) of
the SingleProc, the ParallelProc, the Assembly station, and the DismantleStation.
The Broker is the go-between for services offered and services required. Each Broker can manage
several Exporters, which tender services, and it may receive requests from several importers that
require services. A request consists of a list of services and the amount of required services. A
service name is a string. You might model the supervisor of an plant or the foreman of a shop with it.
Once a Broker receives a request from an importer, it immediately attempts to fulfill it using the
Exporters it manages. If the Broker does not succeed in doing this, it may also pass the request on to
other Brokers it is connected to with a Connector. The direction of the Connector determines the
direction in which Plant Simulation passes the request on. If the Exporters of different Brokers
are able to satisfy the request, those Exporter are assigned. If the request cannot be satisfied
immediately, the Broker that received it first will save it.
The Broker then attempts to provide the service at a later point in time. To do this, he goes from
requested service to requested service and attempts to find an Exporter for each. If an Exporter offers
the service, it is going to reserve the maximum possible or the necessary number. Then the Exporter
cannot offer this reserved amount of services for other services. For this reason we recommend to
request special services first and more general ones last.
When the importer requests several services at the same time, all of these services have
to be available at the same time, before the Broker assigns them to the station.
The Broker does not execute any optimization! That way it may happen that the Broker cannot assign
any Exporters , although the Exporters may theoretically be assigned.
The following example clarifies that: The importer i requires one service A and B each. There are two
Exporters with a capacity of 1 each. Exporter1 exports services A and B, Exporter2 only service A.
Both Exporters are registered with the same Broker . If importer i requests the services in the order
(A,B) then the Broker assigns Exporter1 for service A and discovers that Exporter2 cannot export the
still missing service; thus it cannot fulfill the request.
If importer i poses the request in the order (B,A), it will be fulfilled immediately: Exporter1 provides
service B and Exporter2 service A. The sequence in which a Broker passes requests on is defined in
a unique way by the Connectors . The Broker first passes the request on to all of its direct successors,
defined by the number of the Connector. After that it passes the request on to the successors of the
successors. Once an Exporter registers with its Broker as being available, the Broker attempts to find
new importers for the Exporter. First, the Broker checks the unsatisfied requests it manages and then
it has its Broker successors check for any unsatisfied requests.
You can also show the broker statistics para of a Broker in an HtmlReport, compare Display a Broker.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Modeling Workers and the Jobs They Do Read-Only Attributes of the Broker
Dialog Window of the Broker Shared Properties of the Material Flow Objects
Double-click the icon of the Broker, which you inserted into a Frame, to open its dialog window. To
change the properties of the Class of the object, double-click it in the Class Library or on the tab
Resources in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
OK
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Importer request control.
The Importer request control and the Exporter request control are called in the following order:
• When you define an exporter request control and an importer request control , the exporter
request control is called first. This way, you can make the Worker follow the part, when the part
is moved on to the next station. This changes the behavior though as compared to modeling
without controls . If you do not define controls, the Worker is brokered to the new station in
the Workerpool.
• When several importer request controls are executed at the same time, for example when an
Exporter is released and when several open Importers exist, the order in which the controls are
called corresponds to the order of the Importers in the list of Open Importers.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
Click this and select a Methodobject in the dialog Select Object. Enter the source code of the
importer request control in which you programmed how the Broker requests importers. The program
calls the control, whenever the Broker receives a request or when it would handle the request again,
for example, when an Exporter registers as being available. In the source code of the Method you
yourself have to make sure that the request is taken care of, e.g. with the method engage. With this
control you can model your own assignment strategies.
When you defined Exporter and Importer request controls, the Exporter request controls will be
executed first. This way you can make the Worker follow the part when the part moves to the next
station. This causes changed behavior as compared to modeling without controls. Without controls,
the Worker is brokered for the new station in the Workerpool.
When several Importer request controls are executed at the same time, for example because an
Exporter is released and when several open Importers exist, the sequence of the controls matches
the sequence of the Importers in the list Open Importers. This way brokering of Exporters behaves
identical when you model with our without controls.
For Broker hierarchies Plant Simulation does not call the controls of the sub Brokers, i.e.,
of several Brokers that are connected with Connectors in addition. Plant Simulation only
calls the control of the Broker which you entered into the object.
Or you can select the Method in a Frame , drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
ImpRequestCtrl,
doStandardExport
Click this and select a Method object in the dialog Select Object. Enter the source code of the
exporter request control in which you programmed how the Broker requests Exporters. The program
calls the control, whenever an Exporter registers as being available with its Broker, so that it maybe
assigned a new importer. In the source code of the Method you yourself have to make sure that the
request is taken care of, e.g. with the method engage.With this control you can assign a specific
importer to the Exporter.
When you defined Exporter and Importer request controls, the Exporter request controls will be
executed first. This way you can make the Worker follow the part when the part moves to the next
station. This causes changed behavior as compared to modeling without controls. Without controls,
the Worker is brokered for the new station in the Workerpool.
When several Importer request controls are executed at the same time, for example because an
Exporter is released and when several open Importers exist, the sequence of the controls matches
the sequence of the Importers in the list Open Importers . This way brokering of Exporters behaves
identical when you model with our without controls.
The standard exporter request control looks like this:
Or you can select the Method in a Frame , drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
ExpRequestCtrl
doStandardExport
Tab Statistics
Tab Statistics
Plant Simulation shows the most important statistical data on the tab Statistics. To collect statistics
data, select the check box Broker statistics.
To view Broker Statistics in the Statistics Report, click the object in the Frame, and press F6 (Show
Statistics Report), or click Show Statistics Report on the Home ribbon tab. It also shows the Dwelling
Time and the Mediation Time per service of the Broker.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
brokerStat
BrokerStatOn
serviceStat
Broker statistics
To collect statistics data of the Broker,select this. To deactivate statistics collection, clear the
checkbox.
SimTalk:
BrokerStatOn
Related Topics
Show Statistics Report
brokerStat
Service Statistics
To open the service statistics table, which shows the Dwelling Timeand the Mediation Time per
service,click this.
SimTalk:
serviceStat
Related Topics
Statistics report, Dwelling Time
Statistics report, Mediation Time
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Open Importers
Open Importers
The menu command Open Importers opens a table showing all objects whose importers registered
an unsatisfied request with the Broker.
The table shows the Importers in column 1, and their Type in column 2: The number 0 designates
the failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Related Topics
getOpenImporters
forgetOpenRequest
Satisfied Importers
The menu command Satisfied Importers opens a table showing all objects whose importers were
assigned Exporters.
The table shows the Importers in column 1, and their Type in column 2: The number 0 designates
the failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Related Topic
getSatisfiedImporters
Exporters
The menu command Exporters opens a list showing the names of all Exporters registered with
the Broker.
Related Topic
AdministeredExporters
Offered Services
The menu command Offered Services opens a list showing the names all services offered by the
Exporters , which are managed by the Broker.
Double-click the name of a service to open a sub-table, which shows the path of the Exporter .
Related Topic
getOfferedServices
Edit Controls
Edit Observers
3D
To view all of the methods and attributes of the Broker, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
brokerStat
Syntax: Path.brokerStat([BrokerStatisticsTable:table]) → boolean
The method brokerStat returns the statistics Table of the Broker designated by Path and writes it
into a table.
Parameter
The optional parameter BrokerStatisticsTable of data type Table designates the name of the table.
Data Type of Value You Can Assign
The return value has the data type boolean.
• The return value is true if statistics collection is activated. It is false if it is deactivated. Then
the table remains unaltered.
• If you do not enter the optional parameter, the return value is the Table containing the statistics
data if statistics collection is activated. The return value is void if statistics collection is deactivated.
Example: MyBroker.brokerStat(MyBrokerStatisticsTable>);
-- Writes the statistics values to the table named MyBrokerStatisticsTable. Th
-- It is false if it is deactivated. Then the table remains unaltered.
Example: MyBroker.brokerStat;
-- Writes the statistics values to a table. The return value is the statistics
-- It is void if statistics collection is deactivated.
Related Topic
Tab Statistics
doStandardExport
Syntax: Path.doStandardExport(Exporter:object)
You can use the method doStandardExport in the exporter request control of the Broker.
Parameter
The parameter Exporter of data type object designates the Worker/Exporter.
Example: MyBroker.doStandardExport(MyExporter);
Related Topic
Exporter request control
doStandardImport
You can use the method doStandardImport in the importer request control of the Broker for those
importers for which you do not need special treatment.
This way you do not have to call the methods testImportFor and engage for the designated importer .
Parameters
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Related Topic
Importer request control
engage
With the method engage the Broker designated by Path assigns Exporters to an importer .
The Broker attempts to book the specified services and the amount required with the Exporters.
The Exporters have to be registered with any Broker . Exporters and services may be contained
multiple times.
Parameters
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
• The parameter Data of data type Table designates a table with the columns Exporter, Services,
and Amount.
Example: MyBroker.engage(importer1,1,tableTile);
forgetOpenRequest
Syntax: Path.forgetOpenRequest(Importer:object,Type:integer)
The method forgetOpenRequest cancels an open request with the Broker designated by Path.
Parameters
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure-importer, 1
the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Example: MyBroker.forgetOpenRequest(SingleProc,1);
Related Topic
Open Importers
getExportersForService
Syntax: Path.getExportersForService(Service:string) → object[]
The method getExportersForService returns the Workers/Exporters who provide the desired service
and who can be brokered.
Parameter
The parameter Service of data type string designates the service.
Return Value
getOfferedServices
Syntax: Path.getOfferedServices([Services:table]) → table
The method getOfferedServices returns all services, which are offered by Exporters that are managed
by the Broker designated by Path, and writes them into a table.
Parameter
The optional parameter Services of data type table designates the name of the table. The sub-table
lists all Exporters offering the service.
Data Type of Value You Can Assign
The return value has the data type table.
Example: MyBroker.getOfferedServices(MyOfferedServicesTable); -- Writes the offered ser
Related Topic
Offered Services
getOpenImporters
Syntax: Path.getOpenImporters([Importers:table]) → table
The method getOpenImporters returns all open, i.e., unsatisfied importers managed by the Broker
designated by Path and writes them into a table.
Parameter
The optional parameter Importers of data type table designates the name of the table.
• Column 1 (object) of the table lists all objects whose importers registered an unsatisfied request
with the Broker.
• Column 2 (integer) designates its type: 0 designates the failure-importer, 1 the set-up-importer, 2
the processing-importer, and 3 the transport-importer.
Related Topic
Open Importers
getSatisfiedImporters
Syntax: Path.getSatisfiedImporters([Importers:table]) → table
The method getSatisfiedImporters returns all importers , whose request for an Exporter which the
Broker designated by Path fulfilled, and writes them into a table.
Parameter
The optional parameter Importers of data type table designates the name of the table.
• Column 1 (object) of the table contains all objects whose importer registered a request with the
Broker and who were assigned an Exporter.
• Column 2 (integer) designates its type: 0 designates the failure-importer, 1 the set-up-importer, 2
the processing-importer, and 3 the transport-importer.
Related Topic
Satisfied Importers
globalOpenRequestsFor
Syntax: Path.globalOpenRequestsFor(Exporter:object, Importers:table)
The method globalOpenRequestsFor finds all importers for which the Exporter exports services which
are managed by the Broker designated by Path. For the method to work, the importers have to
register their request with a Broker in the Broker hierarchy.
As opposed to the method localOpenRequestsFor, which only checks the importers locally managed
by the Broker, this method checks the entire Broker hierarchy.
Parameters
• The parameter Exporter of data type object designates the Exporter.
• The parameter Importers of data type table contains those importers, which require at least
one service that is exported by the Exporter.
Example: MyBroker.globalOpenRequestsFor(Exporter,tab2);
Related Topic
localOpenRequestsFor
globalTestImportFor
Syntax: Path.globalTestImportFor(Importer:object, Type:integer, Exporters:table [,Only
The method globalTestImportFor checks all Exporters that may be reached in the Broker hierarchy of
the Broker designated by Path for the importer.
As opposed to the method localTestImportFor, which only checks the Exporters locally managed by
the Broker, this method checks the entire Broker hierarchy, i.e., a Broker linked with a Connector.
Note that the methods localTestImportFor and globalTestImportFor yield the same result for a single
Broker!
Parameters
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure-importer, 1
the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
• The parameter Exporters of data type table contains all Exporters directly managed by the Broker
and able to provide any service the importer requires. However, the Broker does not check if
the Exporters are able to export the service or are available.
• The optional parameter OnlyAvailable of data type boolean sets if all Workers/Exporters will be
listed (false) or if only the actually available Workers/Exporters will be listed (true).
Related Topic
localTestImportFor
localOpenRequestsFor
Syntax: Path.localOpenRequestsFor(Exporter:object, Importers:table)
The method localOpenRequestsFor detects all importers for which the Exporter exports services
which are managed by the Broker designated by Path. For the method to work, the importers have to
register their request directly with the Broker.
Parameters
• The parameter Exporter of data type object designates the Exporter.
• The parameter Importers of data type table holds those importers, which require at least one
service that is exported by the Exporter.
Example: MyBroker.localOpenRequestsFor(Exporter,tab);
Related Topic
globalOpenRequestsFor
localTestImportFor
The method localTestImportFor checks all Exporters directly managed by the Broker for the Importer.
Parameters
• The parameter Importer of data type object designates the Importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure-importer, 1
the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
• The parameter Exporters of data type table contains all Exporters directly managed by the Broker
and able to provide any service the Importer requires. However, the Broker does not check if
the Exporters are able to export the service or are available.
• The optional parameter OnlyAvailable of data type boolean sets if all Workers/Exporters will
be listed (false) or if only the actually available Workers/Exporters will be listed (true). This
parameter only prevents from paused or failed Workers/Exporters from being returned.
The method returns a table which contains all Workers, who provide one of the services for the
services required by the Importer. Note that the method does not only provide those Workers that
can be brokered.
Example: MyBroker.localTestImportFor(ParallelProc3,0,tab3);
MyBroker.localTestImportFor(pp3,0,tab3,true);
Related Topic
globalTestImportFor
serviceStat
The method serviceStat returns Service Statistics data of the Broker designated by Path, and
writes it into a table.
Parameter
The parameter ServiceStatistics of data type table designates the name of the table.
• If you do not enter the optional parameter, the return value is the table containing the statistics
data if statistics collection is activated. The return value is void if statistics collection is deactivated.
Related Topics
Statistics report, Dwelling Time
Statistics report, Mediation Time
testImportFor
Syntax: Path.testImportFor(Importer:object,Type:integer,Exporter:table) → boolean
The method testImportFor executes a test request for the Importer. The return value shows if the
Broker designated by Path is able to satisfy the request (true) or not (false).
Parameters
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure-importer, 1
the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
• The parameter Exporter of data type table passes a table containing all Exporters that may be
assigned after the call. You can use this method to find out how the Broker will treat the request
of the importer.
Related Topic
globalTestImportFor
localTestImportFor
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
AdministeredExporters
Syntax: Path.AdministeredExporters
The read-only attribute AdministeredExporters returns all Exporters, which are registered with the
Broker designated by Path.
The array does not contain all Exporters that may be reached via the Broker-hierarchy, but only
those that are registered directly with the Broker.
Return Value
The return value has the data type array.
Example: print MyBroker.AdministeredExporters;
Related Topic
Exporters
MediatedCapacity
Syntax: Path.MediatedCapacity
The read-only attribute MediatedCapacity returns the capacity which the Broker designated by
Path procured.
Return Value
The return value has the data type integer.
Example: print MyBroker.MediatedCapacity;
Related Topic
Tab Statistics of the Broker
OpenCapacity
Syntax: Path.OpenCapacity
The read-only attribute OpenCapacity returns the total amount of open capacities which the Broker
designated by Path manages.
Return Value
The return value has the data type integer.
Example: print MyBroker.OpenCapacity;
Related Topic
Tab Statistics of the Broker
OpenRequests
Syntax: Path.OpenRequests
The read-only attribute OpenRequests returns the actual number of open requests which the Broker
designated by Path manages.
Return Value
The return value has the data type integer.
Example: print MyBroker.OpenRequests;
Related Topic
Tab Statistics of the Broker
SatisfiedRequests
Syntax: Path.SatisfiedRequests
The read-only attribute SatisfiedRequests returns the number requests which the Broker designated
by Path fulfilled.
Return Value
The return value has the data type integer.
Example: print MyBroker.SatisfiedRequests;
Related Topic
Tab Statistics of the Broker
StatMediatedCapacity
Syntax: Path.StatMediatedCapacity
The read-only attribute StatMediatedCapacity returns the total amount of procured capacities which
the Broker designated by Path manages.
Return Value
The return value has the data type integer.
Example: print MyBroker.StatMediatedCapacity;
Related Topics
Tab Statistics of the Broker
Statistics report, Broker Statistics
StatMediationTime
Syntax: Path.StatMediationTime
The read-only attribute StatMediationTime returns the sum of the times, which the Broker designated
by Path required to meet all satisfied requests, i.e., the time during which the importer/importers
were waiting for the services.
Return Value
The return value has the data type time.
Example: print MyBroker.StatMediationTime;
Related Topic
Statistics report, Broker Statistics
StatMediationTimeDelta
Syntax: Path.StatMediationTimeDelta
The read-only attribute StatMediationTimeDelta returns the standard deviation of the medium
procurement time which the Broker designated by Path required to meet all satisfied requests.
Return Value
The return value has the data type time.
Example: print MyBroker.StatMediationTimeDelta;
Related Topic
Statistics report, Broker Statistics
StatMediationTimeMu
Syntax: Path.StatMediationTimeMu
The read-only attribute StatMediationTimeMu returns the medium duration of the time which the
Broker designated by Path required to meet a single request.
Return Value
The return value has the data type time.
Example: print MyBroker.StatMediationTimeMu;
Related Topic
Statistics report, Broker Statistics
StatOpenCapacity
Syntax: Path.StatOpenCapacity
The read-only attribute StatOpenCapacity returns the total amount of open capacities which the
Broker designated by Path manages.
Return Value
The return value has the data type integer.
Related Topics
Tab Statistics of the Broker
Statistics report, Broker Statistics
StatOpenRequests
Syntax: Path.StatOpenRequests
The read-only attribute StatOpenRequests returns the total number of open requests which the
Broker designated by Path manages.
Data Type of Value You Can Assign
The return value has the data type integer.
Example: print MyBroker.StatOpenRequests;
Related Topics
Tab Statistics of the Broker
Statistics report , Broker Statistics
StatSatisfiedRequests
Syntax: Path.StatSatisfiedRequests
The read-only attribute StatSatisfiedRequests returns the total number of requests which the Broker
designated by Path satisfied.
Return Value
The return value has the data type integer.
Example: print MyBroker.StatSatisfiedRequests;
Related Topics
Tab Statistics of the Broker
Statistics report, Broker Statistics
StatStayTime
Syntax: Path.StatStayTime
The read-only attribute StatStayTime returns the sum of the times, during which Exporters stayed
at importers, i.e., the times during which the services managed by the Broker designated by Path
were procured.
Return Value
The return value has the data type time.
Example: print MyBroker.StatStayTime;
Related Topic
Statistics report, Broker Statistics
StatStayTimeDelta
Syntax: Path.StatStayTimeDelta
The read-only attribute StatStayTimeDelta returns the standard deviation of the time during which
Exporters stayed at importers who are managed by the Broker designated by Path.
Data Type of Value You Can Assign
The return value has the data type time.
Example: print MyBroker.StatStayTimeDelta;
Related Topic
Statistics report, Broker Statistics
StatStayTimeMu
Syntax: Path.StatStayTimeMu
The read-only attribute StatStayTimeMu returns the medium duration of the time during which
Exporters stayed at a single importer who is managed by the Broker designated by Path.
Return Value
The return value has the data type time.
Example: print MyBroker.StatStayTimeMu;
Related Topic
Statistics report, Broker Statistics
To view all of the methods and attributes of the Broker, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object ource.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyBroker.BrokerStatOn := true
BrokerStatOn
Syntax: Path.BrokerStatOn
The attribute BrokerStatOn activates (true) or deactivates (false) the collection of statistics of the
Broker.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyBroker.BrokerStatOn := true;
Related Topic
Broker statistics
ExpRequestCtrl
Syntax: Path.ExpRequestCtrl
The attribute ExpRequestCtrl designates a Method object, which the Broker calls, whenever an
Exporter registers as available with its Broker, so that it may be assigned a new importer. Note that
in the source code of the method you yourself have to make sure that the request is taken care of
(for example with the method engage). Use the exporter request control to assign a certain importer
to the Exporter.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
MyBroker.ExpRequestCtrl := &myExporterRequestCtrl
Related Topic
Exporter request control
ImpRequestCtrl
Syntax: Path.ImpRequestCtrl
The attribute ImpRequestCtrl designates a Method object, which the Broker calls, whenever any
Broker receives a request or when it would handle the request again, for example when an Exporter
registers as available. Note that in the source code of the method you yourself have to make sure
that the request is taken care of (for example with the method engage). Use the importer request
control to model assignment strategies of your own.
For Broker hierarchies Plant Simulation does not call the controls of the sub Brokers, i.e.,
of several Brokers that are connected with Connectors in addition. Plant Simulation only
calls the control of the Broker which you entered into the object.
Related Topic
Exporter
Exporter
The Exporter provides and exports services. It works together with the Broker and the Importers (see
Tab Importer and Sub-tab Failure) of the SingleProc, the ParallelProc, the Assembly station and the
DismantleStation. The Exporter offers services and provides them for Importers.
A single Broker manages the Exporter and assigns it to an Importer. After the Exporter has finished
providing its service, it registers as being available with its Broker, which will assign it to other
Importers as soon as its services are required.
When the Importer requests several services at the same time, all of these services have
to be available at the same time, before the Broker assigns them to the station.
Think of the Exporter as a group of people, whose individual members you cannot distinguish and
whom you cannot address as individuals. If you would like to distinguish individual staff members,
you have to model them with individual Exporters.
An Exporter may provide services for several Importers at the same time.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Modeling Workers and the Jobs They Do Read-Only Attributes of the Exporter
Dialog Window of the Exporter Shared Properties of the Material Flow Objects
Related Topics
Tab Failures OK
Tab Attributes
Tab Attributes
Services Capacity
Priority
Services
To open a list, into which you enter the names of the services, which the Exporter exports, click
Services.
• First, click the button to deactivate Inheritance .Only then you can enter data into the list.
• Enter the name of the service into the cell, and click Apply. The Exporter attempts to export the
services in the order in which you enter them into the list.
The name of the service is not case-sensitive, just like the names of attributes and
methods of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in an case-insensitive manner with the == operator, compare
Relational Operators.
Related Topics
services
Context Menu of Embedded Lists
Fail services
When the check box is deactivated and the Exporter provides services for an importer, Plant
Simulation does not interrupt the corresponding process of the importer at the beginning of a failure.
The corresponding event thus persists. During a failure new requests to the Exporter remain
unsatisfied.
When you activate the check box and the Exporter provides services for an importer, Plant Simulation
interrupts the corresponding process for the duration of the failure.
When Plant Simulation interrupts processing, for example through a failure of the Exporter, Plant
Simulation deletes the respective Out event and adds it anew at the end of the failure according to
the remaining processing time.
SimTalk:
FailServices
Related Topics
Sub-tab Processing > Release all services, when one of them is failed
Sub-tab Failure > Release all services when one of them is failed
Priority
Enter an integer value for the Priority of the Exporter. The higher the value that you enter, the higher
is the priority, i.e., the sooner the job will get done. This means that the program processes a service
with priority 10 before it processes a service with priority 1.
When several qualified Workers/Exporters with the same priority exist, who can provide the requested
service, Plant Simulation first procures the Workers/Exporters, who already stay on a suitable
Workplace. Then, Plant Simulation procures Workers/Exporters, who are currently not staying on
a Workplace. Lastly Plant Simulation procures those Workers/Exporters, who are staying on a
Workplace, which belongs to another station or which does not support the requested service.
SimTalk:
Priority
Capacity
Enter the Capacity of the Exporter. The capacity is a value greater than or equal to zero and
designates the maximum number of services it can export.
You can only reduce the capacity if the capacity provided to the importers is not fallen short
of. If you increase the capacity, the Broker will immediately attempt to find new importers .
SimTalk:
Capacity
Broker
Click this and select the Broker, who assigns the services to the importer, in the dialog Select
Object. You might also, for example, type in .Models.Frame.MyBroker.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Or you can select the Broker in a Frame, drag it to the text box and drop it there.
The program enters the Exporter into the list of administered Exporters, which this Broker manages.
To view them, select View > Exporters.
SimTalk:
BrokerPath
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Duration
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Order control and the Release control.
You can also select the Shift calendar, which controls the shifts during which the object works.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Order control
Click this and select a Method object in the dialog Select Object. It controls how the
Exporter/Worker handles the order. The order control is called whenever the Exporter/ Worker
is assigned to an importer.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control . Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The Method is defined by two parameters, which characterize the importer:
• The parameter Importer of data type object designates the importer .
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
SimTalk:
OrderCtrl
Release control
Click this and select a Method object in the dialog Select Object. It controls how the Exporter/
Worker releases the order. The Exporter/Worker calls the release control as soon as an importer
releases the object. When the control is called,the Exporter/Worker has already left its importer. You
yourself have to make sure that the Exporter/Worker is assigned new importers, for example with
the method findNewImporter. In this case the Exporter/Worker will not automatically register as
being available with its Broker.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The Method you enter is defined by two parameters, which characterize the importer:
• The parameter Importer of data type object designates the importer proper.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
SimTalk:
ReleaseCtrl
Shift calendar
Click and select the ShiftCalendar in the dialog Select Object. This ShiftCalendar object contains
the data of the shifts in your installation and controls during which shifts the Exporter provides
services.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
Related Topic
ShiftCalendarObject
Tab Statistics
Tab Statistics
Plant Simulation shows the most important statistical data on the tab Statistics.
It shows the values for the services and for the Exporter. For each of these blocks, adding up the
individual values results in a value 100 percent.
To show the statistics values for the services in a Chart, drag the Exporter over a Chart and
drop it there. To show the statistics values for the Services and for the Exporter in a Chart,
hold down Shift, drag the Exporter over a Chart and drop it there.
When you select the check box Fail services, the Exporter collects the failure times of the services
and of the Exporter.
When you clear the check box Fail services, the Exporter only collects the failure times of the Exporter.
The Exporter only collects failed times that accrue during the processing and setup time, i.e., times
that are located outside of the paused and of the unplanned time.
Waiting times only accumulate during the times, when the Exporter is available, i.e., when these times
are located outside of the paused, the unplanned, and the failed times.
To collect Exporter statistics data, select the check box Exporter statistics .
To view Exporter and Worker Statistics in the Statistics Report, click the object in the Frame, and
press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Exporter statistics
To collect statistics data of the Exporter, select this. To deactivate statistics collection, clear the
check box.
SimTalk:
ExpStatOn
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Importers
Importers
The menu command Importers opens a para showing all importers for which the Exporter provides
services.
The para shows the Importers in column 1, and their Type in column 2: The number 0 designates
the failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Related Topics
findNewImporter
getImporters
Exported Services
The menu command Exported Services opens a list showing the names of all services, which the
Exporter exports at this time.
Double-click the name of a service to open a sub-para, which shows the name of the Importer, its
type (0 designates the failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the
transport-importer) and the Amount of services provided.
Instead, you can also right-click the Exporter and select Show Exported Services on the context
menu in the Frame.
Related Topics
getExportedServices
services
Available control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
Exporter and the Worker. Plant Simulation calls it, whenever the Exporter or the Worker changes
its state to available.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Select Create Control. Plant Simulation then inserts self.OnBuilt_in_name_of_the_control,
such as self.OnAvailable. Or
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control.
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
AvailableCtrl
Click this and select a Method object in the dialog Select Object. Enter the source code of the
not-available control of the Exporter and the Worker. Plant Simulation calls it, whenever the
Exporteror the Worker changes its state to not available.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Select Create Control. Plant Simulation then inserts self.OnNotAvailable. Or
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control.
Enter the source code of this control into the Method that opens.
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
NotAvailableCtrl
• Click State Icons/LEDs on the General ribbon tab of the Icon Editor.
The LED display can display several active states at the same time, while the state icon can only
display the single state it represents.
The Exporter is
blue Pause
paused.
To view all of the methods and attributes of the Exporter , open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not entering
them may lead to unexpected results and open the Debugger.
expStat
The method expStat returns the statistics para of the Exporter designated by Path and writes it
into the para designated by the parameter para.
Parameter
The parameter StatisticsTable of data type table designates the name of the table.
Data Type of Value You Can Assign
The return value has the data type boolean. It tells if the call was successful (true) or not (false);
false means that the object does not collect any statistical data.
Example: MyExporter.expStat(MyExporterStatisticsTable);
findNewImporter
Syntax: Path.findNewImporter
The method findNewImporter registers the Exporter designated by Path as being available with its
Broker. The Broker then searches the list of all open requests and attempts to find new Exporters.
The fact that the Exporter is available to fulfill new orders is passed along to all Brokers connected
by Connectors.
Example: MyExporter.findNewImporter;
Related Topics
Importers of the Exporter
Importers of the Worker
getExportedServices
Syntax: Path.getExportedServices(Services:table)
The method getExportedServices returns all services, which the Exporter designated by Path exports
at the moment, and writes them into a para.
Parameter
The parameter Services of data type table designates the name of the table.
The sub-para contains all importers importing that service and the number of services which the
Exporter provides for the importer (integer).
Example: MyExporter.getExportedServices(MyExportedServicesTable);
Related Topics
Exported Services of the Exporter
Exported Services of the Worker
getImporters
Syntax: Path.getImporters(Importers:table)
The method getImporters returns all importers , for which the Exporter designated by Path is fulfilling
orders, and writes them into a para.
Parameter
The parameter Importers of data type table designates the name of the table.
• Column 1 (object) contains all importers for which the Exporter is fulfilling orders at the moment.
• Column 2 (integer) designates its type: 0 designates the failure/remove failure-importer, 1 the
set-up-importer, 2 theprocessing-importer, and 3 the transport-importer.
Example: MyExporter.getImporters(MyImportersTable);
Related Topics
Importers of the Exporter
Importers of the Worker
services
Syntax: Path.services → array
The method services sets or returns the names of the Services that the Exporter designated by
Path exports.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in an case-insensitive manner with the == operator, compare
Relational Operators.
Assignment/Data Type of Value You Can Assign
The value has the data type array.
Example: -- SimTalk 2.0 notation
var a : string[] := makeArray("Job1", "Job2", "Job3")
Exporter2.services := a
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
AvailableForMediation
Syntax: Path.AvailableForMediation
The read-only attribute AvailableForMediation returns if the Exporter can be brokered (true) or not
(false).
Return Value
The return value has the data type boolean.
The attribute returns true, when the Exporter is not failed, not paused, and has available capacity.
FreeCapacity
Syntax: Path.FreeCapacity
The read-only attribute FreeCapacity returns the capacity which the Exporter designated by Path
can provide at the moment.
Return Value
The return value has the data type integer.
Related Topic
Tab Statistics of the Exporter
MediatedCapacity
Syntax: Path.MediatedCapacity
The read-only attribute MediatedCapacity returns the capacity, which the Exporter designated by
Path procures at the moment.
Return Value
The return value has the data type integer.
Related Topic
Tab Statistics
StatExporterFailedCount
Syntax: Path.StatExporterFailedCount
The read-only attribute StatExporterFailedCount returns how often the Exporter designated by Path
was failed.
Return Value
The return value has the data type integer.
StatExporterFailedDelta
Syntax: Path.StatExporterFailedDelta
The read-only attribute StatExporterFailedDelta returns the standard deviation of the failure time of
the Exporter designated by Path from the mean value.
Return Value
The return value has the data type time.
Example: print MyExporter.StatExporterFailedDelta;
StatExporterFailedMu
Syntax: Path.StatExporterFailedMu
The read-only attribute StatExporterFailedMu returns the mean duration of a failure of the Exporter
designated by Path.
Return Value
The return value has the data type time.
Example: print MyExporter.StatExporterFailedDelta;
StatExporterFailedPortion
Syntax: Path.StatExporterFailedPortion
The read-only attribute StatExporterFailedPortion returns the ratio of the times during which the
Exporter designated by Path was failed to the statistics collection period of the Exporter.
Return Value
The return value has the data type real.
Example: print MyExporter.StatExporterFailedPortion;
Related Topics
Tab Statistics of the Exporter
Tab Statistics of the Worker
Statistics report , Service Statistics — States — Capacities and States of the Exporters
StatExporterFailedTime
Syntax: Path.StatExporterFailedTime
The read-only attribute StatExporterFailedTime returns the total time during which the Exporter
designated by Path was failed.
Return Value
The return value has the data type time.
Example: print MyExporter.StatExporterFailedTime;
StatExporterOperationalPortion
Syntax: Path.StatExporterOperationalPortion
The read-only attribute StatExporterOperationalPortion returns the ratio of the working time of the
Exporter designated by Path to the statistics collection period of the Exporter.
Return Value
The return value has the data type real.
As the Exporter computes the values that apply to the state working, it only provides the
read-only attributes StatExporterOperationalPortion and StatExporterOperationalTime.
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatExporterOperationalTime
Syntax: Path.StatExporterOperationalTime
The read-only attribute StatExporterOperationalTime returns the total time taken up by working
processes of the Exporter designated by Path.
Return Value
The return value has the data type time.
As the Exporter computes the values that apply to the state working, it only provides the
read-only attributes StatExporterOperationalPortion and StatExporterOperationalPortion.
StatExporterPausedCount
Syntax: Path.StatExporterPausedCount
The read-only attribute StatExporterPausedCount returns how often the Exporter designated by
Path was paused.
Return Value
The return value has the data type integer.
StatExporterPausedDelta
Syntax: Path.StatExporterPausedDelta
The read-only attribute StatExporterPausedDelta returns the standard deviation of the paused time of
the Exporter designated by Path from the mean value.
Return Value
The return value has the data type time.
StatExporterPausedMu
Syntax: Path.StatExporterPausedMu
The read-only attribute StatExporterPausedMu returns the mean duration of a pause of the Exporter
designated by Path.
Return Value
The return value has the data type time.
StatExporterPausedPortion
Syntax: Path.StatExporterPausedPortion
The read-only attribute StatExporterPausedPortion returns the ratio of the paused time of the Exporter
designated by Path to the statistics collection period of the Exporter.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Exporter
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatExporterPausedTime
Syntax: Path.StatExporterPausedTime
The read-only attribute StatExporterPausedTime returns the total time during which the Exporter
designated by Path was paused.
Return Value
The return value has the data type time.
StatExporterUnplannedCount
Syntax: Path.StatExporterUnplannedCount
The read-only attribute StatExporterUnplannedCount returns how often the Exporter designated by
Path was not planned to work.
Return Value
The return value has the data type integer.
StatExporterUnplannedDelta
Syntax: Path.StatExporterUnplannedDelta
The read-only attribute StatExporterUnplannedDelta returns the standard deviation of the unplanned
time of the Exporter designated by Path from the mean value.
Return Value
The return value has the data type time.
StatExporterUnplannedMu
Syntax: Path.StatExporterUnplannedMu
The read-only attribute StatExporterUnplannedMu returns the mean duration of the unplanned time
of the Exporter designated by Path.
Return Value
The return value has the data type time.
StatExporterUnplannedPortion
Syntax: Path.StatExporterUnplannedPortion
The read-only attribute StatExporterUnplannedPortion returns the ratio of the unplanned time to the
statistics collection period of the Exporter designated by Path.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Exporter
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatExporterUnplannedTime
Syntax: Path.StatExporterUnplannedTime
The read-only attribute StatExporterUnplannedTime returns the total time during which the Exporter
designated by Path was not planned to work.
Return Value
The return value has the data type time.
StatMaxFreeCapacity
Syntax: Path.StatMaxFreeCapacity
The read-only attribute StatMaxFreeCapacity returns the maximum capacity which the Exporter
designated by Path can provide.
Return Value
The return value has the data type integer.
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatMaxMediatedCapacity
Syntax: Path.StatMaxMediatedCapacity
The read-only attribute StatMaxMediatedCapacity returns the maximum occupied capacity of the
Exporter designated by Path.
Return Value
The return value has the data type integer.
Example: print MyExporter.StatMaxMediatedCapacity;
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatMinFreeCapacity
Syntax: Path.StatMinFreeCapacity
The read-only attribute StatMinFreeCapacity returns the minimum capacity which Exporter designated
by Path can provide.
Return Value
The return value has the data type integer.
Example: print MyExporter.StatMinFreeCapacity;
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatMinMediatedCapacity
Syntax: Path.StatMinMediatedCapacity
The read-only attribute StatMinMediatedCapacity returns the minimum occupied capacity of the
Exporter designated by Path.
Return Value
The return value has the data type integer.
Example: print MyExporter.StatMinMediatedCapacity;
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatServicesFailedCount
Syntax: Path.StatServicesFailedCount
The read-only attribute StatServicesFailedCount returns how often the services of the Exporter
designated by Path were failed.
The Exporter only collects failure times for the services when you select the check box
Fail services.
Return Value
The return value has the data type integer.
StatServicesFailedPortion
Syntax: Path.StatServicesFailedPortion
The read-only attribute StatServicesFailedPortion returns the portion of the failed times of the services
of the overall statistics time of the Exporter designated by Path, weighted with the capacity. The overall
statistics time is the statistics collection period without the unplanned time and the paused time.
The Exporter only collects failure times for the services when you select the check box
Fail services.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Exporter
Statistics report , Service Statistics — States — Time Portions of the Exporters
StatServicesFailedTime
Syntax: Path.StatServicesFailedTime
The read-only attribute StatServicesFailedTime returns the total time during which services of the
Exporter designated by Path were failed.
The Exporter only collects failure times for the services when you select the check box
Fail services.
Return Value
The return value has the data type time.
Example: print MyExporter.StatServicesFailedTime;
StatServicesRepairingCount
Syntax: Path.StatServicesRepairingCount
The read-only attribute StatServicesRepairingCount returns how often the services of the Exporter
designated by Path worked on repairs.
Return Value
The return value has the data type integer.
Example: print MyExporter.StatServicesRepairingCount;
StatServicesRepairingPortion
Syntax: Path.StatServicesRepairingPortion
The read-only attribute StatServicesRepairingPortion returns the portion of the repairing time the
services of the overall statistics time of the Exporter designated by Path, weighted with the capacity.
The overall statistics time is the statistics collection period without the unplanned time and the
paused time.
Return Value
The return value has the data type real.
Example: print MyExporter.StatServicesRepairingPortion;
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesRepairingTime
Syntax: Path.StatServicesRepairingTime
The read-only attribute StatServicesRepairingTime returns the total time, which the services of the
Exporter designated by Path spent for repairs.
Return Value
StatServicesSetupCount
Syntax: Path.StatServicesSetupCount
The read-only attribute StatServicesSetupCount returns how often the services of the Exporter
designated by Path were setting- up the station.
Return Value
The return value has the data type integer.
StatServicesSetupPortion
Syntax: Path.StatServicesSetupPortion
The read-only attribute StatServicesSetupPortion returns the portion of the set-up time of the services
of the overall statistics time of the Exporter designated by Path, weighted with the capacity. The overall
statistics time is the statistics collection period without the unplanned time and the paused time.
If a station fails and/or is unplanned or paused and services for setting-up or processing
are mediated for this station, the services remain assigned. For this reason the set-up time
and the processing time for the services continues while the station is failed.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesSetupTime
Syntax: Path.StatServicesSetupTime
The read-only attribute StatServicesSetupTime returns the total time the services of the Exporter
designated by Path were setting the station up.
If a station fails and services for setting-up or processing are mediated for this station, the
services remain assigned. For this reason the set-up time and the processing time for the
services carry on running while the station is failed. To avoid this, select the check box
Fail services.
Return Value
The return value has the data type time.
Example: print MyExporter.StatServicesSetupTime;
StatServicesWaitingImpCount
Syntax: Path.StatServicesWaitingImpCount
The read-only attribute StatServicesWaitingImpCount returns how often the services of the Exporter
designated by Path waited for an importer.
Return Value
The return value has the data type integer.
Example: print MyExporter.StatServicesWaitingImpCount;
StatServicesWaitingImpPortion
Syntax: Path.StatServicesWaitingImpPortion
The read-only attribute StatServicesWaitingImpPortion returns the portion of the waiting time of the
services for an importer of the overall statistics time of the Exporter designated by Path, weighted
with the capacity. The overall statistics time is the statistics collection period without the unplanned
time and the paused time.
Return Value
The return value has the data type real.
Example: print MyExporter.StatServicesWaitingImpPortion;
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesWaitingImpTime
Syntax: Path.StatServicesWaitingImpTime
The read-only attribute StatServicesWaitingImpTime returns the total waiting time of the services of
the Exporter designated by Path for an importer.
Return Value
The return value has the data type time.
Example: print MyExporter.StatServicesWaitingImpTime;
StatServicesWaitingMUCount
Syntax: Path.StatServicesWaitingMUCount
The read-only attribute StatServicesWaitingMUCount returns how often the services of the Exporter
designated by Path spent waiting for an MU at the importer.
Return Value
The return value has the data type integer.
Example: print MyExporter.StatServicesWaitingMUCount;
StatServicesWaitingMUPortion
Syntax: Path.StatServicesWaitingMUPortion
The read-only attribute StatServicesWaitingMUPortion returns the waiting portion for an MU at the
importer of the services of the overall statistics time of the Exporter designated by Path, weighted
with the capacity. The overall statistics time is the statistics collection period without the unplanned
time and the paused time.
Return Value
The return value has the data type real.
Example: print MyExporter.StatServicesWaitingMUPortion;
Related Topics
Tab Statistics of the Exporter
Statistics report , Service Statistics — States — Time Portions of the Exporters
StatServicesWaitingMUTime
Syntax: Path.StatServicesWaitingMUTime
The read-only attribute StatServicesWaitingMUTime returns the total time theservices of the Exporter
designated by Path were waiting at the importer for an MU.
Return Value
The return value has the data type time.
Example: print MyExporter.StatServicesWaitingMUTime;
StatServicesWaitingPortion
Syntax: Path.StatServicesWaitingPortion
The read-only attribute StatServicesWaitingPortion returns the portion of the waiting time of the
services of the overall statistics time of the Exporter designated by Path, weighted with the capacity.
The overall statistics time is the statistics collection period without the unplanned time and the
paused time.
Return Value
The return value has the data type real.
StatServicesWaitingTime
Syntax: Path.StatServicesWaitingTime
The read-only attribute StatServicesWaitingTime returns the time which the services of the Exporter
designated by Path were waiting in relation to the statistics collection period, weighted with the
capacity.
Return Value
The return value has the data type time.
StatServicesWorkingCount
Syntax: Path.StatServicesWorkingCount
The read-only attribute StatServicesWorkingCount returns the number of working processes which
the services of the Exporter designated by Path provided.
Return Value
The return value has the data type integer.
StatServicesWorkingPortion
Syntax: Path.StatServicesWorkingPortion
The read-only attribute StatServicesWorkingPortion returns the portion of the working time of the
services of the overall statistics time of the Exporter designated by Path, weighted with the capacity.
The overall statistics time is the statistics collection period without the unplanned time and the
paused time.
If a station fails and/or is unplanned or paused and services for setting-up or processing
are mediated for this station, the services remain assigned. For this reason the set-up time
and the processing time for the services continues while the station is failed.
Return Value
The return value has the data type real.
Example: print MyExporter.StatServicesWorkingPortion;
Related Topics
Tab Statistics of the Exporter
Statistics report , Service Statistics — States — Time Portions of the Exporters
StatServicesWorkingTime
Syntax: Path.StatServicesWorkingTime
The read-only attribute StatServicesWorkingTime returns the time taken up by working processes of
the services of the Exporter designated by Path.
If a station fails and services for setting-up or processing are mediated for this station, the
services remain assigned. For this reason the set-up time and the processing time for the
services carry on running while the station is failed. To avoid this, select the check box
Fail services.
Return Value
The return value has the data type time.
Example: print MyExporter.StatServicesWorkingTime;
StatSumFreeCapacity
Syntax: Path.StatSumFreeCapacity
The read-only attribute StatSumFreeCapacity returns the sum of the free capacity of the Exporter
designated by Path.
Return Value
The return value has the data type integer.
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
StatSumMediatedCapacity
Syntax: Path.StatSumMediatedCapacity
The read-only attribute StatSumMediatedCapacity returns the sum of the mediated capacity of the
Exporter designated by Path.
Return Value
The return value has the data type integer.
Related Topics
Tab Statistics of the Exporter
Statistics report, Service Statistics — States — Capacities and States of the Exporters
To view all of the methods and attributes of the Exporter, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyExporter.ExpStatOn := true
AutomaticMediation
Syntax: Path.AutomaticMediation
The attribute AutomaticMediation prevents that the Exporter, which you yourself want to assign, is
automatically assigned by the Broker.
To make the Broker assign the Exporter automatically, assign true. To assign the Exporter yourself,
assign false.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
BrokerPath
Syntax: Path.BrokerPath
The attribute BrokerPath sets the path to the Broker, which procures the services that the Exporter
provides.
Data Type of Value You Can Assign
You can assign a value of data type object.
Related Topic
Broker
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity of the Exporter. The Capacity is a value greater than or
equal to zero.
You can only reduce the capacity if the capacity provided to the importers is not fallen short
of. If you increase the capacity, the Broker will immediately attempt to find new importers.
Related Topic
Capacity
ExpStatOn
Syntax: Path.ExpStatOn
Related Topic
Exporter statistics
FailServices
Syntax: Path.FailServices
When you set the attribute FailServices to false and the Exporter provides services for an importer,
Plant Simulation does not interrupt the corresponding process of the importer at the beginning of
a failure. The corresponding event thus persists. During a failure new requests to the Exporter
remain unsatisfied.
When you set the attribute FailServices to true and the Exporter provides services for an importer,
Plant Simulation interrupts the corresponding process for the duration of the failure.
When Plant Simulation interrupts processing, for example through a failure of the Exporter, Plant
Simulation deletes the respective Out event and adds it anew at the end of the failure according to
the remaining processing time.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in an case-insensitive manner with the == operator, compare
Relational Operators.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyExporter.FailServices := true;
Related Topic
Fail services
OrderCtrl
Syntax: Path.OrderCtrl
The attribute OrderCtrl designates a Method object, the Order control. It controls how the
Exporter/Worker handles the order. The order control is called whenever the Exporter/Worker
is assigned to an importer.
Parameters
The Method you enter here has two parameters that characterize the importer:
• The parameter Importer of data type object designates the importer.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Reformatting the Method: When you manually enter an order control and click Apply or OK, Plant
Simulation automatically checks if the Method expects the correct parameters. If this is not the
case, Plant Simulation shows a message asking if the Method shall be reformatted or not. Empty
methods are reformatted automatically. Note that you cannot suppress the checking of the format
of the Method.
Data Type of Value You Can Assign
Related Topic
Order control
Priority
Syntax: Path.Priority
The attribute Priority sets the Priority with which the Exporter uses when fulfilling a request. The
higher the value that you enter, the higher is the priority, i.e., the sooner the job will get done. If the
Exporter is not assigned an importer immediately after a request, it will be entered in a list of not
satisfied requests that is arranged according to priority. The attribute only refers to Exporters that
are registered with the same Broker.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: MyExporter.Priority := 3;
Related Topic
Priority
ReleaseCtrl
Syntax: Path.ReleaseCtrl
The attribute ReleaseCtrl designates a Method object, the Release control, which the Exporter calls
as soon as an importer releases it.
Parameters
The Method you enter here is defined by two parameters that characterize the importer:
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
The Method will be formatted automatically. When the control is called, the Exporter has already left
its importer. If you entered a Method, you yourself have to take care that the Exporter is assigned
new importers, for example with the method findNewImporter. In this case the Exporter will not
automatically register as being available with its Broker.
Reformatting the Method: When you manually enter an order control and click Apply or OK, Plant
Simulation automatically checks if the Method expects the correct parameters. If this is not the
case, Plant Simulation shows a message asking if the Method shall be reformatted or not. Empty
methods are reformatted automatically. Note that you cannot suppress the checking of the format
of the Method.
Data Type of Value You Can Assign
You can assign a value of data type method.
Related Topic
Release control
FootPath
FootPath
• When you modeled the work station using one of the material flow objects and the Workplace
and connected the WorkerPool and the Workplace with a FootPath, Plant Simulation animates
the Worker, while he moves on the FootPath and while he works on the Workplace.
• When you inserted a Workplace, and the Worker, who is supposed to work there, cannot
reach it via a FootPath, Plant Simulation transports the Worker directly to the Workplace and
animates him there.
• When you do not insert a Workplace, when no Workplace is present that supports this service,
or when all Workplace s that support this service are occupied, Plant Simulation transports the
Worker to the work station itself, where he will perform his task. Then, the material flow object
only shows with an LED in the LED area of its icon that a Worker is working. It does not animate
him there, but continues to animate him in the WorkerPool.
• With its icon, when you deactivate Curve mode. Then, it looks like this
To change the width / height of the icon, open the dialog of the object and type in the Curve width
on the tab Curve. Then, it looks like this .
• You can control how often the part is shown on the Footpath with the setting Animate every
x-th pixel. When you insert the FootPath with its icon , the Number of Animation Events
controls these steps.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Dialog Window of the FootPath Shared Properties of the Material Flow Objects
Double-click the icon of the FootPath, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Resources in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Attributes OK
Inheritance
Tab Attributes
Tab Attributes
The tab Attributes provides the dialog items Length and Width.
Length
Enter the length of the FootPath. After you inserted it, Plant Simulation shows its length here. The
FootPath can accommodate any number of Workers, as they themselves do not have a length. A
Worker enters the FootPath at position 0 and exits it after covering the length you enter.
When Transfer length is active, the program adapts the graphic,when you change
the length of a FootPath, which only consists of a single straight segment. When the length cannot
be exactly displayed in pixels,the program adapts the length of the graphic. If you need to use the
exact length,clear transfer length.
You can only enter the length, when you deactivate transfer length or when the FootPath consists
of a single straight segment.
SimTalk:
Length
Width
Enter the width of the FootPath in meters. The width only applies when the setting Transfer length is
activated.
You can only enter the Curve width when you deactivate Transfer length. When you
activate it, Plant Simulation computes the width in meters.
SimTalk:
Width
Tab Curve
Define curved FootPaths for your simulation model as described under the Tab Curve.
When you deactivate Curve mode, by clearing the check box Active, you can enter the Number
of Animation Events. It sets how often Plant Simulation shows the part while it is located on the
object FootPath during a simulation run.
• Click the icon of the FootPath with the left mouse button and press Ctrl+I.
• Go to the General ribbon tab of the Icon Editor and select Set Animation Events. Enter a
number into the text box.
The number you can enter here only applies, when you insert length-oriented objects
Track, TwoLaneTrack, Line, FootPath, Turnplate, Turntable, AngularConverter, and
Converter in icon mode!
In curve mode they animate the MUs with the setting you select for Animate every x-th pixel.
Related Topics
Working with Curved Objects
Context Menu of Curved Objects
Methods of Curved Objects
Attributes of the Curved Objects
Set and Link Animation Points and Animation Lines
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Edit Controls
Edit Observers
3D
To view all of the methods and attributes of the FootPath, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
To view all of the methods and attributes of the FootPath, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
Length
Syntax: Path.Length
The attribute Length sets the physical Length of the Footpath designated by Path. A Worker enters
the FootPath at position 0 and exits it after covering the length you enter.
Data Type of Value You Can Assign
You can assign a value of data type length.
Related Topic
Length
Width
Syntax: Path.Width
The attribute Width sets the width in meters of the Footpath designated by Path. The Width only
applies when the setting Transfer length/TransferLengthToObject is activated.
You can only enter the CurveWidth when you deactivate TransferLengthToObject. When
you activate it, Plant Simulation computes the width in meters.
Related Topics
Width
Curve width
CurveWidth
LockoutZone
LockoutZone
The object LockoutZone combines a group of material flow objects. If one of these stations fails,
all other stations within the lockout zone stop processing their parts as well. The LockoutZone
then controls the failures of all assigned stations. As a result it returns the total availability of the
assigned stations.
You can insert more than one LockoutZone into a simulation model. The LockoutZones can overlap,
meaning that a station can be assigned to more than one LockoutZone.
You have to define failure profiles for at least one of the stations assigned to the LockoutZone. As
soon as one of the stations fails, the LockoutZone stops all processing operations of all assigned
stations, meaning it sets their attribute Stopped to true. You can select if the LockoutZone stops the
processing operations immediately or when the service arrives.
The stations only start processing parts again after all failures were removed. They then only use
up the respective remaining processing time.
You can also determine what happens when the stations start processing parts again by programming
a Resume control.
In case one of the stations is paused when the LockoutZone intends to stop, this station does not
start or restart processing after the pause is over.
You can assign any of the built-in Material Flow Objects or Fluid Objects to the LockoutZone. For
stations you yourself modeled in a Frame, the LockoutZone sets the attribute Stopped of that Frame
to true. You then have to model an adequate reaction to the attribute. In addition, you can also add a
Worker or the Workerpool.
If the station that triggers the lockout zone is assigned to more than one LockoutZone, all stations
of all LockoutZones will be stopped. If the station that triggers the lockout zone is assigned to only
one LockoutZone, it only stops the station that you assigned to it.
Related Topics
Double-click the icon of the LockoutZone, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Resources in the Toolbox. The dialog elements and menus, which all material flow objects share, are
described under Dialog Items of the Objects.
Related Topics
Tab Controls
Active
To activate the LockoutZone, select this. It then creates failures and stops the processing operations
of all assigned Objects, when one of these stations fails. To deactivate it, clear the checkbox.
SimTalk:
Active
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
Entering a control overrules the default behavior of the LockoutZone. This means that you yourself
are responsible for stopping all processing operations of the assigned objects by assigning true to
their attribute Stopped. Once you want the objects to continue processing parts, you have to make
sure to terminate stopped mode by assigning false to the attribute Stopped.
You can select or enter the Stop control, the Resume control, and the Stop mode.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Stop control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
stop control. The LockoutZone calls the stop control when one of the stations assigned to it
fails. The anonymous identifier @ designates the triggering station, the anonymous identifier ?
designates the LockoutZone.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
StopCtrl
Related Topic
Resume control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
resume control. The LockoutZone calls the resume control when all failures of the assigned
stations were removed and the stations can thus continue processing parts.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
ResumeCtrl
Related Topic
Use a Resume Processing Control
Stop mode
Select the stop mode:
• Stop immediately
stops the processing operations of all stations that are part of the LockoutZoneas soon as one of
the stations assigned to it fails. Note that none of the other stations in the model are stopped!
Within this period of time additional failures can take place for the assigned stations,several
failures of differing stations can thus overlap. The stations only start processing parts again after
all failures were removed. They then only use up the remaining processing time.
who can be beamed, the service is considered to be received once the Broker has assigned the
service. This matches the behavior of the receive control.
The LockoutZone does not influence the recovery time and the cycle time of the stations which it
controls. The LockoutZone stops these objects and records statistics values for the state Stopped. If
you deactivate the LockoutZone while it is in the process of stopping other stations, Plant Simulation
immediately releases all objects stopped by the LockoutZone. When you reset your model, all objects
change their state from stopped to operational.
SimTalk:
StopMode
Related Topics
Use a Stop Processing Control
Stopped state
Stopped
Stop the Associated Stations Immediately After a Failure
Stop the Associated Stations When the Repair Service Arrives
Tab Objects
Tab Objects
You can assign resource Objects to the LockoutZone on the tab Objects. A resource is any of the
built-in Material Flow Objects, or a Frame in which you modeled a machine, whose Working hours you
would like to control with the LockoutZone. In addition, you can also add a Worker or the Workerpool
You can manipulate the contents of the list with the commands of the Context Menu of Embedded
Lists.
Objects
• Enter the path to and the name of the resource object in a cell. Or
• Drag the resource object to the icon of the LockoutZone and drop it there. You can also select
and then drag-and-drop multiple objects at the same time!
You can manipulate the contents of the list with the commands of the Context Menu of Embedded
Lists.
Related Topics
addObject
objects
Tab Statistics
Plant Simulation shows the most important statistical data of the LockoutZone on the tab Statistics:
The Statistics Report shows the Stopped Time of the individual material flow objects.
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Instead, you can also select Show Assigned Objects on the context menu of the LockoutZone in
the Frame.
To view all of the methods and attributes of the LockoutZone, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
addObject
Syntax: Path.addObject(NameOfObject:path) → boolean
The method addObject assigns a single object to the LockoutZone designated by Path.
Parameter
The parameter NameOfObject of data type path designates the name of the object you want to add.
Return Value
The return value has the data type boolean.
Example: MyLockoutZone.addObject(MyParallelProc);
Related Topics
Tab Objects
objects
objects
Syntax: Path.objects
The method objects sets the resource objects, which you want to assign to the LockoutZone
designated by Path. It also returns these resources.
Parameter
The parameter ResourceObjects of data type array contains the resources.
Example: -- SimTalk 2.0 notation
var a : object[] := makeArray(MySingleProc1, MySingleProc2)
LockoutZone.objects := a
Related Topic
Tab Objects
You can query the values of the read-only attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
StatStoppedCount
Syntax: Path.StatStoppedCount
The read-only attribute StatStoppedCount returns how often the LockoutZone designated by Path
stopped the stations.
Return Value
The return value has the data type integer.
Related Topic
Tab Statistics
StatStoppedDelta
Syntax: Path.StatStoppedDelta
The read-only attribute StatStoppedDelta returns the standard deviation of the time during which the
LockoutZone designated by Path stopped the processing operations of the assigned stations.
Return Value
The return value has the data type time.
Example: print MyLockoutZone.StatStoppedDelta;
Related Topic
Tab Statistics
StatStoppedMu
Syntax: Path.StatStoppedMu
The read-only attribute StatStoppedMu returns the mean time during which the LockoutZone
designated by Path stopped the processing operations of the assigned stations.
Return Value
The return value has the data type time.
Example: print MyLockoutZone.StatStoppedMu;
Related Topic
Tab Statistics
StatStoppedSum
Syntax: Path.StatStoppedSum
The read-only attribute StatStoppedSum returns the total time during which the LockoutZone
designated by Path stopped the processing operations of the assigned stations.
Return Value
The return value has the data type time.
Example: print MyLockoutZone.StatStoppedSum;
Related Topic
Tab Statistics
StatStoppedIntervalDelta
Syntax: Path.StatStoppedIntervalDelta
The read-only attribute StatStoppedIntervalDelta returns the standard deviation of the intervals during
which the LockoutZone designated by Path stopped the processing operations of the assigned
stations.
Return Value
The return value has the data type time.
Example: print MyLockoutZone.StatStoppedIntervalDelta;
Related Topic
Tab Statistics
StatStoppedIntervalMu
Syntax: Path.StatStoppedIntervalMu
The read-only attribute StatStoppedIntervalMu returns the mean time of the intervals during which the
LockoutZone designated by Path stopped the processing operations of the assigned stations.
Return Value
The return value has the data type time.
Example: print MyLockoutZone.StatStoppedIntervalMu;
Related Topic
Tab Statistics
StatStoppedIntervalSum
Syntax: Path.StatStoppedIntervalSum
The read-only attribute StatStoppedIntervalSum returns the total time of the intervals during which the
LockoutZone designated by Path stopped the processing operations of the assigned stations.
Return Value
The return value has the data type time.
Example: print MyLockoutZone.StatStoppedIntervalSum;
Related Topic
Tab Statistics
StatStoppedPortion
Syntax: Path.StatStoppedPortion
The read-only attribute StatStoppedPortion returns the portion of the statistics collection period during
which the stations were stopped by the LockoutZone designated by Path.
Return Value
The return value has the data type real.
Related Topic
Tab Statistics
To view all of the methods and attributes of the LockoutZone, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyLockoutZone.StopMode := "stop when service arrives"
Active
Syntax: Path.Active
The attribute Active sets if the LockoutZone is Active (true) or not active (false). It then creates
and forwards failures for the assigned objects.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Active
ResumeCtrl
Syntax: Path.ResumeCtrl
The attribute ResumeCtrl designates a Method object, the Resume control, which the LockoutZone
calls when all failures of the assigned objects were removed and the objects can thus continue
processing parts.
Data Type of Value You Can Assign
You can assign a value of data type method.
Related Topic
Resume control
StopCtrl
Syntax: Path.StopCtrl
The attribute StopCtrl designates a Method object, the Stop control, which the LockoutZone calls
when one of the objects assigned to the LockoutZone fails. The anonymous identifier @ designates
the triggering station, the anonymous identifier ? designates the LockoutZone.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
var row:integer := ReportStopping.ydim + 1
ReportStopping["First Failed Station",row] := @.name
ReportStopping["Start Stopping",row] := eventcontroller.simTime
Related Topic
Stop control
StopMode
Syntax: Path.StopMode
considers the Worker as received once he has reached the station. For Exporters or Workers
who can be beamed, the service is considered to be received once the Broker has assigned the
service. This matches the behavior of the receive control.
Related Topic
Stop mode
Stopped
Stopped
Syntax: Path.Stopped
The attribute Stopped sets if the object designated by path is stopped (true) or if it is not stopped
(false). Stopped means that all of the processing operations of the objects, which the LockoutZone
controls, come to a halt.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyLockoutZone.Stopped:=true;
ShiftCalendar
Shift Calendar
You can model the different shifts worked in your plant with the object ShiftCalendar. You can define
as many shifts as you need. A shift pauses one or several machines in your model, by setting the
boolean attributes Pause and Unplanned of the respective material flow objects to true.
When you deactivate the Pause during the unplanned time, either by deactivating the
check box Pause in the dialog of the object, or by setting the attribute Pause to false,
the object starts to work.
You can use the method schedule to make the ShiftCalendar set the date and time to start or to finish
the production process. We distinguish between:
• Forward scheduling, beginning from the start date forward into the future, and
• Backward scheduling, which computes the start date going backwards in time from the demand
date.
Normally, you start with the demand date, calculating the start date through backward scheduling.
If this start date is located in the past though, you have to recalculate the dates beginning with the
present time and forward-schedule the end date.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Before you can enter data, click the toggle button Inheritance, so that it looks like this .
You can manipulate the contents of the list with the commands of the Context Menu of Embedded
Lists.
Related Topics
Active OK
Active
To make your facility work in shifts, select this. To deactivate shifts, clear the check box.
Instead, you can also right-click the ShiftCalendar object in the Frame and select Enable on the
context menu. To deactivate shifts, select Disable on the context menu.
SimTalk:
Active
To manipulate the contents of the list, use the commands on the Context Menu of Embedded Lists.
Related Topics
Enter the Names of the Shifts, the Corresponding Times and Days
schedule
ShiftPlan
Shift
Enter the names of the different shifts into these cells. You might, for example, enter Morning,
Evening, Graveyard, etc.
The ShiftCalendar displays this icon for the day shift, and this icon for the night shift. It
displays this icon when it is waiting, and this icon when it is paused.
Related Topics
GetCurrShift
ShiftPlan
From
Enter the times the shifts start in these cells. Enter a time between 0:00 o’clock and 24:00 o’clock.
Note that you can only enter hours and minutes, not hours, minutes and seconds.
• To create a shift located within one day, enter a greater number for the time at which it ends than
for the time at which it starts. You might, for example, define a Morning shift that starts at 6:00
o’clock in the morning and ends at 14:00 o’clock on the same day.
• To create a shift that spans two days, enter a smaller number for the time at which it ends than for
the time at which it starts. You might, for example, define a Graveyard shift that starts at 22:00
o’clock at night on one day, and ends at 6:00 o’clock in the morning on the next day.
Related Topic
ShiftPlan
To
Enter the times the shifts end into these cells. Enter a time between 0:00 o’clock and 24:00 o’clock.
Note that you can only enter hours and minutes, not hours, minutes and seconds.
• To create a shift located within one day, enter a greater number for the time at which it ends than
for the time at which it starts. You might, for example, define a Morning shift that starts at 6:00
o’clock in the morning and ends at 14:00 o’clock on the same day.
• To create a shift that spans two days, enter a smaller number for the time at which it ends than for
the time at which it starts. You might, for example, define a Graveyard shift that starts at 22:00
o’clock at night on one day, and ends at 6:00 o’clock in the morning on the next day.
Related Topic
ShiftPlan
To select the individual days on which the shift in the row is active, click in the cells below the days of
the week.
Related Topic
ShiftPlan
Pauses
Enter the times of the breaks for each shift into these cells. Enter the hour and the minute when the
break starts, a hyphen and the hour and minute the break ends. When you define several breaks,
separate them with a semicolon.
To define a coffee break from 9 o’clock to a quarter past 9 o’clock, and a lunch break from 12 o’clock
to a quarter till 1 o’clock, enter 9:00-9:15;12:00-12:45.
To make the ShiftCalendar check if the values you entered for the breaks are plausible or not and if
you used the correct format to enter the break times, click Apply.
Related Topic
ShiftPlan
Tab Calendar
Tab Calendar
On the tab Calendar you can define the days on which your plant does not work at all (Date From,
and Date To) or only works part of the time (Reduce Time To), and a Comment describing the event.
Before you can use the date picker, click the toggle button Inheritance, so that it looks
like this
You can also import a calender that you saved. Or you can export a calender you defined and
then import it into another simulation model. Click into the list field with the right mouse button
and select Import or Export.
To manipulate the contents of the list, use the commands on the Context Menu of Embedded Lists.
Related Topics
Enter Times During Which the Plant Works Part of the Time
Calendar
schedule
Date From
To enter the date at which your plant starts not working into these cells with the date picker:
• Click the toggle button Inheritance, so that it looks like this
• Double-click into the text box and click the down arrow
• Select a date in the calendar. Click the right or left buttons to move to another month.
To designate an entire day as a day-off, only enter a start date, and no end date (Date To), and
no Reduce Time To.
Related Topic
Calendar
Date To
To enter the date at which your plant stops not working into these cells with the date picker:
• Click the toggle button Inheritance, so that it looks like this
• Double-click into the text box and click the down arrow
• Select a date in the calendar. Click the right or left buttons to move to another month.
To designate a consecutive number of days-off, enter a start date (Date From), and an end date, and
no Reduce Time To.
Related Topic
Calendar
Reduce Time To
To designate a single day on which your plant only works part of the time, enter its date in the cell
in the column Date From. Enter the hour and the minute when the reduced Working time starts, a
hyphen and the hour and minute the reduced time ends in the cell Reduce Time To.
If your plant only works half a day on Christmas eve, for example the shift from midnight to noon, you
would enter 0:00 - 12:00 into the cell Reduce Time To.
To designate several days on which your plant only works part of the time, enter the start date in
the cell in the column Date From, and the end date in the cell in the column Date To. Then, enter
the period of time in the cell Reduce Time To.
The ShiftCalendar combines the reduced time and the definition of the shifts for a day. If,
for example, the start time of a day with a reduced working time falls on a break, then
this work day starts with a break.
Related Topic
Calendar
Comment
Enter a description of the event causing the Reduce Time To in this cell.
Tab Resources
Tab Resources
You can assign resources to the ShiftCalendar on the tab Resources. A resource is any of the
built-in material flow objects, or a Frame in which you modeled a machine, whose Working hours
you would like to control with the ShiftCalendar.
To add a resource to the tab Resources, drag it from the Frame window over the icon of the
ShiftCalendar and drop it there. You can also select and then drag-and-drop multiple objects at
the same time!
This automatically enters the ShiftCalendar into the text box Shift calendar on the tab Controls
of the material flow object.
To manipulate the contents of the list, use the commands on the Context Menu of Embedded Lists.
Related Topics
Resources
Shift calendar
Objects
You can assign resources to the ShiftCalendar on the tab Resources. A resource is any of the
built-in material flow objects, or a Frame in which you modeled a machine, whose Working hours
you would like to control with the ShiftCalendar.
• Enter the path to and the name of the resource object in a cell. Or
• Drag the resource object to the icon of the ShiftCalendar and drop it there. Or
• Enter the name of the ShiftCalendar object on the tab Controls of the material flow object into
the text box Shift calendar.
Related Topic
Resources
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Import Calendar
The menu command Import Calendar imports the calendar, i.e., the days during which your
installation works in shifts from a tab delimited text file.
Export Calendar
The menu command Export Calendar exports the shift calendar you defined on the Tab Calendar to
a file, which you can then import into another ShiftCalendar or edit in a word processing program.
Open Class
Edit Controls 3D
Edit Observers
To view all of the methods and attributes of the ShiftCalendar, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
calculateWorkingDuration
Syntax: Path.calculateWorkingDuration(StartTime:dateTime, EndTime:dateTime) → time
The method calculateWorkingDuration computes the Working duration between two points in time
for the ShiftCalendar designated by Path. While doing so, the method takes into consideration
pauses and shifts.
Parameters
• The parameter StartTime of data type dateTime designates the start time from which on the
ShiftCalendar computes the working duration.
• The parameter EndTime of data type dateTime designates the end time until which the
ShiftCalendar computes the working duration.
schedule
Syntax: Path.schedule(StartTime/Endtime:dateTime, Duration:time, Direction:string) → d
The method schedule schedules the date and time to start or to finish the production process for the
ShiftCalendar designated by Path.
Parameters
• The parameter StartTime/EndTime of data type ateTime is the start or end date and time from
which on the ShiftCalendar schedules the production date.
• The parameter Duration of data type time is the duration of the production process.
• The parameter Direction of data type string designates if the method computes forward or
backward in time.
o For forward scheduling, the production order requires a defined production time for
manufacturing the product. Beginning at the start date, which normally is the active date,
the method schedule computes the date on which the product has to be finished. It takes
production time, shift times, weekends and holidays into consideration.
o For backward scheduling, where you know the date on which the product has to available, as
well as the production time, the method schedule computes the start date on which production
has to start. It takes production time, shift times, weekends and holidays into consideration.
Related Topic
Tab Shift Times
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
GetCurrShift
Syntax: Path.GetCurrShift
The read-only attribute GetCurrShift returns the name of the shift of the ShiftCalendar designated by
Path that is currently active, i.e., the name you entered into the column Shift on the Tab Shift Times.
Return Value
The return value has the data type string.
Related Topic
Shift
Pause
Syntax: Path.Pause
The read-only attribute Pause returns, if the ShiftCalendar designated by Path is Paused (true) or not
(false). The attribute is observable.
Return Value
The return value has the data type boolean.
Unplanned
Syntax: Path.Unplanned
The read-only attribute Unplanned returns, if the ShiftCalendar designated by Path is Unplanned
(true) or not (false). The attribute is observable.
Return Value
The return value is of data type boolean.
Example: MyShiftCalendar.ShiftPlan := shiftTimesTable;
To view all of the methods and attributes of the ShiftCalendar, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyShiftCalendar.ShiftPlan := shiftTimesTable
Active
Syntax: Path.Active
The attribute Active sets if the ShiftCalendar is Active (true), i.e., if your plant works in shifts,
or not active (false).
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Active
Calendar
Syntax: Path.Calendar
The attribute Calendar sets the calendar of the ShiftCalendar. Plant Simulation copies the contents
of the table object, which you enter, to the internal calendar table on the Tab Calendar. For clarity,
you might use a column index and a row index.
• Select the data type date for the first column (Date From) of the table file and enter the date
the shift starts.
• Select the data type date for the second column (Date To) and enter the date the shift ends.
• Select the data type string for the third column (Reduce Time To) and enter the hours during
which the shift in your plant is active.
• Select the data type string for the fourth column (Comment) and enter why the shift does not
apply.
Note that assigning the table overwrites the contents of any existing calendar.
Data Type of Value You Can Assign
You can assign a value of data type any.
Related Topic
Tab Calendar
Resources
Syntax: Path.Resources
The attribute Resources sets the resource objects that the ShiftCalendar controls. Plant Simulation
copies the contents of the table object, which you enter, to the internal resources/Objects table
on the Tab Resources.
Select the data type object for the first column of the table file and enter all objects to be controlled
by the shift calendar.
Note that assigning the table overwrites the contents of any existing resource table. You can use a
column index and a row index. You can also use the rest of the table for any other purpose.
Data Type of Value You Can Assign
You can assign a value of data type any.
Related Topic
Tab Resources
ShiftPlan
Syntax: Path.ShiftPlan
The attribute ShiftPlan sets the shift calendar of the ShiftCalendar. Plant Simulation copies the
contents of the table object, which you enter, to the internal shift times table on the Tab Shift Times.
For clarity, you might use a column index and a row index.
• Select the data type string for the first column (Shift) of the table file and enter the name of the
shift.
• Select the data type time for the second column (From) and enter the time the shift starts.
• Select the data type time for the third column (To) and enter the time the shift ends.
• Select the data type boolean for the fourth to the tenth column (Mo through Sun). Enter true,
when the shift applies to this day. Enter false, when the shift does not apply to this day.
• Select the data type string for the eleventh column (Pauses) and enter the times of the pauses.
Note that assigning the table overwrites the contents of any existing shift times.
Related Topic
Tab Shift Times
Worker
Worker
The Worker represents a working person who works on a Workplace attached to a machine. The
Worker-WorkerPool-Workplace-FootPath-concept refines the Broker-Importer-Exporter-concept.
If your Worker does not walk, make sure that the importer on the tab Importer of the station is
activated, on whose Workplace the Worker is to work.
In the WorkerPool you can select the Travel mode with which the Worker gets to his work station:
can do this under Edit 3D Properties > Tab Graphic Settings, for example to allow the Worker to
cross a Track. MUs do not provide this setting.
• Beam to workplace
The Worker is beamed (teleported) to the Workplace to which he was brokered and at which he
is going to work instantly, without using up any time, provided he cannot get to this Workplace on
any Footpath. Here the Worker functions as an Exporter with a capacity of 1.
You can use this feature to build a model, which does not contain any FootPaths. The Worker
then always jumps between the WorkerPool and the Workplaces.
You can assign a Workplace to the material flow objects that support an importer, e.g. to the
SingleProc, the ParallelProc, the Assembly Station and the DismantleStation.
You can also set the Loading time and the Unloading time, which the Worker needs for manually
loading and unloading the station, in the Workplace attached to the station.
The Workers are created in the WorkerPool and they stay there when they do not work and are
waiting for an order. As a rule you enter the Workers, which you want to use in your simulation model,
into the Creation Table. You can also drag a single Worker or any number of Workers from the Class
Library onto the icon of the WorkerPool and drop them there. The WorkerPool appends a line to
the Creation Table for this Worker. When it already contains a line for this Worker, the WorkerPool
increments the amount by 1.
You can also create individual Workers, which you do not want to generate via the Creation Table,
with the method create for a single simulation run. This only works in the WorkerPool though. Be
aware that Plant Simulation deletes this Worker when you reset the model and then only creates the
Workers from the Creation Table at the next Init event that takes place.
The Broker procures the Workers to the individual work stations. As soon as a Worker can provide a
service, the Broker sends him from his WorkerPool to the work station that ordered him:
• When the Worker moves freely within the area of the simulation model, he walks on the shortest
route to the WorkPlace and walks around obstacles you designated.
• When you modeled the work station using one of the material flow objects and the Workplace
and connected the WorkerPool and the Workplace with a FootPath, Plant Simulation animates
the Worker while he moves on the FootPath and while he works on the Workplace.
• When you inserted a Workplace, and the Worker, who is supposed to work there, cannot reach it
via a FootPath, Plant Simulation transports the Worker directly to the Workplace and animates
him there. When you do not insert a Workplace, when no Workplace is present that supports
this service, or when all Workplace s that support this service are occupied, Plant Simulation
transports the Worker to the work station itself, where he will perform his task. Then, the material
flow object only shows with an LED in the LED area of its icon that a Worker is working. It does
not animate him there, but continues to animate him in the WorkerPool.
If a Worker is brokered for an importer for performing set-up, repairing or processing services and this
Worker then is assigned a failure, the Worker walks to the Workerpool and the importer immediately
places a new request to the Broker. Consequently the respective operation can also be finished by
another Worker.
When the Worker pauses or when a failure occurs when he finishes his work at the same time Plant
Simulation does not delete the DisruptionEnd, Out, and SetupEnd events from the event list and
does not request the Worker again after the failure or pause. This applies to set-up, processing,
and repair jobs.
A paused Worker always returns to the Workerpool. A failed Worker stays at the
Workplace.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
We offer alternative graphics for the Worker in the 3D Viewer. Click Exchange Graphics in the 3D
window of the Worker and select an alternative graphic.
If you would like to show a Sankey diagram which visualizes the paths of the Worker who move freely
within the area, use the WorkerSankeyDiagramm.
If you would like to show statistics of all Workers, who are stationed in a single WorkerPool, use
the Worker Chart.
Also compare the videos Modeling with Workers and Worker Carrying Parts between
Workplaces, which you can open under Window ribbon tab > Start Page > Getting Started
> Videos.
Related Topics
Modeling Workers and the Jobs They Do Dialog Window of the Worker
How the Worker Finds the Shortest Route Read-Only Attributes of the Worker
In the example above the Connectors, which the shortest route mechanism uses, are shown fat and
in green and the FootPaths, whose lengths are taken into account, are shown in dark blue.
The Worker evaluates the MU targets and moves to the closest one first. At the target station, he
places all parts destined for this station. If he carries additional parts, he evaluates the next target
and moves on to the closest one.
If your plant works in shifts, the Worker walks back to his WorkerPool at the end of his shift. He then
deposits the parts he could not deliver into the Parts buffer, which you assigned to the WorkerPool.
The parts buffer can be any one of the material flow objects, which accepts parts. When you did not
assign a parts buffer to the WorkerPool, Plant Simulation shows a warning and stops the simulation.
When the next shift starts, Plant Simulation treats the parts in the parts buffer according to the exit
strategy you selected for the parts buffer. When you select Carry part away, the carrying Worker
requests the service, which you entered.
To send a Worker to a specific station or to a WorkerPool, you can use the methods goTo or goToPool.
To change the services for an available Worker, you can use the method services.
Compare the video Worker Carrying Parts between Workplaces, which you can open under
Window ribbon tab > Start Page > Getting Started > Videos.
Related Topic
Model a Worker Who Carries Parts Between Workplaces
Double-click the icon of the Worker, which was created in a Frame, to open its dialog window. To
change the properties of the Class of the object, double-click it in the Class Library or on the tab
Resources in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Dialog Items of the Objects.
Related Topics
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Priority Shift
Efficiency Broker
Speed Services
Capacity Service
Priority
Enter an integer value for the Priority. The higher the value that you enter, the higher is the priority,
i.e., the sooner the job will get done. This means that Plant Simulation processes a service with
priority 10 before it processes a service with priority 1.
When several qualified Workers/Exporters with the same priority exist, who can provide the requested
service, Plant Simulation first procures the Workers/Exporters , who already stay on a suipara
Workplace. Then, Plant Simulation procures Workers/Exporters , who are currently not staying on
a Workplace. Lastly Plant Simulation procures those Workers/Exporters, who are staying on a
Workplace, which belongs to another station or which does not support the requested service.
Related Topic
Priority
Efficiency
Enter the efficiency in percent with which the Worker works. It determines how fast the Worker
performs the task assigned to him:
With an efficiency of 100 percent he requires the exact processing time, which you entered.
With an efficiency of 200 percent he requires half of the processing time, which you entered.
With an efficiency of 50 percent he requires twice the processing time, which you entered.
When more than one Worker performs jobs at the station, the efficiency of the slowest
Worker determines the processing time of the part/MU.
SimTalk:
Efficiency
Related Topic
Creation table
Speed
Enter the speed with which the Worker walks on the FootPath to the designated Workplace at the
Workstation.
SimTalk:
Speed
Capacity
Enter the Capacity of the Worker into this text box. The capacity is a value greater than 0 that
designates the maximum number of parts he can carry.
You can only reduce the capacity if the capacity provided to the importers will not be
undercut. When you increase the capacity, the Broker will immediately attempt to find
new importers.
SimTalk:
Capacity
Shift
Enter the name of the shift during which the Worker works. When you do not enter a specific
shift on the Tab Shift Times of the ShiftCalendar, the Worker works during all shifts defined in this
ShiftCalendar.
SimTalk:
Shift
Broker
Click and select the Broker, who assigns the services to the Worker , in the dialog Select Object.
You might also, for example, type in .Models.MyPlant.MyBroker .
Or you can select the Broker in a Frame, drag it to the text box and drop it there.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Related Topic
BrokerPath
Services
To open a list, into which you enter the names of the services, which the Exporter/ Worker provides,
click this. Enter the name of the service into the cell. The Exporter/Worker attempts to provide the
services in the order in which you enter them into the list. You might, for example, enter drilling,
milling, turning, etc.
If you want the Worker to provide additional services, you can enter these services into the Creation
table. SimTalk: services.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator, compare
Relational Operators.
Click this to deactivate Inheritance . Only then you can enter data into the list.
Related Topics
Exported Services
Context Menu of Embedded Lists
services
Service
Here the Worker who carries a part shows the brokered or the assigned service. For the loading time
you can query this service with the method getExportedServices.
Tab Failures
Define failures as described under the Tab Failures.
Related Topics
Active Availability
Start Availability
Stop MTTR
Duration
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Order control and the Release control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Order control
Click and select a Method object in the dialog Select Object. Enter the source code of the order
control, which defines how the Worker handles an order. The order control is called whenever the
Worker is assigned to an importer.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
The Method has two parameters that characterize the importer:
• The parameter Importer of data type object designates the importer.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
SimTalk:
OrderCtrl
Release control
Click and select a Method object in the dialog Select Object. Enter the source code of the
release control, which defines how the Worker releases an order. The Worker calls the control as
soon as an importer releases the Worker. When the control is called, the Worker has already left
its importer. When you did enter a Method, the Worker will not be mediated for already waiting
importers. If you would like to procure the Worker for already waiting importers nonetheless, you
have to employ the MethodfindNewImporter.
Plant Simulation calls the release control, which you entered into the Worker for the
transport-importer, when the Worker starts to carry parts away. This is then the case,
when either the Maximum dwell time has passed or when the Worker cannot pick up any
more parts because his Capacity is used up.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
Parameters
• The parameter Importer of data type object designates the Worker proper.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
SimTalk:
ReleaseCtrl
Tab Statistics
Tab Statistics
Plant Simulation shows the most important statistical data on the tab Statistics.
It shows the values for the Services and for the Worker. For each of these blocks, adding up the
individual values results in 100 percent.
The Worker collects failed times of the services and of the Worker.
The Worker only collects Failed times that accrue during the processing time, i.e., times that are
located outside of the paused and of the unplanned time.
Waiting times only accumulate during the times, when the Worker is available, i.e., when these times
are located outside of the paused, the unplanned, and of the failed times.
Exporter statistics
To collect statistics data of the Worker, select this. To deactivate statistics collection, clear the
check box.
SimTalk:
ExpStatOn
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Importers
Position
Contents
The menu command Contents opens a table showing all MUs, which the Worker carries. For a
Worker with the capacity 1 the table has one column. It has as many columns as the Capacity
you entered.
Related Topics
Cont muPart
ContentsList numMu
DeleteMovables NumMUParts
mu
Position
The menu command Position opens a table, which shows the object on which the Worker is located
at the moment.
Importers
The menu command Importers opens a table showing all importers for which the Worker provides
services.
The table shows the Importers in column 1, and their Type in column 2: The number 0 designates
the failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Related Topics
findNewImporter
getImporters
Exported Services
The menu command Exported Services opens a list showing the names of all services, which the
Worker provides at this time. Double-click the name of a service to open a sub-table, which shows
the name of the Importer, the Type of the importer and the Amount of services provided.
Related Topics
getExportedServices
services
Route to Destination
The menu command Route to Destination selects all objects along the way to the destination
object of the Worker.
Related Topic
getRouteLength
The Worker is an Exporter with the capacity 1. For this reason it also provides the
methods of the Exporter.
When you do not use a FootPath, Plant Simulation beams the Worker to the Workplace.
To view all of the methods and attributes of the Worker, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
create
Syntax: MU-path.create(WorkerPool:object)
The method create creates an instance of the Worker designated by MU-path in the WorkerPool
designated by object.
Parameter
The parameter WorkerPool of data type object the WorkerPool where the Worker will be created
Example: .Resources.MyWorker:1.create(MyWorkerPool);
getRouteLength
The method getRouteLength expects the target object of the Worker and returns the route from its
present location to this target object.
When you enter a station as the target object, then the method returns the length of the
route to the Workplace, which can be reached on the shortest route. When the Worker
is exporting a service at the moment, it only takes those Workplaces into consideration,
which support the service, including all Workplaces, which are not restricted to certain
services. When you enter a Workplace as target object, Plant Simulation always computes
the length to this Workplace, no matter if it supports the exported service or not.
Parameter
The parameter Target of data type object designates the target object. The target object can be a
Workplace, a WorkerPool or a station to which you attached Workplaces.
Data Type of Value You Can Assign
The return value has the data type length.
Example: .Resources.Worker:1.getRouteLength(MyWorkplace1);
Related Topic
Route to Destination
goTo
If the object you pass is not a Workplace but a station, the Worker walks to the closest
Workplace assigned to the station instead.
Parameters
• The parameter Workplace of data type object designates the Workplace to which you want
to send the Worker.
• The optional parameter ReservedExclusively of data type boolean sets if the Workplace will be
reserved exclusively for the Worker until he leaves the Workplace (true or no parameter). In this
case the Workplace is not available any longer for another Worker even while the designated
Worker is on his way to the Workplace. If the Workplace is already occupied by another Worker,
the Worker you send stops and the method returns false.
When you enter false as the boolean parameter, the Workplace is not going to be reserved. The
Worker walks to the Workplace, and if the Workplace is occupied, he waits until it becomes available
again.
Data Type of Value You Can Assign
The return value has the data type boolean.
If the Worker is exporting a service at the moment, he stays where he is at. In this case the method
returns false.
Example: .Resources.MyWorker:1.goTo(MyWorkplace);
Example: .Resources.MyWorker:1.goTo(MyWorkplace,false);
goToPool
Example: .Resources.MyWorker:1.goToPool;
services
Syntax: Path.services
The method services sets or returns the names of the Services that the Worker designated by
Path provides.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in an case-insensitive manner with the == operator, compare
Relational Operators.
Assignment/Data Type of Value You Can Assign
The value has the data type array.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
AvailableForMediation
Syntax: Path.AvailableForMediation
The read-only attribute AvailableForMediation returns if the Worker can be brokered (true) or not
(false).
Data Type of Value You Can Assign
The return value has the data type boolean.
The attribute returns true, when the Worker is not failed, not paused, does not carry parts, and
when he is not brokered.
Example: print .Resources.MyWorker:2.AvailableForMediation;
StatServicesEnRouteIdleCount
Syntax: Path.StatServicesEnRouteIdleCount
The read-only attribute StatServicesEnRouteIdleCount returns how often the Worker was on his way
without having an order. This means that he was on his way, while he could be mediated. This
occurs, for example, when you clear Get job orders in the pool only and also clear Worker stays here
after completing the job at the Workplace. When you send the Worker to a Workplace with the
method goTo, then this will also be added to the value StatServicesEnRouteIdleCount.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:1.StatServicesEnRouteIdleCount;
StatServicesEnRouteIdlePortion
Syntax: Path.StatServicesEnRouteIdlePortion
The read-only attribute StatServicesEnRouteIdlePortion returns the portion of the overall statistics
time during which the Worker was en-route without being assigned a job order. The overall statistics
time is the statistics collection period without the unplanned time and the paused time .
This means that he was on his way, while he could mediated. This occurs, for example, when you
clear Get job orders in the pool only and also clear Worker stays here after completing the job at the
Workplace. When you send the Worker to a Workplace with the method goTo, then the time he was
on this way will also be added to the value StatServicesEnRouteIdlePortion.
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:1.StatServicesEnRouteIdlePortion;
Related Topics
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesEnRouteIdleTime
Syntax: Path.StatServicesEnRouteIdleTime
The read-only attribute StatServicesEnRouteIdleTime returns the total time during which the
Worker was en-route without having a job. This means that he was on his way, while he could
be mediated. This occurs, for example, when you clear Get job orders in the pool only and also
clear Worker stays here after completing the job at the Workplace. When you send the Worker to
a Workplace with the method goTo, then the time he was on this way will also be added to the
value StatServicesEnRouteIdleTime.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:1.StatServicesEnRouteIdleTime;
StatServicesEnRouteToJobCount
Syntax: Path.StatServicesEnRouteToJobCount
The read-only attribute StatServicesEnRouteToJobCount returns how often the Worker was en-route
to a Workplace, to which he was mediated for do a job at the associated station. When you check
Get job orders in the pool only, Plant Simulation also counts how often the Worker walked back to
the WorkerPool to get the next order.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:1.StatServicesEnRouteToJobCount;
StatServicesEnRouteToJobPortion
Syntax: Path.StatServicesEnRouteToJobPortion
The read-only attribute StatServicesEnRouteToJobPortion returns the portion of the overall statistics
time during which the Worker was en-route to a Workplace, to which he was mediated to do a job
at the associated station. The overall statistics time is the statistics collection period without the
unplanned time and the paused time.
When you check Get job orders in the pool only, Plant Simulation also counts the time during which
the Worker walked back to the WorkerPool to get the next order.
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:1.StatServicesEnRouteToJobPortion;
Related Topics
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesEnRouteToJobTime
Syntax: Path.StatServicesEnRouteToJobTime
The read-only attribute StatServicesEnRouteToJobTime returns the total time during which the
Worker was en-route to a Workplace , for which he was mediated to do a job at the associated
station. When you check Get job orders in the pool only, Plant Simulation also counts the time during
which the Worker walked back to the WorkerPool to get the next order.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:1.StatServicesEnRouteToJobTime;
StatServicesFailedCount
Syntax: Path.StatServicesFailedCount
The read-only attribute StatServicesFailedCount returns how often the services of the Worker
designated by Path were failed.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:1.StatServicesFailedCount;
StatServicesFailedPortion
Syntax: Path.StatServicesFailedPortion
The read-only attribute StatServicesFailedPortion returns the portion of the failed time of the services
of the overall statistics time of the Worker designated by Path. The overall statistics time is the
statistics collection period without the unplanned time and the paused time.
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:1.StatServicesFailedPortion;
Related Topics
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesFailedTime
Syntax: Path.StatServicesFailedTime
The read-only attribute StatServicesFailedTime returns the total time during which services of the
Worker designated by Path were failed.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:1.StatServicesFailedTime;
StatServicesRepairingCount
Syntax: Path.StatServicesRepairingCount
The read-only attribute StatServicesRepairingCount returns how often the services of the Worker
designated by Path worked on repairs.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:1.StatServicesRepairingCount;
StatServicesRepairingPortion
Syntax: Path.StatServicesRepairingPortion
The read-only attribute StatServicesRepairingPortion returns the portion of the repairing time of the
services of the overall statistics time of Worker designated by Path. The overall statistics time is the
statistics collection period without the unplanned time and the paused time.
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:1.StatServicesRepairingPortion;
Related Topics
StatServicesRepairingTime
Syntax: Path.StatServicesRepairingTime
The read-only attribute StatServicesRepairingTime returns the total time, which the services of the
Worker designated by Path spent for repairs.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:1.StatServicesRepairingTime;
StatServicesSetupCount
Syntax: Path.StatServicesSetupCount
The read-only attribute StatServicesSetupCount returns how often the services of the Worker
designated by Path were setting- up the station.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:1.StatServicesSetupCount;
StatServicesSetupPortion
Syntax: Path.StatServicesSetupPortion
The read-only attribute StatServicesSetupPortion returns the portion of the set-up time of the services
of the overall statistics time of the Worker designated by Path. The overall statistics time is the
statistics collection period without the unplanned time and the paused time.
If a station fails and or is unplanned or paused and services for setting-up or processing
are mediated for this station, the services remain assigned. For this reason the set-up time
and the processing time for the services continues while the station is failed.
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:1.StatServicesSetupPortion;
Related Topics
Tab Statistics of the Worker
StatServicesSetupTime
Syntax: Path.StatServicesSetupTime
The method StatServicesSetupTime returns the total time the services of the Worker designated
by Path were setting the station up.
Return Value
The return value has the data type time.
StatServicesTransportingCount
Syntax: Path.StatServicesTransportingCount
The method StatServicesTransportingCount returns how often the Worker was carrying parts from
Workplace to Workplace.
Return Value
The return value has the data type integer.
StatServicesTransportingPortion
Syntax: Path.StatServicesTransportingPortion
The method StatServicesTransportingPortion returns the portion of the overall statistics time during
which the Worker was carrying parts from Workplace to Workplace. The overall statistics time is the
statistics collection period without the unplanned time and the paused time.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Worker
Statistics report , Service Statistics — States — Time Portions of the Exporters
StatServicesTransportingTime
Syntax: Path.StatServicesTransportingTime
The method StatServicesTransportingTime returns the total time during which the Worker was
carrying parts from Workplace to Workplace.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:1.StatServicesTransportingTime;
StatServicesWaitingImpCount
Syntax: Path.StatServicesWaitingImpCount
The method StatServicesWaitingImpCount returns how often the services of theWorker designated
by Path waited for an importer.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:2.StatServicesWaitingImpCount;
StatServicesWaitingImpPortion
Syntax: Path.StatServicesWaitingImpCount
The method StatServicesWaitingImpPortion returns the portion of the overall statistics time which the
services of the Worker designated by Path spent waiting for an importer. The overall statistics time is
the statistics collection period without the unplanned time and the paused time .
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:2.StatServicesWaitingImpCount;
Related Topics
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesWaitingImpTime
Syntax: Path.StatServicesWaitingImpPortion
The method StatServicesWaitingImpTime returns the total waiting time of the services of the Worker
designated by Path for an importer.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:2.StatServicesWaitingImpPortion;
StatServicesWaitingMUCount
Syntax: Path.StatServicesWaitingMUCount
The method StatServicesWaitingMUCount returns how often the services of the Worker designated
by Path spent waiting for an MU at the importer.
Return Value
The return value has the data type integer.
StatServicesWaitingMUPortion
Syntax: Path.StatServicesWaitingMUPortion
The method StatServicesWaitingMUPortion returns the portion of the overall statistics time during
which the services of the Worker designated by Path were waiting for an MU at the importer. The
overall statistics time is the statistics collection period without the unplanned time and the paused
time.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesWaitingMUTime
Syntax: Path.StatServicesWaitingMUTime
The method StatServicesWaitingMUTime returns the total time theservices of the Worker designated
by Path were waiting at the importer for an MU.
Return Value
The return value has the data type time.
StatServicesWaitingPortion
Syntax: Path.StatServicesWaitingPortion
The method StatServicesWaitingPortion returns the portion of the waiting time of the services of the
overall statistics time of the Worker designated by Path. The overall statistics time is the statistics
collection period without the unplanned time and the paused time.
Return Value
The return value has the data type real.
Example: print .Resources.MyWorker:2.StatServicesWaitingPortion;
StatServicesWaitingTime
Syntax: Path.StatServicesWaitingTime
The method StatServicesWaitingTime returns the time which the services of the Worker designated
by Path were waiting in relation to the statistics collection period.
Return Value
The return value has the data type time.
Example: print .Resources.MyWorker:2.StatServicesWaitingTime;
StatServicesWorkingCount
Syntax: Path.StatServicesWorkingCount
The method StatServicesWorkingCount returns the number of working processes which the services
of the Worker designated by Path provided.
Return Value
The return value has the data type integer.
Example: print .Resources.MyWorker:1.StatServicesWorkingCount;
StatServicesWorkingPortion
Syntax: Path.StatServicesWorkingPortion
The method StatServicesWorkingPortion returns the working portion of the services of the overall
statistics time of the Worker designated by Path. The overall statistics time is the statistics collection
period without the unplanned time and the paused time.
If a station fails and/or is unplanned or paused and services for setting-up or processing
are mediated for this station, the services remain assigned. For this reason the set-up time
and the processing time for the services continues while the station is failed.
Return Value
The return value has the data type real.
Related Topics
Tab Statistics of the Worker
Statistics report, Service Statistics — States — Time Portions of the Exporters
StatServicesWorkingTime
Syntax: Path.StatServicesWorkingTime
The method StatServicesWorkingTime returns the time taken up by working processes of the services
of the Worker designated by Path.
Return Value
The return value has the data type time.
StatTraveledDistance
Syntax: Path.StatTraveledDistance
The method StatTraveledDistance returns the distance which the instance of the Worker designated
by Path covered while walking from the Workerpool to the Workplaces attached to the stations
and between the stations in meters.
Return Value
The return value has the data type length.
Related Topics
Tab Statistics of the Worker
Statistics report, Worker Statistics — Traveled Distance by Workers
The Worker is an Exporter with the capacity 1. For this reason it also provides the
methods of the Exporter.
When you do not use a FootPath, Plant Simulation transports the Worker to the
Workplace.
To view all of the methods and attributes of the Worker, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
.Resources.MyWorker:2.Efficiency := 90;
print .Resources.Worker.MyWorker:2.Efficiency;
posit := SingleProc.Cont.XPos;
AutomaticMediation
Syntax: Path.AutomaticMediation
The attribute AutomaticMediation prevents that the Worker, which you yourself want to assign, is
automatically assigned by the Broker.
To make the Broker assign the Worker automatically, assign true. To assign the Worker yourself,
assign false.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: -- SimTalk 2.0 notation
param type: integer -- Importer type (0=failure, 1=setup, 2=processing, 3=tran
var t: table
switch type
case 0
?.failImp.releaseExporters
case 1
?.setupImp.getExporters(t)
if t.yDim > 0
t[1,1].AutomaticMediation := true
end
?.setupImp.releaseExporters
case 2
?.imp.getExporters(t)
if t.yDim > 0
t[1,1].AutomaticMediation := true
end
?.imp.releaseExporters
end
?.imp.releaseExporters;
end;
end;
BrokerPath
Syntax: Path.BrokerPath
The attribute BrokerPath sets the path to the Broker, which procures the services that the Worker
provides.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: print .Resources.MyWorker:2.BrokerPath;
.Resources.MyWorker:2.BrokerPath := myBroker;
.Resources.MyWorker:2.BrokerPath := Broker3;
Related Topic
Broker
Capacity
Syntax: Path.Capacity
The attribute Capacity sets the Capacity of the Worker, i.e., the number of parts it can carry. The
Capacity is a value greater than or equal to zero.
Data Type of Value You Can Assign
You can assign a value of data type integer.
You can only reduce the capacity if the capacity provided to the importers is not fallen short
of. If you increase the capacity, the Broker will immediately attempt to find new importers.
Example: .Resources.MyWorker:2.Capacity := 2;
Related Topic
Capacity
Efficiency
Syntax: Path.Efficiency
The attribute Efficiency sets the Efficiency of the Worker, i.e., how fast he performs the task assigned
to him:
• With an efficiency of 100 percent he requires the exact processing time, which you entered.
• With an efficiency of 200 percent he requires half of the processing time, which you entered.
• With an efficiency of 50 percent he requires twice of the processing time, which you entered.
Related Topic
Efficiency
OrderCtrl
Syntax: Path.OrderCtrl
The attribute OrderCtrl designates a Method object, the Order control, which defines how the Worker
handles an order. The order control is called whenever the Worker is assigned to an importer.
Parameters
The Method has two parameters that characterize the importer:
• The parameter Importer of data type object designates the importer.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Reformatting the Method: When you manually enter an order control and click Apply or OK, Plant
Simulation automatically checks if the Method expects the correct parameters. If this is not the
case, Plant Simulation shows a message asking if the Method shall be reformatted or not. Empty
methods are reformatted automatically. Note that you cannot suppress the checking of the format
of the Method.
Data Type of Value You Can Assign
You can assign a value of data type method.
Example: -- SimTalk 2.0 notation
.Resources.MyWorker:2.OrderCtrl := &myOrderCtrl
Related Topic
Order control
Priority
Syntax: Path.Priority
The attribute Priority sets the Priority with which the Worker fulfills a request. The higher the value
that you enter, the higher is the priority, i.e., the sooner the job will get done. The attribute only refers
to Workers that are registered with the same Broker.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: .Resources.MyWorker:2.Priority := 6;
Related Topic
Priority
ReleaseCtrl
Syntax: Path.ReleaseCtrl
The attribute ReleaseCtrl designates a Method object, the Release control, which the Worker calls
as soon as an importer releases it.
The request control, the receive control, and the release control are not called when you reset
the simulation.
Parameters
Each Method you enter here is defined by two parameters that characterize the importer:
• The parameter Importer of data type object designates the importer proper.
• The parameter Type of data type integer designates its type: 0 designates the failure/remove
failure-importer, 1 the set-up-importer, 2 the processing-importer, and 3 the transport-importer.
Plant Simulation calls the Release control, which you entered into the Worker for the
transport-importer, when the Worker starts to carry parts away. This is then the case,
when either the Maximum dwell time has passed or when the Worker cannot pick up any
more parts because his Capacity is used up.
Reformatting the Method: When you manually enter an order control and click Apply or OK, Plant
Simulation automatically checks if the Method expects the correct parameters. If this is not the
case, Plant Simulation shows a message asking if the Method shall be reformatted or not. Empty
methods are reformatted automatically. Note that you cannot suppress the checking of the format
of the Method.
Data Type of Value You Can Assign
Related Topic
Release control
Shift
Syntax: Path.Shift
The attribute Shift sets the name of the Shift during which the Worker works. When you enter an
empty string (""), the Worker works during all shifts, which are defined in the associated ShiftCalendar.
Data Type of Value You Can Assign
You can assign a value of data type string.
Example: .Resources.MyWorker:2.Shift := "Night shift";
.Resources.MyWorker:2.Shift := "";
-- the worker works during all shifts
Related Topic
Shift
Speed
Syntax: Path.Speed
The attribute Speed sets the Speed with which the Worker moves on the footpath.
Data Type of Value You Can Assign
You can assign a value of data type speed.
Example: .Resources.MyWorker:2.Speed := 0.5;
Related Topic
Speed
WorkerPool
Syntax: Path.WorkerPool
The attribute WorkerPool sets the WorkerPool to which the Worker belongs.
Data Type of Value You Can Assign
WorkerPool
WorkerPool
The Broker procures the Worker for the individual work stations. As soon as a Worker can provide a
service, the Broker sends him from his WorkerPool to the work station that ordered him:
• When you modeled the work station using one of the material flow objects and the Workplace
and connected the WorkerPool and the Workplace with a FootPath, Plant Simulation animates
the Worker, while he moves on the FootPath and while he works on the Workplace.
• When you inserted a Workplace, and the Worker, who is supposed to work there, cannot
reach it via a FootPath, Plant Simulation transports the Worker directly to the Workplace and
animates him there.
• When you do not insert a Workplace, when no Workplace is present that supports this service,
or when all Workplace s that support this service are occupied, Plant Simulation transports the
Worker to the work station itself, where he will perform his task. Then, the material flow object
only shows with an LED in the LED area of its icon that a Worker is working. It does not animate
him there, but continues to animate him in the WorkerPool.
If your plant works in shifts, the Worker walks back to his WorkerPool at the end of his shift. He then
deposits the parts he could not deliver into the Parts buffer, which you assigned to the WorkerPool.
The parts buffer can be any one of the material flow objects, which accepts parts. When you did not
assign a parts buffer to the WorkerPool, Plant Simulation shows a warning and stops the simulation.
When the next shift starts, Plant Simulation treats the parts in the parts buffer according to the exit
strategy you selected for the parts buffer. When you select Carry part away, the carrying Worker
requests the service, which you entered.
The WorkerPool in 3D looks like this:
As opposed to 2D it only shows a single Worker in 3D. If you would like to see how many Workers are
staying in the WorkerPool, open it in a new 3D window.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Modeling Workers and the Jobs They Do Read-Only Attributes of the WorkerPool
Double-click the icon of the WorkerPool, which you inserted into a Frame, to open its dialog window.
To change the properties of the Class of the object, double-click it in the Class Library or on the tab
Resources in the Toolbox. The dialog elements and menus, which all material flow objects share,
are described under Instance.
Related Topics
Tab Attributes OK
Tab Attributes
Tab Attributes
Creation Table
Click the button to deactivate Inheritance . Only then you can enter data into the para.
To open the para, into which you enter information pertaining to the Workers to be created and
inserted into your model,click this. You can enter up to 30 different types of additional services into
the columns to the right of Additional Services. You can also leave gaps between the services in
the table. This way you can enter identical services one below the other, even when you want
some Workers to not provide these services.
• Enter the class of the Worker, which the WorkerPool uses as a template for the Workers to be
created, into the cells below Worker. You might, for example, enter .Resources.Worker.
• Enter the number of the Workers to be created into the cells below Amount.
• Enter the name of a Shift which you defined in the associated Shift calendar.
• If you want the Worker to move on the FootPath with a different Speed than the one defined in its
class, enter this speed into the cell below Speed. Note that this deactivates inheritance for the
speed, i.e., speed changes in the class will not affect the Worker ( s ) defined in this row.
When you do not enter anything, the Worker moves with the speed entered in the class, meaning
he inherits that value from the class.
• Enter the Efficiency of the Workers to be created into the cells below Efficiency. You might, for
example, enter 80 for an efficiency of 80 percent.
• Enter services the Worker can provide, in addition to those you entered into the Services list, into
the cells below Additional Services.
Enter different types of additional services into the columns to the right.
The name of the service is not case-sensitive, just like the names of attributes and
methods of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first
occurrence of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in an case-insensitive manner with the == operator, compare
Relational Operators.
You can also change the creation table within the Init control of the WorkerPool for the upcoming
simulation run. This is not possible in an init method, as the method is executed too late in time.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
SimTalk:
getCreationTable
setCreationTable
Related Topics
Define How Many Workers Are Created When the Model is Initialized
Context Menu of Embedded Lists
To make the Worker get new work orders for performing a service at a station in the WorkerPool only,
select this. When you clear the checkbox, new orders can be assigned to the Worker anywhere, for
example, while he walks on a FootPath.
SimTalk:
GetJobOrdersInPoolOnly
Travel mode
Select the travel mode of the Worker from the dropdown list:
• Beam to workplace
The Worker is beamed (teleported) to the Workplace to which he was brokered and at which he
is going to work instantly, without using up any time, provided he cannot get to this Workplace
on any Footpath.
You can use this feature to build a model, which does not contain any FootPaths. The
Worker then always jumps between the WorkerPool and the Workplaces.
The travel mode will only be transmitted from the WorkerPool to the Workers when they
are created, meaning that it will not be changed after the Workers are created.
SimTalk:
WorkersTravelMode
Related Topics
Define How Many Workers Are Created When the Model is Initialized
Edit 3D Properties > Tab Graphics > Obstacle for the Worker in 3D
Edit 3D Properties > Tab Graphic Settings in 3D
Insert Barred Area in 3D
To make the Worker do his job from his current location, when there is no free Workplace available
at the station, to which he was assigned, select this. When you clear the checkbox, the program
shows a n error message.
You can use this feature to build a model, which does not contain any Workplaces. The
Worker will then stay in the WorkerPool the entire time and work from there.
When a free Workplace is available, the Worker will use this Workplace, even if select
Workers can work remotely. If you want to prevent a certain service from using a
Workplace, you can either employ an Exporter or restrict the Workplaces to certain
services.
SimTalk:
WorkersCanWorkRemotely
Broker
Click and select the Broker, who assigns the services to the Worker, in the dialog Select Object.
Or you can select the Broker in a Frame, drag it to the text box and drop it there.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Related Topic
BrokerPath
Shift calendar
Click and select the ShiftCalendar in the dialog Select Object. This ShiftCalendar object contains
the data of the shifts in your installation and controls during which shifts the Worker works.
Or you can select the ShiftCalendar in a Frame, drag it to the text box and drop it there.
When the Worker works in shifts, you also have to select the Parts buffer. He deposits the parts, which
he could not deliver, onto this object, when he walks back to the WorkerPool at the end of his shift.
SimTalk:
ShiftCalendarObject
Parts buffer
Click this and select the parts buffer into which the Worker deposits the parts he could not deliver,
when he walks back to the WorkerPool at the end of his shift. The parts buffer can be any one of the
material flow objects, which accepts parts. When you did not assign a parts buffer to the WorkerPool,
Plant Simulation hows a warning and stops the simulation. When the next shift starts, Plant Simulation
treats the parts in the parts buffer according to the exit strategy you selected for the parts buffer.
When you select Carry part away, the carrying Worker requests the service, which you entered.
This setting only applies, when you control the shifts worked in your facility with the Shift
calendar.
SimTalk:
PartsBuffer
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control and the Exit control.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Entrance control
Click this and select a Method object into which you entered the source code of the entrance
control. Plant Simulation activates the entrance control once the Worker has entered the object.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
EntranceCtrl
Exit control
Click this and select a Method object into which you entered the source code of the exit control.
Plant Simulation activates the exit control once the Worker has left the object.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
ExitCtrl
Tab Statistics
Tab Statistics
Plant Simulation shows the most important statistics values and the text field Average traveled
distance on the tab Statistics. The tab is described under the Tab Statistics.
To view Resource Statistics of Stationary Resources in the Statistics Report, click the object in
the Frame , and press F6 (Show Statistics Report), or click Show Statistics Report on the Home
ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Resource statistics
Resource type
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Assigned Workers
Assigned Workers
The menu command Assigned Workers opens a list showing all Workers for which the WorkerPool
provides services.
Related Topic
getAssignedWorkersTable
Working Workers
The menu command Working Workers opens a list which shows:
• The Worker who provides the service.
Init control
Click this and select a Method object in the dialog Dialog Items of the Objects. Enter the source
code of the init control. Plant Simulation calls this control once at the beginning of the simulation run
during the init phase before the objects are initialized and before init methods are executed.
Within the init control you can, for example, change the WorkerCreation Table of the Workerpool
for the next simulation run. This cannot be accomplished in an init method as this method would be
called too late in time.
You can also initialize attributes which affect event generation, for example the availability. Here the
init controls are executed before events are generated. The normal init methods are executed after
the calculation of the initial events.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
SimTalk:
InitCtrl
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
Syntax: Path.readFile(FileName:string [,NoDebugger:boolean])
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getAssignedWorkersTable
Syntax: Path.getAssignedWorkersTable(AssignedWorkers:table)
The method getAssignedWorkersTable returns the table containing the assigned Workers and
writes it into a table.
Parameter
The parameter AssignedWorkers of data type table designates the name of the para.
Example: MyWorkerPool.getAssignedWorkersTable(MyAssignedWorkersTable);
Related Topic
Assigned Workers
getCreationTable
Syntax: Path.getCreationTable(WorkerCreationTable:table)
The method getCreationTable returns the Creation table of the WorkerPool and writes it into a table.
Parameter
The parameter WorkerCreationTable of data type table designates the name of the creation table.
Example: -- SimTalk 2.0 notation
var rt: table -- read the creation table
MyWorkerPool.getCreationTable(rt) -- set the new amount
rt [2,1]:= AmountOfWorkers -- name of a Variable
-- assigne the worker creation table to the WorkerPool
MyWorkerPool.setCreationTable(rt)
Related Topics
setCreationTable
Creation table
setCreationTable
Syntax: Path.setCreationTable(WorkerCreationTable:table)
The method setCreationTable sets the name of the WorkerPool’s Creation table.
Parameter
The parameter WorkerCreationTable of data type table designates the name of the table.
Enter the names of the Workers to be created, their amount, their speed, their efficiency and their
qualification into the table.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in an case-insensitive manner with the == operator, compare
Relational Operators.
Related Topics
getCreationTable
Creation table
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
StatAverageTraveledDistance
Syntax: Path.StatAverageTraveledDistance
The read-only attribute StatAverageTraveledDistance returns the average distance in meters which
the Worker traveled from the WorkerPool to the Workplaces attached to the stations and between
the stations.
Return Value
The return value has the data type length.
Example: print MyWorkerPool.StatAverageTraveledDistance
Related Topic
Average traveled distance
To view all of the methods and attributes of the WorkerPool, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyWorkerPool.BrokerPath := mybroker;
BrokerPath
Syntax: Path.BrokerPath
The attribute BrokerPath sets the path to the Broker, which the WorkerPool uses to provide the
services.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: print MyWorkerPool.BrokerPath;
MyWorkerPool.BrokerPath := myBroker;
MyWorkerPool.BrokerPath := Broker3;
Related Topic
Broker
EntranceCtrl
Syntax: Path.EntranceCtrl
The attribute EntranceCtrl designates a Method object, the Entrance control, which the object
designated by Path calls as soon as the Worker has entered the object.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyWorkerPool.EntranceCtrl := &myEntranceCtrl
Related Topic
Entrance control
ExitCtrl
Syntax: Path.ExitCtrl
The attribute ExitCtrl designates a Method object, the Exit control, which is called as soon as the
Worker exits the object designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyWorkerPool.ExitCtrl := &myExitControl
Related Topic
Exit control
GetJobOrdersInPoolOnly
Syntax: Path.GetJobOrdersInPoolOnly
The attribute GetJobOrdersInPoolOnly sets if the Worker returns new work orders for performing a
service at a station in the WorkerPool only (true). Assign false if you want to assign new orders to
the Worker anywhere, for example, while he walks on a FootPath.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MyWorkerPool.GetJobOrdersInPoolOnly := false;
Related Topic
Get job orders in the pool only
InitCtrl
Syntax: Path.InitCtrl
The attribute InitCtrl designates a Method object. Plant Simulation calls this control once at the
beginning of the simulation run during the init phase before the objects are initialized and before
init methods are executed.
Within the init control you can, for example, change the WorkerCreation Table of the Workerpool
for the next simulation run. This cannot be accomplished in an init method as this method would be
called too late in time.
Related Topics
Init control
PartsBuffer
Syntax: Path.PartsBuffer
The attribute PartsBuffer sets the path to the object into which the Worker deposits the parts he could
not deliver, when he walks back to the WorkerPool at the end of his shift. The parts buffer can be
any one of the material flow objects, which accepts parts. When you did not assign a parts buffer
to the WorkerPool, Plant Simulation shows a warning and stops the simulation. When the next
shift starts, Plant Simulation treats the parts in the parts buffer according to the exit strategy you
selected for the parts buffer. When you select Carry part away, the carrying Worker requests the
service, which you entered.
Related Topic
Parts buffer
WorkersCanWorkRemotely
Syntax: Path.WorkersCanWorkRemotely
The attribute WorkersCanWorkRemotely sets if the Worker will do the job from his current location,
when no free Workplace is available at the station to which he was assigned (true). When you assign
false, Plant Simulation shows an error message.
You can use this feature to build a model, which does not contain any Workplaces. The
Worker will then stay in the WorkerPool the entire time and work from there.
When a free Workplace is available, the Worker will use this Workplace, even if you set
WorkersCanWorkRemotely to true. If you want to prevent a certain service from using
a Workplace, you can either employ an Exporter or restrict the Workplaces to certain
services.
Related Topic
Workers can work remotely
WorkersTravelMode
Syntax: Path.WorkersTravelMode
The attribute WorkersTravelMode sets how the Worker moves in the simulation model.
The WorkersTravelMode will only be transmitted from the WorkerPool to the Workers when
they are created, meaning that it will not be changed after the Workers are created.
• Beam to workplace
The Worker is beamed (teleported) to the Workplace to which he was brokered and at which he
is going to work instantly, without using up any time, provided he cannot get to this Workplace
on any Footpath.
You can use the feature Beam to workplace to build a model, in which you do not want to
simulate the Worker walking. The Worker then always jumps between the WorkerPool
and the Workplaces.
Related Topic
Workers travel mode
Workplace
Workplace
You can assign a Workplace to the material flow objects that support an Importer, for example to
the SingleProc, the ParallelProc, the Assembly Station, and the DismantleStation. In this case, the
importers are processing or repairing importers.
For the transport importer, who controls Workers who carry parts away, you can assign a Workplace
to the Buffer, the PlaceBuffer, the Source, and the Store in addition.
The Workplace is the actual place at the station where the Worker performs his job.
You can, but you do not have to assign a Workplace to a station, i.e., a material flow object.
When you do not use a FootPath, Plant Simulation transports the Worker directly to the Workplace.
Here the Worker functions as an Exporter with a capacity of 1.
The Workers are created in the WorkerPool and they stay there when they do not work and are
waiting for a job order.
The Broker procures the Worker for the individual work stations. As soon as a Worker can provide a
service, the Broker sends him from his WorkerPool to the work station that ordered him:
• When you modeled the work station using one of the material flow objects and the Workplace
and connected the WorkerPool and the Workplace with a FootPath, Plant Simulation animates
the Worker while he moves on the FootPath and while he works on the Workplace.
• When you inserted a Workplace, and the Worker, who is supposed to work there, cannot
reach it via a FootPath, Plant Simulation transports the Worker directly to the Workplace and
animates him there.
• When you do not insert a Workplace, when no Workplace is present that supports this service,
or when all Workplaces that support this service are occupied, Plant Simulation transports the
Worker to the work station itself, where he will perform his task. Then, the material flow object
only shows with an LED in the LED area of its icon that a Worker is working. It does not animate
him there, but continues to animate him in the WorkerPool.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
Related Topics
Open Class
Tab Attributes OK
Tab Attributes
Tab Attributes
The tab Attributes provides these dialog items:
Station
Supported Services
Worker stays here after completing the job
Station
Click this and select the Station, to which you want to assign the Workplace, in the dialog Select
Object.
This station is a material flow object that supports an importer, e.g. the SingleProc,the ParallelProc,
the Assembly Station or the DismantleStation.
To automatically enter the Station, drag the Workplace close to a side of the material flow
object,which you want to use as the Station.
The icon of the Workplace, to which you did not assign a Station, looks like this . The icon of the
Workplace, to which you did assign a Station, looks like this .
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Or you can select the object in a Frame, drag it to the text box and drop it there.
SimTalk:
Station
Supported Services
First, click the button to deactivate Inheritance . Only then you can enter data into the list.
To open the list into which you enter the services, which the Workplace supports, click this.
• Enter an expression of your choice into the cell, and click Apply. You might, for example, enter
different names for the different services, such as drilling, milling, turning, etc. or group them
by name.
The name of the service is not case-sensitive, just like the names of attributes and
methods of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an
case-insensitive string point to the same string in main memory. The visible and
unexpected result is that the first occurrence of the string defines how the string is
written in terms of upper- and lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator,
compare Relational Operators.
• When you do not enter any services into the list, the Worker can execute any service on this
Workplace.
• When you do not insert a Workplace, when no Workplace is present that supports this service, or
when all Workplaces that support this service are occupied, the program transports the Worker to
the work station itself, where he will perform his task.
The Worker even works, when he does not find a Workplace that supports the
requested service. In this case, he will not be animated though.
Then, the material flow object only shows with an LED in the LED area of its icon that a Worker is
Working. It does not animate him there, but continues to animate him in the WorkerPool.
SimTalk:
supportedServices
Related Topic
Context Menu of Embedded Lists
To make the Worker stay at the Workplaceafter completing his job,select this. If you clear the check
box,he returns to the WorkerPoolimmediately after finishing his job.
SimTalk:
WorkerStaysHere
Tab Times
Tab Times
The tab Times provides the dialog items Loading time and Unloading time.
Loading time
The loading time is the time it takes the Worker for picking up a part at a station. After the loading
time has elapsed, the Worker waits for the delay time to pass if he still has carrying capacity. If not,
he immediately carries the part to the target station and places it there.
The part is booked on the Worker while he picks it up. The processing station is locked until the
loading time has elapsed.
Select a distribution, and enter the values, which that distribution requires,into the text box. The
program shows these values along the top border of the tab. You can also enter a constant
time(Const).
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the part for which the loading time
applies. The anonymous identifier ? points to the Workplace. You can access the Worker with ?.Cont.
Plant Simulation extends the loading time by failure times of the Worker. The processing station
remains locked during the failure.
When the Worker pauses during the loading time, Plant Simulation cancels the loading time and
considers it as completely elapsed. This means that the Worker carries at least one part to the
Workerpool. When the shift ends during the loading time, Plant Simulation cancels the loading time
and considers it as completely elapsed. This means that the Worker carries at least one part to
the parts buffer.
Failures of the processing station do not affect loading the part through the Worker. The part is
already located at the Worker and loading takes place during the failure.
The same applies for processing stations which are stopped, paused, or unplanned.
SimTalk:
LoadingTime
Unloading time
The unloading time is the time it takes the Worker for placing the part he picked up at another
station onto the target station.
The part is booked on the Worker while he places it on the target station. The target processing
station is locked until the unloading time has elapsed.
Select a distribution, and enter the values, which that distribution requires, into the text box. The
program shows these values along the top border of the tab. You can also enter a constant time
(Const).
When you select the Formula distribution, you can enter a numeric expression or the name of a
Method. You can use the anonymous identifier @ to access the part for which the unloading time
applies. The anonymous identifier ? points to the Workplace. You can access the Worker with ?.Cont.
Plant Simulation extends the loading time by failure times of the Worker. The target processing
station remains locked during the failure.
When the Worker pauses during the unloading time, Plant Simulation cancels the unloading
time. The target processing station does not remain locked and the Worker takes the parts to the
Workerpool with him. After the pause is over, unloading starts anew.
When the shift ends during the unloading time, Plant Simulation cancels the unloading time and the
Worker carries the part to the parts buffer. The target processing station does not remain locked.
Behavior during interruptions of the processing station through a failure, pause, etc.
The Worker only starts unloading when the target processing station can take on the part for
processing. If this is not the case, Plant Simulation enters the part to be unloaded into the forward
blocking list. The unloading time starts after the interruption is over.
The Worker continues unloading the part when the target processing station is being interrupted during
the unloading time. Plant Simulation also enters the part to be unloaded into forward blocking list,
when the target processing station cannot accept a part at the time of the actual unloading process
(after the unloading time has elapsed). The part stays with the Worker. After the interruption has
been removed, the Worker deposits the part onto the target processing station without any time delay.
SimTalk:
UnloadingTime
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Entrance control and the Exit control.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Related Topic
Entrance control
Click and select a Method object into which you entered the source code of the entrance control.
Plant Simulation activates the entrance control once the Worker has entered the object.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
EntranceCtrl
Related Topic
Program Controls Recording Times for Picking-up and Depositing Parts
Exit control
Click and select a Method object into which you entered the source code of the exit control.
Plant Simulation activates the exit control once the Worker has left the object.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
Or you can select the Method in a Frame, drag it to the text box and drop it there.
Or you can right-click in the text box. Then, select Create Control on the context menu to create a
control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, click in the
text box, and press the F2 key.
SimTalk:
ExitCtrl
Related Topic
Program Controls Recording Times for Picking-up and Depositing Parts
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
To view all of the methods and attributes of the Workplace, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The expression Path designates the path of the object to which the method applies.
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:string), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
getRouteLength
The method getRouteLength computes the length of the route which a Worker would have to cover to
get from a Workplace to another Workplace or to the Workerpool.
Parameter
The parameter Workplace/Workerpool of data type object designates the Workplace or the
Workerpool, which is the starting point of the route.
Data Type of Value You Can Assign
The return value has the data type length.
supportedServices
The method supportedServices sets or returns the list of the Supported Services.
The name of the service is not case-sensitive, just like the names of attributes and methods
of the objects are not case-sensitive.
To save memory and improve access speed, all places which use such an case-insensitive string
point to the same string in main memory. The visible and unexpected result is that the first occurrence
of the string defines how the string is written in terms of upper- and lower-casing.
In SimTalk you can compare strings in a case-insensitive manner with the == operator, compare
Relational Operators.
Data Type of Value You Can Assign
You can assign a value of data type array that contains the supported services.
Related Topic
Supported Services
To view all of the methods and attributes of the Workplace, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute, you might, for example, type:
MyWorkplace.Station := MySingleProc
posit := SingleProc.Cont.XPos
EntranceCtrl
Syntax: Path.EntranceCtrl
The attribute EntranceCtrl designates a Method object, the Entrance control, which the object
designated by Path calls once the Worker has entered the object.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyWorkplace.EntranceCtrl := &myEntranceCtrl
Related Topics
Entrance control
Program Controls Recording Times for Picking-up and Depositing Parts
ExitCtrl
Syntax: Path.ExitCtrl
The attribute ExitCtrl designates a Method object, the Exit control, which is called as soon as the
Worker exits the object designated by Path.
Data Type of Value You Can Assign
You can assign a value of data type object.
Example: -- SimTalk 2.0 notation
MyWorkplace.ExitCtrl := &myExitControl
Related Topics
Exit control
Program Controls Recording Times for Picking-up and Depositing Parts
LoadingTime
Syntax: Path.LoadingTime
The attribute LoadingTime sets the Loading time. This is the time it takes the Worker for picking
up a part at a station. After the loading time has elapsed, the Worker waits for the delay time to
pass if he still has carrying capacity. If not, he immediately carries the part to the target station and
places it there.
You can use the anonymous identifier @ to access the part for which the loading time applies.
Plant Simulation extends the loading time by failure times of the Worker. The processing station
remains locked during the failure.
When the Worker pauses during the loading time, Plant Simulation cancels loading and considers
it as completely elapsed. This means that the Worker carries at least one part to the Workerpool.
When the shift ends during the loading time, Plant Simulation cancels the loading time and considers
it as completely elapsed. This means that the Worker carries at least one part to the parts buffer.
Failures of the processing station do not affect loading the part through the Worker. The part is
already located at the Worker and loading takes place during the failure.
The same applies for processing stations which are stopped, paused, or unplanned.
Data Type of Value You Can Assign
You can assign a value of data type time.
Related Topic
Loading time
Station
Syntax: Path.Station
The attribute Station sets the name of the Station, i.e., of the material flow object, to which you
want to assign the Workplace.
Data Type of Value You Can Assign
You can assign a value of data type path.
Related Topic
Station
UnloadingTime
Syntax: Path.UnloadingTime
The attribute UnloadingTime sets the Unloading time. This is the time it takes the Worker for placing
the part he picked up at another station at the target station.
You can use the anonymous identifier @ to access the part for which the unloading time applies.
Behavior during interruptions of the processing station through a failure, pause, etc.
The Worker only starts unloading when the target processing station can take on the part
for processing. If this is not the case, Plant Simulation enters the part to be unloaded into
the forward blocking list. The unloading time starts after the interruption is over.
The Worker continues unloading the part when the target processing station is being
interrupted during the unloading time. Plant Simulation also enters the part to be unloaded
into forward blocking list, when the target processing station cannot accept a part at the
time of the actual unloading process (after the unloading time has elapsed). The part stays
with the Worker. After the interruption has been removed, the Worker deposits the part at
the target processing station without any time delay.
Related Topic
Unloading time
WorkerStaysHere
Syntax: Path.WorkerStaysHere
The attribute WorkerStaysHere sets if the Worker stays at the Workplace after completing his job
(true), or if he returns to the WorkerPool (false).
Related Topic
Worker stays here after completing the job
Mobile Objects
Mobile Objects
Plant Simulation provides these mobile objects to model the flow of materials through a simulation
model.
• The Entity for modeling parts being produced and transported, but not transporting other
work pieces.
• The Container for transporting other parts. It might represent pallets, bins, boxes, etc. in your
plant into which parts are placed.
• The Transporter for modeling self-propelled vehicles allowing it to drive on its own Track/
TwoLaneTrack and transporting Entities, Containers and other Transporters. You can hitch up
several Transporters to create Tugger Trains.
Note that we call a single mobile object MU and several mobile object MUs in the program and
in the help.
As opposed to the material flow objects proper, the mobile objects are not bound to a fixed location.
Initially a Source creates the MU from an MU class in the Class Library. It is then moved to the
different stations in the model along the material flow connections. The stations process the MU.
The MU remains on the final station of its movement until it is removed from the plant, usually by
a Drain .
You can also place an MU onto a material flow object with drag-and-drop, either from
the Class Library or the Toolbox.
During the simulation run the MU is either located on a material flow object, or on an MUwith loading
capabilities, such as a Container or a Transporter. The material flow objects either move the MU
along the material flow connections, symbolized by the Connector , to the next object in line, or the
flow of material is controlled by Method objects.
The length-oriented objects Line, Turnplate, Turntable, Track, and TwoLaneTrack use the actual MU
length of the mobile objects, while all other material flow objects ignore the length of the MU. The
AngularConverter use the MU length and the MU width.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Examplein the dialog Examples Collectionand click Open Model.
Related Topics
The three MU classes share a number of properties and features. The mainly differ in their loading
capacity and in their way of moving:
• The Transporter and the Container represent objects that load and transport parts, such as
a forklift, a luggage van, a pallet or a bin, etc. You can assign adimension, i.e., a capacity, of
your choice to both.
When moving on the Trackor a TwoLaneTrack, the Transporterdrives along by itself, even
powered by a battery, with the speed and the acceleration which you define, forward or in
reverse.
• The Entity represents a single part, such as a cylinder head, a crankshaft, etc. that is going to
be processed.
Related Topics
Shared Properties of the Material Flow Objects Methods of All Mobile Objects
Dialog Window of the Mobile Objects Read-Only Attributes of All Mobile Objects
Number
The MU shows the unique identifying number of each instance of the MU class next to Number. The
Source assigns this number, when it creates the MU.
You cannot change this number! The combination of MU class, Name and Number enables
Plant Simulation to uniquely identify and access the instance of a mobile object, for example
.MUs.Entity:99032.
SimTalk:
getNo
Conveying direction
The conveying direction of the Entity and the Container on the material flow object can be either
one of these:
• Forward. The part moves with its front in the direction of motion of the material flow.
• Lateral right. The part moves with its right hand side in the direction of motion.
• Backward. The part is turned by 180° and moves backwards against the direction of motion.
• Lateral left. The part moves with its left hand side in the direction of motion.
For illustration purposes we use an icon, which looks like this in its normal state:
We advise against manually changing the conveying direction, but to let the AngularConverter or
the Turntable do that.
Changing the conveying direction also permanently affects the attribute ObjectAngle.
Changing the attribute ObjectAngle does not change the conveying direction.
SimTalk:
ConveyingDirection
Tab Attributes
Tab Attributes
The tab Attributes of the Entity and the Container provides the dialog items MU length, Booking point
length, MU width, Booking point width, MU height, Booking point height, and Destination.
MU length
Enter the length of the mobile object. The length-oriented objects use the length to determine
how many MUs they can hold.
SimTalk:
MULength
Enter the relative position of the booking point of the mobile object when it is conveyed
lengthwise. The value you enter is the distance from booking point 0, which is located at the front of
the MU, in the direction of motion. You can enter a relative value between 0 and 1. Plant Simulation
uses it, when the Conveying direction is forward or backward. Plant Simulation shows the absolute
position of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
By default the mobile objects have a booking point, as a long MU may be located on more than one
length-oriented object at the same time. Plant Simulation uses the booking point to determine on
which material flow object to display the MU when animating a simulation run. Plant Simulation
shows, for example, a Transporter moving along from Track to Track on the preceding Track until its
booking point moves on to the succeeding Track.
SimTalk:
BookPntLRelative
Related Topic
Set and Link Animation Points and Animation Lines
MU width
Enter the width of the mobile object. The length-oriented objects use the width after the
AngularConverter has changed the Conveying direction to determine how many MUs they can hold.
SimTalk:
MUWidth
Enter the relative position of the booking point of the mobile object when it is conveyed crosswise.
The value you enter is the relative distance from booking point 0, which is located at the right hand
side of the MU, in the direction of motion. You can enter a relative value between 0 and 1. Plant
Simulation uses it, when the Conveying direction is lateral right or lateral left. Plant Simulation
shows the absolute position of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
By default the mobile objects have a booking point, as a long MU may be located on more than one
length-oriented object at the same time. Plant Simulation uses the booking point to determine on
which material flow object to display the MU when animating a simulation run. Plant Simulation
shows, for example, a Transporter moving along from Track to Track on the preceding Track until its
booking point moves on to the succeeding Track.
SimTalk:
BookPntWRelative
Related Topic
MU height
Enter the height of the MU. The height is important if you want to use the z-dimension of the part in
the 3D Viewer.
SimTalk:
MUHeight
MUHeightWithContent
Enter the relative height of the booking point of the MU. The height is only important if you want to
use the z-dimension of the part in the 3D Viewer. You can enter a relative value between 0 and 1.
Plant Simulation shows the absolute position of the booking point in parentheses.
SimTalk:
BookPntHRelative
Related Topic
Destination
Click and select the material flow object to which the Worker carries the parts, in the dialog Select
Object. This can be the material flow object itself or a Workplace attached to it.
SimTalk
Destination
Tab Graphics
Tab Graphics
The tab Graphics of the Entity, the Container, and the Transporter provides settings for displaying
them as vector graphics in your simulation model. With this setting Plant Simulation shows the
graphics of the parts with the correct size and with the correct distance to each other while animating
your simulation model.
The default vector graphic of the Entity looks like this , of the Container it looks like this ,
and of the Transporter it looks like this .
You can select or enter the settings Vector graphics active, Color, Border color, Border width, Show
direction arrow, and Show state.
In addition the Transporter provides the setting Direction of the animation line for the load space
Types Track and Line.
For loaded Containers, Plant Simulation distributes the animation points, onto which it places
loaded MUs, according to the X-dimension and Y-dimension that you entered. The same applies
for Transporters for which you activated the loading space Type > Store and then entered the
X-dimension and the Y-dimension of the loading space.
Plant Simulation calculates the distance between the animation points as follows:
• Distance in the x-direction (horizontal) is the length in pixels of the loaded object divided
by the x-dimension.
• Distance in the y-direction (vertical) is the width in pixels of the loaded object divided by the
y-dimension.
If either the distance in the x-direction or in the y-direction is smaller than 4 pixels, Plant Simulation
does not show any MUs at all but draws a pattern to signify that the object is not empty.
As long as the loading space is half empty, Plant Simulation shows a hatch pattern. If the loading
space is more than half full, Plant Simulation shows a checker pattern.
Half empty loading space More than half full loading space
To also show the graphic in 3D that corresponds to the vector graphic in 2D, select Auto
graphics active on the Tab Appearance in the dialog Edit 3D-Properties.
Related Topic
Tab Appearance in 3D
Transporter
Transporter
Tractor
To also show the graphic in 3D that corresponds to the vector graphic in 2D, select Auto
graphics active on the Tab Appearance in the dialog Edit 3D-Properties.
SimTalk:
VectorgraphicsActive
Color
Select the fill color of the vector graphic of the mobile object. The fill color fills the interior of the
built-in vector graphic with the color that you select.
VectorgraphicsColor
Border color
Select the border color of the vector graphic of the mobile object. Plant Simulation surrounds the
fill color with the border color in the Border width that you select. The border color also sets the
color of the direction arrow.
Border width
Enter the border width of the vector graphic of the mobile object. Plant Simulation surrounds the
fill color with the border width in the Border color that you select.
A border width of 2 looks like this , a border width of 4 looks like this .
SimTalk:
VectorgraphicsBorderWidth
To show the direction arrow on the vector graphic of the mobile object to illustrate the conveying
direction, select this. The Border color, which you select, also sets the color of the direction arrow.
The graphic with the direction arrow looks like this . It looks like this without the direction arrow.
SimTalk:
VectorgraphicsShowDirectionArrow
Show state
To show the state of the mobile object as a colored border around its vector graphic, select this.
The states are yellow for blocked , red for failed , and blue for paused . The state
color overwrites the Border color that you select.
SimTalk:
VectorgraphicsShowState
This setting is only available for the load space Types Track and Line.
SimTalk:
VectorgraphicsAnilineDirection
Product statistics
To collect statistics data for the MU during a simulation run, select this. The tab then shows the
most important statistical data.
SimTalk:
ProdStatOn
Tab Statistics
Tab Statistics
The objects Transporter and Container can load and transport other MUs, and thus collect resource
and driving statistics values. To open the Statistics Report that shows the statistics, which the mobile
object collected, click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Framewith the right mouse button and select Show Statistics
Report on the context menu.
Related Topic
Resource statistics
Resource statistics
To collect resource statistics data for the MU and to display the most important statistical data on the
tab, select this. The values displayed are described under Resource Statistics of the MUs.
Plant Simulation does not continuously update statistical data displayed in an open window
during a simulation run! Select View > Refresh or press F5.
Related Topic
ResStatOn
This table lists, where the relative path starts for a user-defined attribute you define for an MU:
Related Topics
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Position
Contents
Contents
The menu command Contents opens a table showing all MUs located on the object. The position of
the MU on the table matches the position in the net of coordinates.
Related Topics
Cont muPart
ContentsList NumMU
DeleteMovables NumMUParts
Position
The menu command Position opens a table with one or three columns. Column 1 shows the object
on which the MU is located, column 2 shows the position of the front, column 3 shows the position
of the rear of the MU. Remember that, depending on its length, the MU may be located on several
length-oriented material flow objects—Lines or Tracks—at the same time.
Targets
The menu command Targets opens a table which shows all objects in whose blocking list the
part is entered.
Edit Controls
All MUs provide a number of control methods, described under Edit Controls.
To open the dialog of the object, whose name you entered into the text box, press the
F2 key.
Related Topics
The menu command Calculate Dimensions from 3D calculates the dimensions of the 3D graphic of
the object and enters them into the dialog of the MU.
Each MU has at least one icon, named Default, that Plant Simulation uses to display the object in
the Class Library and in the Toolbox. Within a simulation model, the state the MU is in determines
which icon Plant Simulation uses, i.e., if the state changes, Plant Simulation attempts to switch to a
different icon to indicate the change. Note that an icon with the name of the state has to exist for
this to work. The table lists the different states.
The icons pause, failed, and waiting require the icon operational to display changes in
the state of the MU correctly. When the MUdoes not provide the icon operational, the
state may not be displayed correctly.
When you display the MUs as vector graphics, you can activate Show state to
display the states blocked, failed, and paused. Plant Simulation displays the graphic for blocked
with a yellow border, for failed it has a red border , and for paused it has a blue border .
Related Topic
States and Icons of the Material Flow Objects
When you reset a simulation model, Plant Simulation deletes all statistical data of all
objects. During a simulation run you can also accomplish this using the method InitStat.
This way, you can, for example, restart the collection of statistical information after a
warm-up period of a machine.
To open the Statistics Report, click Show Statistics Report on the Homeribbon tab, or use the method
statistics.
Plant Simulation does not continuously update statistical data displayed in an open window
during a simulation run! Select View > Refresh or press F5.
The following example illustrates the terms statistics collection period and statistics collection:
• Query One
The statistics collection period starts when you activate statistic collection, by selecting the check
boxes Product statistics or Resource statistics or by assigning the value true to the attributes
ProdStatOn or ResStatOn, and ends when you query statistical data. The progression of the
locations the MU stays on, the start of the statistics query and the time of statistics query 1 add
up to a portion of 100 percent for the time the mobile object remained on production objects for
statistics query 1. The times the MU was located on transport objects are, for this query, all
located outside of the statistics collection period.
• Query Two
The progression of the locations the MUs stayed on, the start of the statistics query and the time
of statistics query 2 add up to a portion of less than 100 percent for the time the mobile object
stayed on production objects for statistics query 2 because, for a time, the MU was located on
transport objects during the statistics collection time.
The complete statistics collection period of products consists of the non-overlapping times for
production, transport, and storage.
The times themselves are the times an MU is located on an object of the corresponding resource
type. Set-up times for the MU may occur for production, transport and storage times.
Select the resource type of the object receiving the MU on the tab Statistics from the drop-down list
Resource type:
• Production (default for the objects SingleProc, ParallelProc, Assembly and DismantleStation).
• Transport (default for the objects PlaceBuffer, Buffer, Sorter, Track, TwoLaneTrack, Line,
AngularConverter, Turntable, Transporter and Container).
Depending on the state of the resource these times are subdivided into the Waiting-, Setting-up-,
Working-, Failed-, Paused-, and Stopped-times.
To view Product Statistics of the MUs in the Statistics Report, click the object in the Frame, and press
F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
Also compare Viewing the Statistics Report in the Step-by-Step Help.
Related Topics
StatFailTimePortion StatTransportTimePortion
StatPauseTimePortion StatWaitTimePortion
StatProductionTimePortion StatWorkTimePortion
StatSetUpTimePortion
Working
The MU is being processed, when it is located on a point-oriented resource that is not Paused, not
Failed, or when it is transferred to a length-oriented resource.
MUs, which are loaded or unloaded from a resource by a Pick-and-Place Robot, are always counted
as working.
The read-only attribute ProdInProcess returns the state processing of the MU (boolean).
Setting-up
The MU is setting-up, when it is located on a resource, which is Setting-Up for it.
Waiting
The MU is waiting, when it is located on a point-oriented resource that is not Stopped, not Paused,
not Failed, and is not Working or when it is waiting to be transferred to a length-oriented resource.
MUs, which are located in a blocking list, are now always counted as waiting, no matter which
state the material flow resource is in.
The read-only attribute ProdWaiting returns the waiting state of the resource (boolean).
Stopped
The MU is stopped, when it is located on a material flow object that is Stopped by a LockoutZone,
not Paused, and not Failed.
Failed
The MUis failed, when it is located on a resource that is Failed and is not Paused.
The read-only attribute ProdOnFailed returns the state failed of the MU (boolean).
Paused
The MUis paused, when it is located on a Paused or an Unplanned resource.
Do not confuse the paused state of the MU with the paused state of the drive control
of the Transporter. The read-only attribute ProdOnPaused, returns the state paused of
the MU (boolean).
Related Topic
Pause control
The resources statistics of the MUs only provide the Material Flow Properties.
To view Resource Statistics of Moving Resources in the Statistics Report, click the object in the Frame,
and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
Related Topics
statEmptyPortion StatRelativeOccupation
StatMaxNumMU StatRelativeOccupationIR
StatMinNumMU
To view Driving Statistics of the Transporter in the Statistics Report, click the object in the Frame, and
press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
Related Topics
Methods for Accessing the Statistics of the Mobile Objects
Viewing the Statistics Report
Order occupied
The Transporter is in the state order occupied, when it has an order and is transporting parts.
Related Topic
StatOrderOccPortion
Order empty
The Transporter is in the state order empty, when it has an order and is not transporting parts,
i.e., when it is Empty.
Related Topic
StatOrderEmptyPortion
Home driving
The Transporter is in the state home driving, when it is returning to its base.
Related Topic
StatHomeDrivingPortion
Ready
The Transporter is in the state ready, when it is not in any of the other states, e.g., order occupied,
order empty, home driving, failed, paused or unplanned.
Related Topic
StatTspReadyPortion
Failed
The Transporter is in the state failed, when it is failed for any reason.
Related Topic
StatTspFailPortion
Paused
The Transporter is in the state paused, when it is paused for any reason.
Related Topic
StatTspPausingPortion
Unplanned
The Transporter is in the state unplanned, when it is unplanned, i.e., when it is not scheduled to work
during the time, which you entered into the ShiftCalendar.
Related Topic
StatTspUnplannedPortion
To view all of the methodsand attributesof the mobile object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methodson the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:<real), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
The MUs provide these methods for creating and locating them:
create, delete, getNo, getStoragePlace, insert, move, num, positionList, setLength, and transfer.
To view all of the methods and attributes of the mobile object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
create
The method create creates an instance of the MU class designated by MU-path on a material
flow object designated by the parameter MU_location. Note that you cannot create an MU on the
individual stations of a Sorter.
Parameters
• The parameter Location of data type length designates the position of the mobile object on a
length-oriented object.
• The optional parameter Position of data type length sets if statistics of the part is to be copied
(true) or not (false). If statistics is copied, the created MU has the same life time as the original
object after being created. If statistics is not copied, a new MU will be created which starts its
life time from this point in time on.
If you do not specify the parameter, statistics is not copied (false).
Copying statistics is only possible, when the method create is called for an MU instance.
Example: .part.create(ParallelProc);
.part.create(Store[2,5]);
.part.create(Track,9.3);
SingleProc1.Cont.create(SingleProc2, 0, true); -- duplicates the MU that is l
The method applies to MU classes and to MU instances. In the latter case, Plant Simulation creates a
copy of the MU, including all of its attributes. Note that no inheritance exists between the original
MU and the copy.
An MU created on the point-oriented objects SingleProc and ParallelProc may exit the object
immediately, without having to be processed. An MU will be created on the first station available on
the PlaceBuffer, provided you did not designate a specific station.
On length-oriented objects, Plant Simulation creates MUs with their front as close to the exit of
the object as possible. If the available length does not suffice to receive the MU in its entirety,
Plant Simulation attempts to place the remainder of the length onto the preceding object. If this is
unsuccessful, create fails.
Return Value
The return value has the data type object and designates the MU, which was created.
Example: -- SimTalk 2.0 notation
-- A Method to be called periodically by a Generator will create MUs of type
-- Entity on the SingleProc named Start. The variable named unsuccAttempts
-- counts how often MUs could not be created.
var item: object
item := .MUs.Entity.create(Start)
if item = VOID then -- unsuccessful?
unsuccAttempts := unsuccAttempts + 1
end
Related Topics
delete
Duplicate
delete
Syntax: MU-path.delete
The method delete deletes the MU designated by MU-path. Note that you cannot access deleted
MUs any longer and that you cannot delete MUs in the Class Library with this method.
Example: Plant Simulation counts and deletes MUs at the end of the assembly line, as they are not
needed any more. We entered the method as an exit control in the last object of the assembly line.
Example: -- the exit control is called when MUs leave the station
counter:= counter + 1; -- counts
@.delete; -- and deletes the MUs afterwards, no further access on @
Related Topic
create
getNo
Syntax: MU-path.getNo → integer
The method getNo returns the number of the MU in the sequence in which the instances were
inserted into the model. This unique number, assigned by Plant Simulation at the time it inserted the
MU, allows accessing each instance. The number is displayed in the name, separated by a colon.
Return Value
The return value has the data type integer and greater than 0.
Example: print .MUs.Transporter:1.getNo = 1; -- always returns true
print @.getNo > 10;
Related Topic
Number
getStoragePlace
Syntax: MU-path.getStoragePlace(byRef x:integer, byRef y:integer)
The method getStoragePlace returns the x position and the y position of the storage place on which
the MU is booked. This way, you can find out on which storage place within a Store a MU is located.
Parameters
• The local variable x of data type integer, to which the value will be assigned, designates the x
position of the storage place within the Store.
• The local variable y of data type integer, to which the value will be assigned, designates the y
position of the storage place within the Store.
insert
Syntax: MU-path.insert(Target:any, Position:length) → boolean
The method insert places the MU designated by MU-path entirely onto the destination object
designated by the parameter any.
• For point-oriented objects the behavior is the same as for the methods move and transfer.
• For length-oriented objects the MU also moves onto the designated target object, provided it
provides enough room. If the designated target object does not provide enough room, Plant
Simulation attempts to place the remainder of the MU onto the first predecessor. If there still is
not enough room, Plant Simulation again uses the first predecessor, and so on.
If you moved an MU before an Out-event was processed for this MU, for example in a
sensor control, and if the MU could not be moved and was thus entered into the blocking
list of the target object, the MU will not be removed from the blocking list of the target
object, when the object, on which the blocked MU is located, is failed/paused/stopped.
Parameters
• The parameter Target of data type any designates the destination object.
Instead, you can also enter the number of the Connector, which is located in the direction
of movement. If the MU moves backwards, the instruction insert(1) moves the MU to the
predecessor with the number 1.
For the Converter you cannot specify an index. Use the method insert without a
parameter instead. Then Plant Simulation moves the MU onto the target object
designated in the target control.
• The parameter Position of data type length is the position on a length-oriented object.
Return Value
The return value has the data type boolean.
Example: @.insert(Track,3.3);
Related Topics
move
transfer
move
When you move an MU driving in reverse onto a length-oriented object, Plant Simulation
automatically places this MU at the end of the length-oriented object.
Plant Simulation moves the entire MU onto a point-oriented object, such as a SingleProc or a
ParallelProc. The MU exits the first object entirely and enters the second in its entirety, independent
of its length.
The method move only moves the front of the MU immediately to a length-oriented object, such as a
Line or a Track, and the remainder of the MU continually, according to the speed you set. For this
reason an MU may be located on more than one object at the same time. It is only going to be shown
on the object on which its booking point is located!
Note that you cannot call the method with an index for the successor.
If you moved an MU before an Out-event was processed for this MU, for example in a
sensor control, and if the MU could not be moved and was thus entered into the blocking
list of the target object, the MU will not be removed from the blocking list of the target
object, when the object, on which the blocked MU is located, is failed/paused/stopped.
Parameters
• When you do not enter a parameter, Plant Simulation moves the MU to the different successors
of the object on which the MU is located using the Exit Strategy you selected.
• When you enter the name of the successor as the parameter Target of data type any, Plant
Simulation moves the MU to this object.
• When you enter the index of the successor as the parameter of data type integer, Plant Simulation
moves the MU to this object. The expression integer is short for MU-path.location.succ(integer).
Note that you cannot use it if the MU is located on another MU.
• When you enter the names of the successors as the parameter Target of data type array, Plant
Simulation tries to move the MU to these objects. When none of the objects you entered as
members of the array can accept the MU, it will be entered into the blocking list of each of the
objects that are members of the array.
• The parameter Index of data type integer designates the number of the Connector which is
located in the direction of motion. If the MU moves backwards, the instruction move(1) moves the
MU to the predecessor with the number 1.
For the Converter you cannot specify an index. Use the method move without a
parameter instead. Then Plant Simulation moves the MU onto the target object
designated in the target control
• The parameter Position of data type length designates the position on a length-oriented object.
Return Value
The return value has the data type boolean: It is true when the action was successful.
When you move an MU that moves in reverse onto a length-oriented object, Plant
Simulation automatically places this MU at the end of the length-oriented object.
Example: .MUs.Entity:1.move(line);
.MUs.Entity:2.move(ParallelProc[2,5]);
.MUs.Transporter:3.move(track,3.3);
Example: MyLine.Cont.move;
station.Cont.move(station.succ(2));
You can use the methods transfer or insert to make the MU completely exit a length-oriented object.
Within entrance or exit controls, you can access the triggering MU with the anonymous identifier @
(see Anonymous Identifiers):
Syntax: @.move
@.move(Target:any)
@.move(Index:integer]
Return Value
The return value has the data type boolean: It is true when the action was successful.
If you enter a certain position on the target object using the parameter of data type length,
the MU does not enter itself into the Forward/Backward Blocking List as Plant Simulation
cannot watch/observe at which point in time this position is available again.
In addition Plant Simulation does not enter an MU into the Forward/Backward Blocking
List when it is located on a moving Transporter.
Plant Simulation removes an MU, which is located on the loading space of a
Container/Transporter, from the Forward/Backward Blocking List when the
Container/Transporter itself is moved.
Related Topics
insert
transfer
num
Syntax: MU-path.num(Instance:integer) → object
Parameter
The parameter Instance of data type integer designates the number of the MU. The number is
displayed in the name of the MU, separated by a colon (for example: transporter:1).
Return Value
The return value has the data type object.
Example: print .MUs.Transporter.num(1);
Related Topic
Number
positionList
Syntax: MU-path.positionList(Positions:table)
The method positionList returns the position list of a material flow object and writes it into a table.
(Remember that an MU may be located on more than one length-oriented objects.)
Parameter
The parameter Positions of data type table designates the name of the table.
Plant Simulation automatically generates the format of the table.
• Column 1 of the table contains the object the MUPart is located on (object).
• Column 2 and column 3 contain the position of the front and the rear of the MUPart (length).
Example: @.positionList(MyTable);
num := MyTable.ydim;
print num;
Related Topic
Position
setLength
Syntax: MU-path.setLength(Length:length, Direction:integer])
You can extend the length of the part so that it exceeds the borders of the material flow object. In
this case the first predecessor or the first successor is used. The booking position of the part has to
remain on the current object though.
You can also shorten the length of the part as long as the booking position of the part remains
on the current object.
You cannot use the method setLength when the MU is either located on an AngularConverter, a
Converter, a Turnplate, or a Turntable at the moment or would be extended on such an object after
the length change.
Plant Simulation adjust the read only attribute BookPos on the length-oriented object
when the length changes.
When you change the length of an MU, Plant Simulation triggers the light barrier sensors
which are affected by the length change.
Parameters
• The parameter Length of data type length designates the new length of the part.
• The parameter Direction of data type integer designates the direction into which the MU is
elongated.
o 0: Length change only at the back
o 2: Half of the length changes towards the rear of the MU, half of the length changes towards
the front of the MU
Plant Simulation changes the length at the front in the direction of movement, when you enter 1 for
the parameter Direction. The length changes at the back, when you enter 0for the parameter.
If the MU is transported crosswise, Plant Simulation changes the width of the MU.
Example: .MUs.Container.setLength(5,1);
Related Topics
BookPnt
BookPos
transfer
Syntax: MU-path.transfer(Target:target_object [,Position:length]) → boolean
MU-path.transfer(Index:integer [,Position:length]) → boolean
The method transfer transfers the MU designated by MU-path to the next material flow object. As
opposed to the method move, the method transfer completely removes the MU from the active object.
On point-oriented objects both methods display identical behavior.
On length-oriented objects, the method transfer removes the entire MU from the active object. The
rear is not transferred to the length-oriented object!
Note that you cannot call the method with an index for the successor.
When you move an MU driving in reverse onto a length-oriented object, Plant Simulation
automatically places this MU at the end of the length-oriented object.
If you moved an MU before an Out-event was processed for this MU, for example in a
sensor control, and if the MU could not be moved and was thus entered into the blocking
list of the target object, the MU will not be removed from the blocking list of the target
object, when the object, on which the blocked MU is located, is failed/paused/stopped.
Parameters
• The parameter Target of data type object designates the target object to which the part is
going to be moved.
The parameter Index of data type integer designates the number of the Connector, which is
located in the direction of motion. If the MU moves backwards, the instruction insert(1) moves
the MU to the predecessor with the number 1.
For the Converter you cannot specify an index. Use the method transfer without
a parameter instead. Then Plant Simulation moves the MU onto the target object
designated in the target control
• The parameter Position of data type length is the position on a length-oriented object.
Return Value
The return value has the data type boolean.
Example: @.transfer(Line);
@.transfer(Line, 3.3);
Related Topics
insert
move
The MUs provide the methods creationTime and outIn for returning the state they are in.
To view all of the methods and attributes of the mobile object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
creationTime
The method creationTime returns the time at which the MU designated by MU-path was created
during the simulation run.
Return Value
The return value has the data type time.
outIn
The method outIn causes the MU designated by MU-path to exit the object on which it is located after
the time you specify.
Parameter
• The parameter SecondsTillOut of data type time designates the number of seconds. Plant
Simulation creates an Out event for the MU in the number of seconds starting at the current
point in time of the simulation run. The time you enter has to be equal to or greater than 0. For
a fully processed part you can also enter -1 to start processing again. Here the parameter
WorkOnFinishedPartAgain has to have the value true.
On length-oriented material flow objects you can only use the method for MUs, which
are ready to exit.
• The optional parameter WorkOnFinishedPartAgain of data type boolean sets that an already
processed part will be processed again on point-oriented objects, meaning that the time counts
as processing time for statistical purposes. When the parameter has the value false hat and
the part was already processed all the way, the time counts as waiting for statistical purposes.
For parts that are processed all the way and for the setting WorkOnFinishedPartAgain(true), you
can also specify -1 for the parameter SecondsTillOut. The value -1 signifies that Plant Simulation
determines the processing time according to the attribute ProcTime of the material flow object,
meaning that it either determines a random number or that it sets a constant processing time.
This setting is particularly useful when an MU is created on a station. Then it is full processed
and ready to exit. If it is to be processed still, you can enter outIn(-1, true) directly after create
to start processing.
Example: singleProc.Cont.outIn(10);
Example: .MUs.Entity.create(SingleProc)
.MUs.Entity.create.outIn(-1, true)
The Container and the Transporter provide the methods deleteMovables and pe, [ ] for accessing the
cargo they transport.
These methods do not apply to the object Entity as it does not have loading capacity.
To view all of the methods and attributes of the mobile object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
deleteMovables
Syntax: MU-path.deleteMovables
The method deleteMovables deletes all MUs on the loading space of the MU designated by MU-path.
Example: .Models.container:1.deleteMovables;
pe, [ ]
The method [X:integer,Y:integer] accesses the storage place of the matrix-based loading space.
pe(X:integer, Y:integer) accomplishes the same.
Parameters
• The parameter X of data type integer designates the x-position of the MU.
• The parameter Y of data type integer designates the y-position of the MU.
Related Topic
Methods and Read-Only Attributes of the pe
Methods and Read-Only Attributes of the pe (Place on an Object with Loading Capacity)
The pe, i.e., the place on an object with loading capacity, provides these methods and read-only
attributes:
Cont, mu, and NumMU.
Cont
Syntax: pe.Cont
The read-only attribute Cont returns the MU, which is located at the top-most location of the pe.
Return Value
The return value has the data type object.
Example: @[1,1].Cont.move(singleProc)
mu
Syntax: pe.mu(MU:integer) → object
The method mu accesses all MUs on the loading space. The index does not declare the order of
entrance. You can query the largest index using the method NumMu.
Parameter
When you call the method with the parameter -1, it returns the last MU on the object or VOID when
the object is empty.
Standard Value
The standard value is 1.
The last MU always is the MU that is located on the bottom storage place, As a rule this is
the MU that was moved onto the object first.
Return Value
The return value has the data type object.
Example: print @[5,5].mu(1)
NumMU
Syntax: pe.NumMU
The read-only attribute NumMU returns the number of MUs, which are located on the pe.
Return Value
The return value has the data type integer.
The MUs provide the methods initStat and statistics for working with statistics values.
You can also use the method showStatisticsReport to open the Statistics Report of one or several
objects.
The mobile objects show most of these values on the Tab Product Statistics and on the Tab Statistics.
A number of statistical data is limited to certain types of objects. In this case, Plant
Simulation enters no data into the statistics table or the method call returns an error
message.
To view all of the methods and attributes of the mobile object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
initStat
Syntax: MU-path.initStat([Reset:boolean])
The method initStat resets the statistics of the MU, i.e., resets all entries to 0 and statistics collection
starts anew.
Parameter
When you enter true as the optional parameter of data type boolean, Plant Simulation resets the
Average Lifespan to 0. When you enter false or do not specify a parameter, Plant Simulation resets
all statistics values, except for Average Lifespan.
If you do not want to include the statistics of the beginning of the simulation run, you can reset the
statistics at a later point in time. Then Plant Simulation will collect the statistics from that point
in time on.
Example: .MUs.Entity.initStat;
statistics
Syntax: MU-path.statistics
MU-path.statistics(NameOfTable:table_path)
MU-path.statistics(FileName:string>[, CodePage:string])
• Enter the parameter FileName of data type string to write the table to that file. Plant Simulation
will overwrite existing entries.
If you specify a file name, you can use the optional parameter CodePage of data type string to
set the encoding you want to use: ANSI, UTF-8, or Unicode.
If you do not specify this parameter, the encoding UTF-8 is used.
Time
current simulation time (time). —
Start
time the product statistics collection of
—
(P) the object started (time).
Time
current simulation time (time). —
TspF_Mu
mean duration of a failure (time). StatTspFailMu
TspP_Mu
mean duration of a pause (time). StatTspPausingMu
• Read-Only Attributes for the Accessing the Cargo of Container and Transporter
You can query the values of the read-only-attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only-attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only-attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
The mobile objects provide these read-only attributes for querying their location:
FrontLocation, FrontMU, FrontPos, RearLocation, RearMU, and RearPos.
You can query the values of the read-only-attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only-attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only-attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
FrontLocation
Syntax: MU-path.FrontLocation
The read-only attribute FrontLocation returns the object on which the front of the MU designated
by MU-path is located.
Return Value
Related Topic
RearLocation
FrontMU
Syntax: MU-path.FrontMU
The read-only attribute FrontMU returns the MU, which is located on the same object in front of the
MU designated by MU-path.
Return Value
Example: –- We use a collision control to find out if the predecessor failed or not.
-- SimTalk 2.0 notation
-- collisionCtrl
if @.FrontMU /= VOID
if @.FrontMU.failed
print "Jammed because of failure."
end
end
Related Topic
RearMU
FrontPos
Syntax: MU-path.FrontPos
The read-only attribute FrontPos returns the location of the front of the MU designated by MU-path.
Remember that an MU enters a length-oriented object at position 0 and exits it after covering a
certain length of the object.
Return Value
The return value has the data type length. Note that on point-oriented objects (SingleProc,
ParallelProc, etc.) the return value is not defined.
Example: print @.FrontPos;
Related Topic
RearPos
RearLocation
Syntax: MU-path.RearLocation
The read-only attribute RearLocation returns the object on which the rear of the MU designated
by MU-path is located.
Return Value
The return value has the data type object.
Example: @.RearLocation.iconNo := 2;
Related Topic
FrontLocation
RearMU
Syntax: MU-path.RearMU
The read-only attribute RearMU returns the MU, which is located directly behind the MU designated
by MU-path on the same material flow object.
Return Value
The return value has the data type object.
Related Topic
FrontMU
RearPos
Syntax: MU-path.RearPos
The read-only attribute RearPos returns the location of the rear of the MU designated by MU-path.
Remember that the MU enters a length-oriented object at position 0 and exits after covering a certain
length.
Return Value
The return value has the data type length.
If the rear of the MU has not entered the length-oriented object, the method returns a negative value
that matches the overhang.
For point-oriented objects (SingleProc, ParallelProc, etc.) the return value is not defined.
Related Topic
FrontPos
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
CurrentAcceleration
Syntax: MU-path.CurrentAcceleration
The read-only attribute CurrentAcceleration returns the actual acceleration or deceleration of the
MU designated by MU-path.
The method CurrentAcceleration is observable, but mostly makes sense, when you
deactivated Acceleration, as the actual acceleration or deceleration continuously changes,
when Acceleration is active.
Return Value
CurrentSpeed
Syntax: MU-path.CurrentSpeed
The read-only attribute CurrentSpeed returns the actual speed with which the MU designated by
MU-path moves.
When the MU is located on a Line, it always has the sign (+ or -) that corresponds to the direction of
movement of the Line.
Although this value can continually change because of the objects accelerating,
CurrentSpeed is observable for certain values. By observing this value you might, for
example, recognize when the speed of an MU changes, because it collided with the MU in
front of it, because it stops at the end of a Line, or because of other outside influences.
Return Value
The return value has the data type speed.
Example: var MyPart: object
MyPart := MyLine.MU(1)
waituntil MyPart.CurrentSpeed = 0 prio 1
print "Stopped at this time:", EventController.simTime
Related Topic
Current speed
Empty
Syntax: MU-path.Empty
For the Container and the Transporter the read-only attribute Empty returns if they do transport
another MU (true) or not (false).
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
if @.Empty
.MUs.Entity.create(@)
end
Related Topic
Empty
EntryTime
Syntax: MU-path.EntryTime
The empty EntryTime returns the time at which the MU designated by MU-path entered the object it is
located on at the moment.
Return Value
The return value has the data type time.
Example: print ParallelProc.MU(1).EntryTime;
Finished
Syntax: MU-path.Finished
The read-only attribute Finished returns if the processing time of the MU designated by MU-path has
completely elapsed. This applies when the MU is located on a point-oriented object. When it is
located on a length-oriented object, the MU must have arrived at its exit. In addition it must attempt to
move at the moment or must have already attempted to move.
If both conditions are met, the return value is true. In addition the point-oriented object or the
length-oriented object, on which the MU is located, must neither be failed, nor paused, nor stopped.
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
if MyTrack.Cont.Finished
MyTrack.Cont.move(MyTrack.succ(2))
end
FinishedTime
Syntax: MU-path.FinishedTime
The read-only attribute FinishedTime returns the simulation time at which the MU could have left
the object.
Return Value
The return value has the data type time.
If the MU is not ready to exit the object, the method returns -1.
Full
Syntax: MU-path.Full
For the Container and the Transporter the read-only attribute Full returns if the capacity is exhausted
(true) or not (false).
Return Value
The return value has the data type boolean.
Occupied
Syntax: MU-path.Occupied
For the Container and the Transporter the read-only attribute Occupied returns if they do transport at
least one other MU (true) or not (false).
Return Value
The return value has the data type boolean.
ProdInProcess
Syntax: MU-path.ProdInProcess
The read-only attribute ProdInProcess returns if the MU designated by MU-path is being processed
or moving (true) or not (false).
Return Value
The return value has the data type boolean.
Example: pallet := singleProc.Cont
if pallet.ProdInProcess
print "pallet is processed."
end
Related Topic
Working
ProdOnFailed
Syntax: MU-path.ProdOnFailed
The read-only attribute ProdOnFailed returns if the MU designated by MU-path is located on a failed
object (true) or not (false).
Return Value
The return value has the data type boolean.
Example: print singleProc.Cont.ProdOnFailed;
Related Topic
Failed
ProdOnPaused
Syntax: MU-path.ProdOnPaused
Related Topic
Paused
ProdWaiting
Syntax: MU-path.ProdWaiting
The read-only attribute ProdWaiting returns if the MU designated by MU-path is waiting (true), i.e.,
the MU is neither being processed nor located on a failed or paused object, or not (false).
Return Value
The return value has the data type boolean.
Example: -- SimTalk 2.0 notation
pallet := singleProc.Cont
if pallet.ProdWaiting
print "Pallet is being processed."
end
Related Topic
Waiting
TimeToOutEvent
Syntax: MU-path.TimeToOutEvent
The read-only attribute TimeToOutEvent returns the simulation time at which the Out event for
the MU has been enqueued.
Return Value
The return value has the data type time.
If no out event has been scheduled, the method returns -1.
Waiting
Syntax: MU-path.Waiting
The read-only attribute Waiting returns if the MU designated by MU-path is waiting, i.e., if the
processing time of the MU has not started yet or is already finished (true). During processing the
method Waiting returns false, even if processing is interrupted by a failure or a pause.
Return Value
The return value has the data type boolean.
The mobile objects provide these read-only attributes for accessing the cargo of Container and
Transporter:
BlockingStarttime, BookPos, Capacity, Cont, LocationInFrame, NumMu, NumMUParts,
PreviousLocation, and RemainingProcTime.
You can query the values of the read-only-attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only-attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only-attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
BlockingStarttime
Syntax: MU-path.BlockingStarttime
The read-only attribute BlockingStarttime returns the point in time at which the blocking time of the
MU designated by MU-path started.
The BlockingStarttime also applies to the Sorter and to the FlowControl, i.e., to the objects that can
appear in a blocking list.
Return Value
The attribute returns a value of data type time.
You can also view the remaining processing time in the dialog Show Attributes and Methods of
the object.
Related Topics
Forward Blocking List
Exit Blocking List
Backward Blocking List
BookPos
Syntax: MU-path.BookPos
The read-only attribute BookPos returns the position of the booking point of the MU according to the
current ConveyingDirection on the object, designated by MU-path, on which it is located. You can
only get the attribute, you cannot set it.
Return Value
The return value has the data type real.
The attribute only returns the position, when the active MU is located on a length-oriented
object! For point-oriented objects the return value always is 0.
Example: [email protected];
Capacity
Syntax: MU-path.Capacity
The read-only attribute Capacity returns the capacity of the Container and of the store-oriented
loading space of the Transporter. The capacity is the product of XDim times YDim.
Return Value
The return value has the data type integer.
Example: print @.Capacity;
Related Topics
X-dimension of the Container
Y-dimension of the Container
X-dimension of the Transporter
Y-dimension of the Transporter
Cont
Syntax: MU-path.Cont
MU-path.<[X:integer, Y:integer].Cont
The read-only attribute Cont returns the MU, which is located on the loading space of the MU
designated by MU-path. You can also use Cont to access any location on the loading space by its
position in the matrix.
Parameters
• The parameter X of data type integer designates the x-position of the MU.
• The parameter Y of data type integer designates the y-position of the MU.
Return Value
The return value has the data type object.
Example: @.Cont.move(singleProc);
@[1,1].Cont.move(singleProc);
Related Topics
Contents, menu command
Statistics Values, of the Transporter
LocationInFrame
Syntax: MU-path.LocationInFrame
The read-only attribute LocationInFrame returns the station or the length-oriented object on which
the MU is located. This function is important when a part is loaded onto another part. Otherwise the
attribute returns the same object as the read-only attribute location does.
Return Value
The return value has the data type object.
NumMU
Syntax: MU-path.NumMU
The read-only attribute NumMU returns the number of MUs located on the loading space of the
MU designated by MU-path.
Return Value
The return value has the data type integer.
Related Topic
NumMUParts
NumMUParts
Syntax: MU-path.NumMUParts
The read-only attribute NumMUParts returns the number of MUs located on the MU designated by
MU-path as a whole or in part.
For length-oriented objects an MU may have exited the object with its front part while the rear is still
on the object. In this case NumMUParts counts both lengths occupied separately, although they form
part of a single MU.
The method NumMu returns the number of MUs whose booking point is located on the
object. On point-oriented objects the methods NumMUParts and NumMU always return
the same value.
Return Value
The return value has the data type integer.
Example: print .Models.container:2.NumMuParts;
Related Topic
NumMu
PreviousLocation
Syntax: MU-path.PreviousLocation
The read-only attribute PreviousLocation returns the previous location of the MU designated by
MU-path. The previous location is the object on which the part was located before it moved onto the
current material flow object.
Return Value
The attribute returns a value of data type object.
Example: print .MUs.Entity:22037.PreviousLocation;
RemainingProcTime
Syntax: MU-path.RemainingProcTime
The read-only attribute RemainingProcTime returns the time which the MU designated by MU-path
still has to be processed.
Return Value
The return value has the data type time.
You can also view the remaining processing time in the dialog Show Attributes and Methods of
the object.
The mobile objects provide these read-only attributes for querying statistics values:
You can query the values of the read-only-attributes, but you cannot set them as Plant Simulation
calculates the value for the point-in-time at which you query it. In most cases a read-only-attribute
corresponds to a grayed out dialog item on one of the tabs of the object, for example on the tab
Statistics.
To view all of the methods, read-only-attributes, and attributes of the material flow object, open the
window Show Attributes and Methods. The figure below illustrates the information using the example
of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
StatAvgLifeSpan
Syntax: MU-path.StatAvgLifeSpan
The read-only attribute StatAvgLifeSpan returns the average life-span of MU instances, which were
created and removed from the plant during the statistics collection period.
Return Value
The return value has the data type time.
Example: print .MUs.Transporter.StatAvgLifeSpan;
Related Topics
Tab Product Statistics of the Container
Tab Product Statistics of the Transporter
Tab Type Statistics of the Drain
Additional Statistical Data of the MUs
Statistics report, Product-Oriented Statistics of all Existing and Deleted MUs by Classes
StatCount
Syntax: MU-path.StatCount
The read-only attribute StatCount returns the number of existing MU instances of the MU class
designated by MU-path for which you activated product statistics. The MUs may be located in
different Frame hierarchies.
Return Value
The return value has the data type integer.
Example: print .MUs.Transporter.StatCount;
Related Topics
Additional Statistical Data of the MUs
Tab Product Statistics of the Container
Tab Product Statistics of the Transporter
Statistics report, Product-Oriented Statistics of all Existing and Deleted MUs by Classes
StatDeleted
Syntax: MU-path.StatDeleted
The read-only attribute StatDeleted returns the number of MU instances, which were removed from
the installation during statistics collection of the MU class designated by MU-path.
Return Value
The return value has the data type integer.
Example: print .MUs.Transporter.StatDeleted;
Related Topics
Tab Product Statistics of the Container
Tab Product Statistics of the Transporter
Additional Statistical Data of the MUs
Statistics report, Product-Oriented Statistics of all Existing and Deleted MUs by Classes
StatFailTimePortion
Syntax: MU-path.StatFailTimePortion
The read-only attribute StatWaitingPortion returns the portion of the statistics collection period during
which the MU instance of the MU class designated by MU-path was located on failed, but not
paused objects.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatFailTimePortion;
StatisticsStartProd
Syntax: MU-path.StatisticsStartProd
The read-only attribute StatisticsStartProd returns the point in time at which the MU designated
by MU-path started collecting statistical data.
Return Value
The return value has the data type time.
Example: print .MUs.Transporter.StatisticsStartProd
StatMaxNumMU
Syntax: MU-path.StatMaxNumMU
The read-only attribute StatMaxNumMU returns the maximum number of locations the MU class
designated by MU-path occupied during the simulation run until the point in time at which you query
the statistics. Note that Plant Simulation does not count the maximum number of MUs, but the
number of locations occupied simultaneously. Also, loads are not counted.
Return Value
The return value has the data type integer.
Related Topic
Tab Statistics of the Container
StatMinNumMU
Syntax: MU-path.StatMinNumMU
The read-only attribute StatMinNumMU returns the minimum number of locations the MU class
designated by MU-path occupied during the simulation run until the point in time at which you query
the statistics. Note that Plant Simulation does not count the minimum number of MUs, but the number
of locations occupied simultaneously. Also, loads are not counted.
Return Value
The return value has the data type integer.
Related Topic
Tab Statistics of the Container
StatNumIn
Syntax: MU-path.StatNumIn
The read-only attribute StatNumIn returns the number of MU instances that entered the MU class
designated by MU-path.
Return Value
The return value has the data type integer.
StatNumOut
Syntax: MU-path.StatNumOut
The read-only attribute StatNumOut returns the number of MU instances that exited the MUclass
designated by MU-path.
Return Value
The return value has the data type integer.
StatPauseTimePortion
Syntax: MU-path.StatPauseTimePortion
The read-only attribute StatPauseTimePortion returns the portion of the statistics collection period
during which the MU instance designated by MU-path was located on a paused or an unplanned
object.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatPauseTimePortion;
StatProdFailPortion
Syntax: MU-path.StatProdfailPortion
The read-only attribute StatProdFailPortion returns the time portion during which the MU instance
designated by MU-path was located on a material flow object of type Production that was failed.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdfailPortion;
Related Topics
StatProdFailTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatProdFailTime
Syntax: MU-path.StatProdFailTime
The read-only attribute StatProdFailTime returns the time during which the MU instance designated
by MU-path was located on a material flow object of type Production that was failed.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdFailTime;
Related Topics
StatProdFailPortion
Resource typeof the material flow objects
StatProdPausingPortion
Syntax: MU-path.StatProdPausingPortion
The read-only attribute StatProdPausingPortion returns the time portion during which the MU
instance designated by MU-path was located on a material flow object of type Production that
was pausedor unplanned.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdPausingPortion;
Related Topics
StatProdPausingTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatProdPausingTime
Syntax: MU-path.StatProdPausingTime
The read-only attribute StatProdPausingTime returns the time during which the MU instance
designated by MU-path was located on a material flow object of type Production that was paused or
unplanned.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdPausingTime;
Related Topics
StatProdPausingPortion
Resource type of the material flow objects
StatProdSetupPortion
Syntax: MU-path.StatProdSetupPortion
The read-only attribute StatProdSetupPortion returns the time portion of the statistics collection
period during which a material flow object of type Production was setting-up for the MU class
designated by MU-path.
Return Value
The return value has the data type real.
Related Topics
StatProdSetupTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatProdSetupTime
Syntax: MU-path.StatProdSetupTime
The read-only attribute StatProdSetupTime returns the time of the statistics collection period during
which a material flow object of type Production was setting-up for the MU class designated by
MU-path.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdSetupTime;
Related Topics
StatProdSetupPortion
Resource type of the material flow objects
StatProdStoppedPortion
Syntax: MU-path.StatProdStoppedPortion
The read-only attribute StatProdStoppedPortion returns the time portion during which the MU
instance designated by MU-path was located on a material flow object of type Production that was
stopped by a LockoutZone.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdStoppedPortion;
Related Topics
StatProdStoppedTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatProdStoppedTime
Syntax: MU-path.StatProdStoppedTime
The read-only attribute StatProdStoppedTime returns the time during which the MU instance
designated by MU-path was located on a material flow object of type Production that was stopped by
a LockoutZone.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdStoppedTime;
Related Topics
StatProdStoppedPortion
Resource type of the material flow objects
StatProductionTimePortion
Syntax: MU-path.StatProductionTimePortion
The read-only attribute StatProductionTimePortion returns the portion of the statistics collection
period during which the MU designated by MU-path was located on a material flow object of type
Production.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProductionTimePortion;
Related Topics
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
StatProdWaitingPortion
Syntax: MU-path.StatProdWaitingPortion
The read-only attribute StatProdWaitingPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Production that was waiting.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdWaitingPortion;
Related Topics
StatProdWaitingTime
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatProdWaitingTime
Syntax: MU-path.StatProdWaitingTime
The read-only attribute StatProdWaitingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Production that was waiting.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdWaitingTime;
Related Topics
StatProdWaitingPortion
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
StatProdWorkingPortion
Syntax: MU-path.StatProdWorkingPortion
The read-only attribute StatProdWorkingPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Production and was being
processed.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatProdWorkingPortion;
Related Topics
StatProdWorkingTime
StatProdWorkingTime
Syntax: MU-path.StatProdWorkingTime
The read-only attribute StatProdWorkingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Production and was being processed.
Return Value
The return value has the data type real.
Related Topics
StatProdWorkingPortion
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
StatRelativeOccupation
Syntax: MU-path.StatRelativeOccupation
The read-only attribute StatRelativeOccupation returns the time during which the MU designated by
MU-path was occupied, in relation to its capacity, and not paused or failed divided by the statistics
collection period.
Return Value
The return value has the data type real.
StatRelativeOccupationIR
Syntax: MU-path.StatRelativeOccupationIR
The read-only attribute StatRelativeOccupationIR returns the capacity-based portion of the statistics
collection period during which the MU designated by MU-path was occupied.
Return Value
The return value has the data type real.
Example: print @.StatRelativeOccupationIR;
StatSetUpTimePortion
Syntax: MU-path.StatSetUpTimePortion
The read-only attribute StatSetUpTimePortion returns the portion of the statistics collection period
during which the MU designated by MU-path was set up.
Return Value
The return value has the data type real.
Example: print singleProc.Cont.StatSetUpTimePortion;
StatStorageTimePortion
Syntax: MU-path.StatStorageTimePortion
The read-only attribute StatStorageTimePortion returns the portion of the statistics collection period
during which the MU designated by MU-path was located on an object of resource type Storage.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStorageTimePortion;
Related Topic
Resource type of the material flow objects
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
StatStoreFailPortion
Syntax: MU-path.StatStoreFailPortion
The read-only attribute StatStoreFailPortion returns the time portion during which the MU designated
by MU-path was located on a material flow object of type Storage that was failed.
Return Value
The return value has the data type real.
Related Topics
StatStoreFailTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatStoreFailTime
Syntax: MU-path.StatStoreFailTime
The read-only attribute StatStoreFailTime returns the time portion during which the MU designated by
MU-path was located on a material flow object of type Storage that was failed.
Return Value
The return value has the data type real.
Related Topics
StatStoreFailPortion
Resource type of the material flow objects
StatStorePausingPortion
Syntax: MU-path.StatStorePausingPortion
The read-only attribute StatStorePausingPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Storage that was paused or
unplanned.
Return Value
The return value has the data type real.
Related Topics
StatStorePausingTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatStorePausingTime
Syntax: MU-path.StatStorePausingTime
The read-only attribute StatStorePausingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Storage that was paused or unplanned.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStorePausingTime;
Related Topics
StatStorePausingPortion
Resource type of the material flow objects
StatStoreSetupPortion
Syntax: MU-path.StatStoreSetupPortion
The read-only attribute StatStoreSetupPortion returns the time portion during which a material flow
object of type Storage was setting-up for the MU class designated by MU-path.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreSetupPortion;
Related Topics
StatStoreSetupTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatStoreSetupTime
StatStoreSetupTime
Syntax: MU-path.StatStoreSetupTime
The read-only attribute StatStoreSetupTime returns the time during which a material flow object of
type Storage was setting-up for the MU class designated by MU-path.
Return Value
The return value has the data type real.
Related Topics
StatStoreSetupPortion
Resource type of the material flow objects
StatStoreStoppedPortion
Syntax: MU-path.StatStoreStoppedPortion
The read-only attribute StatStoreStoppedPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Storage that was stopped by
a LockoutZone.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreStoppedPortion;
Related Topics
StatStoreStoppedTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatStoreStoppedTime
Syntax: MU-path.StatStoreStoppedTime
The read-only attribute StatStoreStoppedTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Storage that was stopped by a LockoutZone.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreStoppedTime;
Related Topics
StatStoreStoppedPortion
Resource type of the material flow objects
StatStoreWaitingPortion
Syntax: MU-path.StatStoreWaitingPortion
The read-only attribute StatStoreWaitingPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Storage that was waiting.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreWaitingPortion;
Related Topics
StatStoreStoppedTime
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatStoreWaitingTime
Syntax: MU-path.StatStoreWaitingTime
The read-only attribute StatStoreWaitingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Storage that was waiting.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreWaitingTime;
Related Topics
StatStoreStoppedTime
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
StatStoreWorkingPortion
Syntax: MU-path.StatStoreWorkingPortion
The read-only attribute StatStoreWorkingPortion returns the time portion during which the
MU designated by MU-path was located on a material flow object of type Storage that was
processingparts.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreWorkingPortion;
Related Topics
StatStoreWaitingTime
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatStoreWorkingTime
Syntax: MU-path.StatStoreWorkingTime
The read-only attribute StatStoreWorkingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Storage that was processingparts.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatStoreWorkingTime;
Related Topics
StatStoreWaitingPortion
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Resource type of the material flow objects
StatTranspFailPortion
Syntax: MU-path.StatTranspfailPortion
The read-only attribute StatTranspFailPortion returns the time portion during which the MU designated
by MU-path was located on a material flow object of type Transport that was failed.
Return Value
The return value has the data type real.
Related Topics
StatTranspFailTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatTranspFailTime
Syntax: MU-path.StatTranspFailTime
The read-only attribute StatTranspFailTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Transport that was failed.
Return Value
The return value has the data type real.
Related Topics
StatTranspFailPortion
Resource type of the material flow objects
StatTransportTimePortion
Syntax: MU-path.StatTransportTimePortion
The read-only attribute StatTransportTimePortion returns the portion of the time during which the
MU designated by MU-path was located on a material flow object of type Transport of the statistics
collection period.
Return Value
The return value has the data type real.
Related Topics
Resource type of the material flow objects
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
StatTranspPausingPortion
Syntax: MU-path.StatTranspPausingPortion
The read-only attribute StatTranspPausingPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Transport that was paused or
unplanned.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspPausingPortion;
Related Topics
StatTranspPausingTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatTranspPausingTime
Syntax: MU-path.StatTranspPausingTime
The read-only attribute StatTranspPausingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Transport that was paused or unplanned.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspPausingTime;
Related Topics
StatTranspPausingPortion
Resource type of the material flow objects
StatTranspSetupPortion
Syntax: MU-path.StatTranspSetupPortion
The read-only attribute StatTranspSetupPortion returns the time portion during which a resource of
type Transport was setting-up for the MU class designated by MU-path.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspSetupPortion;
Related Topics
StatTranspSetupTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatTranspSetupTime
Syntax: MU-path.StatTranspSetupTime
The read-only attribute StatTranspSetupTime returns the time during which a resource of type
Transport was setting-up for the MU class designated by MU-path.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspSetupTime;
Related Topics
StatTranspSetupPortion
Resource type of the material flow objects
StatTranspStoppedPortion
Syntax: MU-path.StatTranspStoppedPortion
The read-only attribute StatTranspStoppedPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Transport that was stopped by
a LockoutZone.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspStoppedPortion;
Related Topics
StatTranspStoppedTime
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatTranspStoppedTime
Syntax: MU-path.StatTranspStoppedTime
The read-only attribute StatTranspStoppedTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Transport that was stopped by a LockoutZone.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspStoppedTime;
Related Topics
StatTranspStoppedTime
Resource type of the material flow objects
StatTranspWaitingPortion
Syntax: MU-path.StatTranspWaitingPortion
The read-only attribute StatTranspWaitingPortion returns the time portion during which the MU
designated by MU-path was located on a material flow object of type Transport that was waiting.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspWaitingPortion;
Related Topics
StatTranspWaitingTime
Tab Product Statistics of the Container
Tab Product Statistics of the Transporter
Resource type of the material flow objects
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatTranspWaitingTime
Syntax: MU-path.StatTranspWaitingTime
The read-only attribute StatTranspWaitingTime returns the time during which the MU designated by
MU-path was located on a material flow object of type Transport that was waiting.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspWaitingTime;
Related Topics
StatTranspWaitingPortion
Tab Product Statisticsof the Container
Tab Product Statisticsof the Transporter
Resource typeof the material flow objects
StatTranspWorkingPortion
Syntax: MU-path.StatTranspWorkingPortion
The read-only attribute StatTranspWorkingPortion returns the time portion during which the MU
designated by MU-path during which was located on a material flow object of type Transport and
was being processed.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspWorkingPortion;
Related Topics
StatTranspWorkingTime
Resource type of the material flow objects
Tab Product Statistics of the Container
Tab Product Statistics of the Entity
Tab Product Statistics of the Transporter
Statistics report, Mean Time Portions of an MU Class of the Mean Life Time
Statistics report, Statistics of the Individual MUs
StatTranspWorkingTime
Syntax: MU-path.StatTranspWorkingTime
The read-only attribute StatTranspWorkingTime returns the time during which the MU designated
by MU-path during which was located on a material flow object of type Transport and was being
processed.
Return Value
The return value has the data type real.
Example: print .MUs.Transporter.StatTranspWorkingTime;
Related Topics
StatTranspWorkingPortion
Resource type of the material flow objects
StatWaitTimePortion
Syntax: MU-path.StatWaitTimePortion
The read-only attribute StatWaitTimePortion returns the portion of the statistics collection period
during which the MU designated by MU-path was waiting.
Return Value
The return value has the data type real.
StatWorkTimePortion
Syntax: MU-path.StatWorkTimePortion
The read-only attribute StatWorkTimePortion returns the portion of the statistics collection period
during which the MU designated by MU-path was processed.
Return Value
The return value has the data type real.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
All mobile object provide:
• The attributes BookPnt, BookPntHRelative, BookPntLRelative, BookPntWRelative,
ConveyingDirection, Coordinate3D, Destination, Length, MUHeight, MUHeightWithContent,
MULength, MUWidth, Name, ProdStatOn, ResStatOn, Stopped, XPos, and YPos.
To view all of the methods and attributes of the mobile object, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributesand methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute of an MU, you might, for example, type:
.MUs.Transporter.Length := 4.5
• To get the value of an attribute of an MU, you might, for example, type:
print .MUs.Transporter.Length
posit := SingleProc.Cont.XPos
BookPnt
Syntax: MU-path.BookPnt
The attribute BookPnt sets the position of the booking point of the MU designated by MU-path
according to the current Conveying direction (ConveyingDirection).
• For the conveying direction forward the booking point matches the Booking point length
(BookPntLRelative).
• For the conveying direction lateral right the booking point matches the Booking point width
(BookPntWRelative).
• For the conveying direction backward the booking point matches the MU length minus the
Booking point length (BookPntLRelative).
• For the conveying direction lateral left the booking point matches the MU width minus the
Booking point width (BookPntWRelative).
The booking point determines the location of the MU on the object on which Plant Simulation shows
it. Plant Simulation interprets the length in meters. Only at output time, for example with print, does
Plant Simulation convert the value to the unit you selected under File > Model Settings/Preferences
> Units > Length.
Data Type of Value You Can Assign
You can assign a value of data type length.
BookPntHRelative
Syntax: MU-path.BookPntHRelative
The attribute BookPntHRelative sets the relative position of the booking point of the MU designated
by MU-path in the z-dimension. You can enter a value between 0 and 1.
Data Type of Value You Can Assign
You can assign a value of data type real.
Related Topics
BookPntLRelative
BookPntLRelative
Syntax: MU-path.BookPntLRelative
The attribute BookPntLRelative sets the relative position of the booking point of the MU designated
by MU-path in the x-dimension. Plant Simulation uses it, when the Conveying direction is forward or
backward. You can enter a value between 0 and 1.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: .MUs.Container.MULength := 4.5; -- meters
.MUs.Transporter.BookPntLRelative := 0.5; -- percent
Related Topics
BookPntHRelative
BookPntWRelative
Syntax: MU-path.BookPntWRelative
The attribute BookPntWRelative sets the relative position of the booking point of the MU designated
by MU-path in the y-dimension. Plant Simulation uses it, when the Conveying direction is lateral
right or lateral left. You can enter a value between 0 and 1.
Data Type of Value You Can Assign
You can assign a value of data type length.
Related Topics
BookPntHRelative
ConveyingDirection
Syntax: MU-path.ConveyingDirection
The attribute ConveyingDirection sets the Conveying direction of the MU designated by MU-path.
You can enter 0 for forward, 1 for lateral right, 2for backward and 3 for lateral left.
We advise against manually changing the conveying direction, but to let the
AngularConverter or the Turntable do that.
A change of the conveying direction also permanently affects the attribute ObjectAngle.
Changing the attribute ObjectAngle does not change the conveying direction.
Coordinate3D
Syntax: MU-path.Coordinate3D
The attribute Coordinate3D returns the 3D coordinates of the moving object designated by Path in
the 3D Viewer no matter if it’s started or not. Plant Simulation 2D computes these real-coordinates
using the pixel coordinates in 2D, the scaling factor you entered, and the 3D origin. It shows the
object with these coordinates in the 3D Viewer.
You cannot set the 3D coordinate of the MU, you can only get it!
Return Value
The return value is an array of data type length.
Example: -- SimTalk 2.0 notation
var a: real[3]
a := .MUs.Transporter:3.Coordinate3D := makeArray(-10, 11, 0)
print a
Related Topics
XPos
YPos
Coordinate3D of the material flow objects
Destination
Syntax: MU-path.Destination
The attribute Destination sets the name of the material flow object (Destination) to which the Worker
carries the MU designated by MU-path. This can be the material flow object itself or a Workplace
attached to it.
Length
Syntax: MU-path.Length
The attribute Length (MU length) sets the length of the MU designated by MU-path according to the
current ConveyingDirection.
• For the Conveying direction forward or backward the length matches the MULength (MU length).
• For the conveying direction lateral right or lateral left the length matches the MUWidth (MU
width).
Only the length-oriented objects use the length. Plant Simulation interprets the length in meters. Only
at output time, for example using the method print, does Plant Simulation convert the value to the unit
you selected under File > Model Settings/Preferences > Units > Length.
Data Type of Value You Can Assign
You can assign a value of data type length.
Example: .MUs.Transporter.length := 2.5; -- 2.5 meters
MUHeight
Syntax: MU-path.MUHeight
Related Topics
MU height
MUWidth
MUHeightWithContent
Syntax: MU-path.MUHeightWithContent
The attribute MUHeightWithContent overwrites the height of the MU designated by MU-path when
stacking parts.
If, for example, you are using a pallet/container with a height of 0.144 with a stacking
number/z-dimension of 3, whereas each element in the stack has a height of 0.3 hat, you can set the
attribute to 1.044 to stack the loaded pallets.
Standard Value
The standard value is -1.0. This way the MUHeight is used for stacking.
Data Type of Value You Can Assign
You can assign a value of data type real.
Example: .MUs.Container.MUHeightWithContent := 1.044 -- stack loaded pallets
Related Topics
MU height
MUHeight
MULength
Syntax: MU-path.MULength
Related Topics
MU length MUWidth
Length
MUWidth
Syntax: MU-path.MUWidth
Related Topics
MU width MULength
Length
Name
Syntax: MU-path.Name
ProdStatOn
Syntax: MU-path.ProdStatOn
The attribute ProdStatOn activates (true) or deactivates (false) the collection of Product statistics for
the MU class designated by MU-path.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: MUs.Entity.ProdStatOn := true;
ResStatOn
Syntax: MU-path.ResStatOn
The attribute ResStatOn activates (true) or deactivates (false) the collection of Resource statistics
for the MU class designated by MU-path.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Stopped
Example: MU-path.Stopped
The attribute Stopped stops (true) the MU designated by MU-path or makes it continue on its way
(false).
You can use it, for example, to make an MU, which you want to load onto a pallet, stop and wait until
the pallet arrives. Once the pallet has arrived, you can then set the attribute Stopped to false, so that
the MU can be loaded onto the pallet. Most often you will use the attribute within a sensor control.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
XPos
Syntax: MU-path.XPos
The attribute XPos returns the x-coordinate of the MU designated by MU-path in the Frame into
which you inserted it.
You cannot set the x-position of the MU, you can only get it!
We advise against using this attribute as it only returns a meaningful value when the MUs actually is
drawn, i.e., when MU Animation is active and when the Frame window is open.
Return Value
Example: x : integer;
x := .MUs.Entity:1.XPos;
Related Topic
Coordinate3D
YPos
Syntax: MU-path.YPos
The attribute YPos returns the y-coordinate of the MU designated by MU-path in the Frame into
which you inserted it.
You cannot set the y-position of the MU, you can only get it!
We advise against using this attribute as it only returns a meaningful value when the MUs actually is
drawn, i.e., when MU Animation is active and when the Frame window is open.
Return Value
Related Topic
Coordinate3D
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
VectorgraphicsActive
Syntax: MU-path.VectorgraphicsActive
The attribute VectorgraphicsActive activates (true) or deactivates (false) vector graphics mode for
the MU designated by MU-path. Then, Plant Simulation shows the graphics of the parts with the
correct size and with the correct distance to each other.
The table below illustrates the difference between the vector graphic and the icon of the object.
Transporter
Transporter
Tractor
Example: .MUs.MyEntity.VectorgraphicsActive:=true;
Related Topic
Vector graphics active
VectorgraphicsAnilineDirection
Syntax: MU-path.VectorgraphicsAnilineDirection
The attribute VectorgraphicsAnilineDirection sets the direction of the animation line on the vector
graphic of the object Transporter designated by MU-path Lengthwise or Crosswise to the direction
of movement.
This setting is only available for the loading space Types Track and Line.
Related Topic
Direction of the animation line
VectorgraphicsBorderColor
Syntax: MU-path.VectorgraphicsBorderColor
The attribute VectorgraphicsBorderColor sets the border color of the vector graphic of the MU
designated by MU-path. Plant Simulation surrounds the fill color with the border color in the Border
width that you select. The border color also sets the color of the direction arrow.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: .MUs.MyEntity.VectorgraphicsBorderColor := 15780518; -- light blue
.MUs.MyEntity.VectorgraphicsBorderColor := makeRGBValue(100,200,200);
Related Topic
Border color
VectorgraphicsBorderWidth
Syntax: MU-path.VectorgraphicsBorderWidth
The attribute VectorgraphicsBorderWidth sets the border width of the vector graphic of the MU
designated by MU-path. Plant Simulation surrounds the fill color with the border width in the
Border color that you select.
A border width of 2 looks like this , a border width of 4 looks like this .
Example: .MUs.MyEntity.VectorgraphicsBorderWidth := 2;
Related Topic
Border width
VectorgraphicsColor
Syntax: MU-path.VectorgraphicsColor
The attribute VectorgraphicsColor sets the fill color of the vector graphic of the MU designated by
MU-path. The fill color fills the interior of the built-in vector graphic with the color that you select.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Related Topic
Color
VectorgraphicsShowDirectionArrow
Example: MU-path.VectorgraphicsShowDirectionArrow
The attribute VectorgraphicsShowDirectionArrow shows (true) or hides (false) the direction arrow
on the vector graphic of the MU designated by MU-path. This way it illustrates the conveying
direction. The Border color, which you select, sets the color of the direction arrow.
The graphic looks like this with the direction arrow. It looks like this without the direction arrow.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Related Topic
Show direction arrow
VectorgraphicsShowState
Syntax: MU-path.VectorgraphicsShowState
The attribute VectorgraphicsShowState shows (true) or hides (false) the state of the MU designated
by MU-path as a colored border around the vector graphic. The states are yellow for blocked ,
red for failed, and blue for paused. The state color overwrites the Border color that you selected.
Data Type of Value You Can Assign
You can assign a value of data type boolean.
Example: .MUs.MyEntity.VectorgraphicsShowState := true;
Related Topic
Show state
Container
Container
The Container is a moving material flow object for transporting other MUs. You can use it to model
pallets, bins, boxes, etc. Define the capacity of the loading space—which refers to the number
of MUs only, not to their physical size—along the x-axis and the y-axis. During a simulation run
Plant Simulation moves the Container along from material flow object to material flow object along
the Connectors.
Related Topics
Number Label
Conveying direction OK
Name
Tab Attributes
Tab Attributes
Enter and select attributes as described under the Tab Attributes.
Related Topics
MU width Y-dimension
MU height Destination
MU length
Enter the length of the Container into this text box. The length-oriented objects use the length to
determine how many Containers they can hold.
Related Topic
MULength
The Containers require a booking point, as a long Container may be located on more than one
length-oriented object or at the same time. Plant Simulation uses the booking point to determine on
which material flow object to display the Container when animating a simulation run. Plant Simulation
shows, for example, a Container moving along from Line to Line on the preceding Line until its
booking point moves on to the succeeding Line.
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it with the method print, it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
Related Topics
MULength
BookPntWRelative
MU width
Enter the width of the Container into this text box. The length-oriented objects use the width after
the AngularConverter has changed the Conveying direction to determine how many Containers they
can hold.
SimTalk
MUWidth
Enter the relative position of the booking point the Container when it is conveyed crosswise. The
value you enter is the distance in meters from booking point 0, which is located at the right hand side
of the Container in the direction of motion. You can enter a relative value between 0 and 1. Plant
Simulation uses it, when the Conveying direction is lateral right or lateral left. Plant Simulation
shows the absolute position of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
The Containers require a booking point, as a long Container may be located on more than one
length-oriented object at the same time. Plant Simulation uses the booking point to determine on
which material flow object to display the Container when animating a simulation run. Plant Simulation
shows, for example, a Container moving along from Line to Line on the preceding Line until its
booking point moves on to the succeeding Line.
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it with the method print, it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
Related Topics
BookPntWRelative
BookPntLRelative
Set and Link Animation Points and Animation Lines
MU height
You can enter a relative value between 0 and 1. Plant Simulation shows the absolute position
of the booking point in parentheses.
SimTalk:
BookPntHRelative
X-dimension
Enter the dimension of the loading space of the Container along the x-axis into this text box. The
loading capacity is the product of X-dimension times Y-dimension, i.e., the dimension along the
x-axis and the y-axis of the net of coordinates of the loading space.
When you decrease the dimension of the Container, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
For loaded Containers, Plant Simulation distributes the animation points, onto which it places loaded
MUs, according to the dimension that you entered. If this dimension is too great to show the loaded
MUs reasonably well, Plant Simulation does not show any MUs at all, but draws a pattern to signify
that the object is not empty.
As long as the loading space is half empty, Plant Simulation shows a hatch pattern. If the loading
space is more than half full, Plant Simulation shows a checker pattern.
Half empty loading space More than half full loading space
Related Topics
XDim
YDim
ZDim
capacity
Y-dimension
Enter the dimension of the loading space of the Container along the x-axis into this text box. The
loading capacity is the product of X-dimension times Y-dimension, i.e., the dimension along the
x-axis and the y-axis of the net of coordinates of the loading space.
When you decrease the dimension of the Container, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
For loaded Containers, Plant Simulation distributes the animation points, onto which it places loaded
MUs, according to the dimension that you entered. If this dimension is too great to show the loaded
MUs reasonably well, Plant Simulation does not show any MUs at all, but draws a pattern to signify
that the object is not empty.
As long as the loading space is half empty, Plant Simulation shows a hatch pattern. If the loading
space is more than half full, Plant Simulation shows a checker pattern.
Half empty loading space More than half full loading space
Related Topics
YDim
XDim
ZDim
capacity
Z-dimension
Enter the dimension of the Container along the z-axis into the text box Z-dimension. The
Z-dimension allows to stack parts on the Container.
When you decrease the dimension of the Container, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
SimTalk
YDim
XDim
ZDim
capacity
Related Topics
Unloading Stacked Parts
MUHeightWithContent
Destination
Click and select the material flow object to which the Worker carries the parts.
SimTalk
Destination
Tab Graphics
Select settings for vector graphics of the Container on the Tab Graphics.
Related Topics
The tab Product Statistics provides the check box Product statistics and shows the Statistics
Values of the Container on the tab itself.
Product statistics
To collect statistics data for the MU during a simulation run, select this. The tab then shows the
most important statistical data.
SimTalk
ProdStatOn
Related Topic
Product statistics
Statistics Values
Product Statistics is described under the Tab Product Statistics. The tab itself shows these values.
To view Product Statistics of the MUs in the Statistics Report, click the object in the Frame, and press
F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
Related Topics
Product statistics
Methods for Accessing the Statistics of the Mobile Objects
Tab Statistics
To view Resource Statistics of Moving Resources in the Statistics Report, click the object in the Frame,
and press F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
You can also click the object in the Frame with the right mouse button and select Show Statistics
Report on the context menu.
Related Topics
Tab Statistics of MUs
Methods for Accessing the Statistics of the Mobile Objects
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Position
Contents
Edit Controls
Edit Observers
3D
Contents
Index
Help on Object
To view all of the methods and attributes of the Container, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:real), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or
a methodthat returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
findPart
The method findPart finds the part with the specified name on the Container designated by Path and
returns it.
Parameter
The parameter PartType of data type string designates the part type.
Return Value
The return value has the data type object.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To view all of the methods and attributes of the Container, open the window Show Attributes and
Methods. The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributesand methodsof the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frameinto
which you inserted an instance to show the attributesand methodsof the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute of an MU, you might, for example, type:
.MUs.Container.Length := 3.5
• To get the value of an attribute of an MU, you might, for example, type:
print .MUs.Container.Length
posit := SingleProc.Cont.XPos
XDim
Syntax: MU-path.XDim
The attribute XDim sets the dimension of the net of coordinates along the x-axis on which the
different stations on the loading space are located. The capacity of the Container is XDim times
YDim times ZDim.
When you decrease the dimension of the Container, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
Plant Simulation calculates the distance between the animation points as follows:
• Distance in the x-direction (horizontal) is the length in pixels of the loaded object divided
by the x-dimension.
• Distance in the y-direction (vertical) is the width in pixels of the loaded object divided by the
y-dimension.
If either the distance in the x-direction or in the y-direction is smaller than 4 pixels, Plant Simulation
does not show any MUs at all but draws a pattern to signify that the object is not empty.
As long as the loading space is half empty, Plant Simulation shows a hatch pattern. If the loading
space is more than half full, Plant Simulation shows a checker pattern.
Half empty loading space More than half full loading space
Related Topics
X-dimension
capacity
YDim
YDim
Syntax: MU-path.YDim
The attribute YDim sets the dimension of the net of coordinates along the y-axis on which the
different stations on the loading space are located. The capacity of the Container is XDim times
YDim times ZDim.
When you decrease the dimension of the Container, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
For loaded Containers, Plant Simulation distributes the animation points, Plant Simulation calculates
the distance between the animation points as follows:
• Distance in the x-direction (horizontal) is the length in pixels of the loaded object divided
by the x-dimension.
• Distance in the y-direction (vertical) is the width in pixels of the loaded object divided by the
y-dimension.
If either the distance in the x-direction or in the y-direction is smaller than 4 pixels, Plant Simulation
does not show any MUs at all but draws a pattern to signify that the object is not empty.
As long as the loading space is half empty, Plant Simulation shows a hatch pattern. If the loading
space is more than half full, Plant Simulation shows a checker pattern.
Half empty loading space More than half full loading space
Related Topics
Y-dimension
capacity
XDim
ZDim
Syntax: MU-path.ZDim
The attribute ZDim sets the dimension of the net of coordinates along the z-axis on which the different
stations on the loading space are located. The capacity of the Container is XDim times YDim times
ZDim.
When you decrease the dimension of the Container, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
Data Type of Value You Can Assign
You can assign a value of data type integer.
Example: .MUs.Container.ZDim = 4;
Related Topics
Z-dimension
MUHeightWithContent
Entity
Entity
The Entity is a moving material flow object without loading capacity that moves through a plant on the
material flow objects proper. The Entity represents all kinds of parts being produced and transported,
but not transporting other work pieces.
Related Topics
Tab Attributes
Tab Attributes
Enter and select attributes as described under the Tab Attributes.
Related Topics
MU length MU height
MU width Destination
MU length
Enter the length of the Entity into this text box. The objects Line, Track and TwoLaneTrack use the
length to determine how many Entities they can hold.
Related Topic
MULength
MU width
Enter the width of the Entity into this text box. The length-oriented objects use the width after the
AngularConverter has changed the Conveying direction to determine how many Entities they can hold.
SimTalk
MUWidth
MU height
SimTalk
MUHeight
Enter the relative position of the booking point of the Entity when it is conveyed lengthwise. The
value you enter is the distance from booking point 0, which is located at the front of the Entity, in the
direction of motion. You can enter a relative value between 0 and 1. Plant Simulation uses it when the
Conveying direction is forward or backward.
Plant Simulation shows the absolute position of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
The Entities require a booking point, as a long Entity may be located on more than one length-oriented
object at the same time. Plant Simulation uses the booking point to determine on which material flow
object to display the Entity when animating a simulation run. Plant Simulation shows, for example,
an Entity moving along from Line to Line on the preceding Line until its booking point moves on to
the succeeding Line.
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it with the method print, it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
Related Topics
BookPntLRelative
BookPntWRelative
Set and Link Animation Points and Animation Lines
Enter the relative position of the booking point of the Entity when it is conveyed crosswise. The
value you enter is the relative distance meters from booking point 0, which is located at the right hand
side of the Entity, in the direction of motion. You can enter a relative value between 0 and 1. Plant
Simulation uses it, when the Conveying direction is lateral right or lateral left. Plant Simulation
shows the absolute position of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
The Entities require a booking point, as a long Entity may be located on more than one length-oriented
object at the same time. Plant Simulation uses the booking point to determine on which material flow
object to display the Entity when animating a simulation run. Plant Simulation shows, for example,
an Entity moving along from Line to Line on the preceding Line until its booking point moves on to
the succeeding Line.
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it with the method print, it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
Related Topics
BookPntWRelative
BookPntLRelative
Enter the relative height of the booking point of the Entity. You can enter a relative value between
0 and 1. Plant Simulation shows the absolute position of the booking point in parentheses
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it with the method print, it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
SimTalk
BookPntHRelative
Destination
Click and select the material flow object to which the Worker carries the parts.
SimTalk
Destination
Tab Graphics
Select settings for vector graphics of the Entity on the Tab Graphics.
Related Topics
Product statistics
To collect statistics data for the MU during a simulation run, select this. The tab then shows the
most important statistical data.
SimTalk
ProdStatOn
Related Topic
Product statistics
Statistics Values
To view Product Statistics of the MUs in the Statistics Report, click the object in the Frame, and press
F6 (Show Statistics Report), or click Show Statistics Report on the Home ribbon tab.
Related Topics
Tab Product Statistics of MUs
Product statistics
Methods for Accessing the Statistics of the Mobile Objects
New getAttrValue
Edit NumAttr
Delete setAttrType
createAttr setAttrValue
deleteAttr InheritValue
getAttrName
Open Class
Refresh Position
Edit Controls
Edit Observers
3D
Contents
Index
Help on Object
To view all of the methods and attributes of the Entity, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
An example of the Syntax line of the individual methods might look like this:
• The signature of the method, consisting of the identifier and the data type of the parameter, is
listed in parentheses. The expression (Parameter:<real), for example, designates a parameter of
data type string. Instead of a constant value, you can also use a variable of the required type or a
method that returns the required data type.
Optional parameters are listed within square brackets. The expression [,Parameter:boolean], for
example, means that you can, but do not have to enter the boolean parameter.
Make sure to enter the parentheses for expressions within parentheses (…). Not
entering them may lead to unexpected results and open the Debugger.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methods of the selected Instance.
To view all of the methods and attributes of the Entity, open the window Show Attributes and Methods.
The figure below illustrates the information using the example of the object Source.
• Select Show Attributes and Methods on the context menu of the Class Library to show the
attributes and methods of the selected Class.
• Press the F8 key or click Show Attributes and Methods on the Home ribbon tab of the Frame
into which you inserted an instance to show the attributes and methodsof the selected Instance.
You can set the value of an attribute and you can get its value, either with the check boxes, the
text boxes and drop-down lists in the dialog windows or by assigning values to the corresponding
attributes.
• To set the value of an attribute of an MU, you might, for example, type:
.MUs.Entity.Length := 4.5
• To get the value of an attribute of an MU, you might, for example, type:
print .MUs.Entity.Length
posit := SingleProc.Cont.XPos
Transporter
Transporter
The Transporter is an active mobile material flow object. It is self-propelled allowing it to move on its
own on the length-oriented objects Track and TwoLaneTrack driving forward or in reverse. It
can also load and transport Entities, Containers, and other Transporters.
The Transporter provides three different Types of loading space.
• Store designates a matrix-oriented loading space consisting of loading places along the
X-dimension and the Y-dimension onto which the Transporter places the parts it loads.
• Track designates a passive length-oriented loading space onto which the Transporter loads
and unloads parts. This is especially handy for modeling a cross-sliding car and other types of
materials handling equipment. You can also enter Controls and Sensors.
• Line provides an active length-oriented loading space similar to a conveyor being part of the
loading space, which transports the loaded parts forwards or backwards.
The dialog Show Attributes and Methods, which you can open by pressing the F8
key, only shows the attributes and methods pertaining to the selected type of loading
space. If you select Track for example, the dialog only shows the attributes and
methods pertaining to the loading space Track, not those pertaining to the loading
space of type Store or Line.
On point-oriented objects, such as the SingleProc, ParallelProc, etc. and on the Line, the Transporter
behaves passively, i.e., the set-up time and the processing time of these objects determine how long
it is going to stay. These material flow objects also determine the exit behavior of the MUs.
On objects of type Track and TwoLaneTrack, the Transporter itself behaves actively, i.e., it determines
on which Track(s) it will drive to get to its Destination object. To do so, it uses the Forward destination
list or the Backward destination list of the Track(s) en-route to the destination.
You have to make sure that the Transporter is stopped when it is going to be loaded or unloaded and
that the pallets it transports are completely loaded or unloaded.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Examplein the dialog Examples Collectionand click Open Model.
Related Topics
How the Transporter Gets to Its Destination Shared Properties of the Mobile Objects
The Transporter moves along the objects Track or TwoLaneTrack with the speed and the acceleration
you set, forward or in reverse. The Length of the Track and the Speed of the Transporter result
in the time the Transporter remains on the object. Then, the Track or TwoLaneTrack moves the
Transporter on to its successor.
Transporters may not pass each other on Tracks or TwoLaneTracks. If a faster Transporter collides
with a slower one, it automatically reduces its speed to that of the slower Transporter. As soon as the
obstacle is removed, the Transporter accelerates to arrive at the speed that you set.
During failures, the Transporter stops and continues independently, once the failure is repaired. When
a Track or TwoLaneTrack has several successors, you can use any of the following control methods
to move the Transporter: The destination control, the destination lists, automatic routing, the
driving control, and the exit strategy.
You can assign the Transporter a destination, either on the Tab Controls by entering a destination
into the text box Destination or by with the attribute Destination.
Automatic routing for tugger trains only works, when you enter the Destination into the
tractor.
When you defined an exit control, the destination will not be considered, and the exit control
determines to which object the Transporter drives.
When you do not define an exit control, the Forward destination list or the Backward destination list of
the Tracks/TwoLaneTracks, which are connected to the Track/TwoLaneTrack on which the Transporter
is driving, determine to which successor respectively predecessor the Transporter will move. Plant
Simulation searches the destination lists of all the successors/predecessors for the destination you
entered, and, when it finds it, moves the Transporter on to the appropriate successor/predecessor.
Note that Plant Simulation terminates the search after it found the destination for the first time.
If it does not find the destination and when you activated Automatic routing, Plant Simulation
automatically computes the shortest route to the Destination along the direction of motion. The route
can include connected Tracks/TwoLaneTracks, Sub-Frames or surrounding Frames, as long as
they are connected with Connectors.
If you did not enter a destination for the Transporter, or both the destination lists and automatic
routing could not determine the successor/predecessor, the Driving control (DriveCtrl) of the
Transporter determines the successor/predecessor.
If none of the above determined the successor or predecessor, the exit strategy, takes control.
Tugger Trains
Tugger Trains
Tugger trains are widely used in materials handling. They may be manned or unmanned vehicles
pulling trailers or trolleys moving on paved surfaces, for example at airports, or they may be trains
consisting of a tractor pulling trailers on rail-bound systems, such as on an EOM, AGVS, etc. The
tugger train always consists of a powered vehicle, the tractor, which pulls one or more non-powered
loaded trailers behind it or pushes them in front of it. In Plant Simulation the tractor can be located at
any position within the train, in the front, in the back or in the middle.
You can create atugger trainwith the context menu command Create Tugger Train by right-clicking
the first and the last Transporter, which you would like to hitch to each other. Instead, you can also
hitch Transporters to other Transporters with the methods hitchFront and hitchRear.
Automatic routing only works, when you enter the Destination into the tractor.
Plant Simulation treats a tugger train as a single object, when the Track/TwoLaneTrack,
on which it drives, has a limited capacity.
You can only move the first Transporter of a tugger train in an exit control with the method
move. The methods insert and transferdo not work at all. You cannot move following
Transporters; you can only move the first Transporter in an exit control, not at an arbitrary
position on the Track/TwoLaneTrack.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Examplein the dialog Examples Collection and click Open Model.
Related Topic
Model a Tugger Train
To create a tugger train, you can hitch Transporters to other Transporters with the methods hitchFront
and hitchRear. Instead, you can also right-click the first and the last Transporter, which you would like
to hitch to each other, and select Create Tugger Train on the context menu.
When you hitch up two tugger trains, both of which have a tractor, Plant Simulation
deactivates the attribute IsTractor of the train that is hitching up.
To unhitch a Transporter from the train, use the methods UnhitchFront and UnhitchRear.
The method GetFrontWagon returns the trailer which is hitched to the front of the active trailer in the
direction of the Track/TwoLaneTrack on which they move.
The method GetRearWagon returns the trailer which is hitched to the rear of the active trailer in the
direction of the Track/TwoLaneTrack on which they move.
Related Topic
You can designate the tractor of the tugger train, which pulls or pushes the trailers, with the check
box Is Tractor or with the attribute IsTractor. The attribute only applies to a
Transporter, which is part of a tugger train. Each train has a single tractor for which the attributes
relating to the battery and the driving behavior apply. The Transporter then shows the icon tractor
instead of the icon Operational. As a vector graphic the icon of the tractor looks like this .
To find out which Transporter is the tractor of a train, you can use the method GetTractor.
To prevent the tractor from loading parts, enter 0 as the X-dimension and the Y-dimension
for the loading space of type > Store. For the loading space types Track and Line, enter
0 as the Capacity.
When a tugger trainh as several Transporters, automatic routing evaluates the Destination of the
tractor. When the frontmost Transporter in the direction of motion is transferred, the tugger train
uses the Destination of the tractor when determining the successor with destination lists. When
the foremost Transporter of a tugger train in the direction of motion exits the destination object,
the destination control of the tractor will be executed. Sensors which only trigger actions, when
the Transporter has the same destination as the sensor, evaluates the Destination of the tractor
for all Transporters of a tugger train.
Related Topic
Define the Tractor of the Tugger Train
Plant Simulation passes a failure of a trailer on to all members of the train and records it for statistics
purposes. If several trailers of a train fail, naturally none of them arrives at the availability you set.
As soon as any member of the tugger train fails, the entire train stops.
Controls
Each trailer of the tugger train activates all sensor controls of the Track/TwoLaneTrack. The material
flow considers a tugger train as a single unit. The tractor can pull or push the trailers. The front of the
train is the front of the first Transporter in the direction in which the Track points. The same is true for
the rear of the train. The front or the rear of the train activates the entrance and exit controls as
well as the destination and the routing controls.
The Front of the Transporter always moves towards the end of the Track/TwoLaneTrack
into the direction with which you inserted it along the direction of motion of the material flow.
When you insert a /TwoLaneTrack from left to right, the Front of the Transporter is located
on the right-hand side and moves towards the right. When you insert aTrack/TwoLaneTrack
from right to left, the Front of the Transporter is located on the left-hand side and moves
towards the left.
This also applies to Transporters which drive backwards when you select the check box
Backwards of the Transporter! The Front of the Transporter keeps on pointing towards
the end of the Track into the direction with which you inserted it along the direction of
motion of the material flow.
• When you select Entrance locked or Exit locked before the train has completely left the
Track/TwoLaneTrack, the train can still pass its entrance or exit.
• When a tugger train collides, the collision control of the tractor will always be triggered. Within
the control method the anonymous identifier @ is the Transporter, which actually collides, while
the anonymous identifier ? designates the tractor of the train.
Double-click the icon of a Transporter, which is located on one of the material flow objects in the
Frame, to open its dialog window. To change the properties of the Class of the object, double-click it
in the Class Library or on the tab Mobile Units in the Toolbox. Enter settings of your choice to
produce the desired results. The dialog items are described under Dialog Items of the Objects.
Related Topics
Failed
To fail the Transporter and thus stop it, select the check box Failed. Note that the failure only applies
to the driving behavior of the Transporter, not to the capacity.
When you manually fail the Transporter, it remains failed while any of the failure profiles you defined
is active. It will change to not failed once the last failure (DisruptionEnd) of the last failure profile
ends or when you clear the check box .
Plant Simulation resets failures during a Reset Simulation phase of the simulation.
The Transporter is failed when you activate this check box or when you activate one
of its failure profiles on the Tab Failures.
When you fail the Transporter, this also fails its loading space.
Related Topic
Failed
Planned/Unplanned/Paused
To pause the Transporter, select Paused from the drop-down list. Note that the pause only applies to
the driving behavior of the Transporter, not to the capacity.
To set the Transporter to unplanned, select Unplanned. Unplanned times are the times which you
entered into the ShiftCalendar during which it is not scheduled to work.
To set the Transporter to planned, select Planned. Planned times encompass the processing times
without the pauses during the shifts in your plant.
Plant Simulation does not reset pauses during the Reset Simulation phase of the
simulation. If you use pauses in your simulation, make sure that during the Reset phase all
objects are set to the desired state.
When you pause the Transporter, this also pauses its loading space.
Related Topic
Pause
Tab Attributes
Tab Attributes
MU length Backwards
MU height Deceleration
MU length
Enter the length of the Transporter into this text box. The length-oriented objects use the length to
determine how many Transporters they can accommodate.
SimTalk
Length,
MULength
MU width
Enter the width of the Transporter into this text box. The length-oriented objects use the width after
the AngularConverter has changed the Conveying direction to determine how many Transporters
they can hold.
When the Transporter is passively transported by a Line, it also uses the MU width.
SimTalk
MUWidth
MU height
Enter the height of the Transporter into this text box. This setting is used when you are modeling
in 3D.
SimTalk
MUHeight
Enter the relative position of the booking point of the Transporter when it is conveyed lengthwise.
The value you enter is the distance from booking point 0, which is located at the front of the
Transporter, in the direction of motion. You can enter a relative value between 0 and 1. Plant
Simulation uses it when the Conveying direction is forward or backward. Plant Simulation shows the
absolute position of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
The Transporters require a booking point, as a long Transporter may be located on more than one
length-oriented object at the same time. Plant Simulation uses the booking point to determine
on which material flow object to display the Transporter when animating a simulation run.
Plant Simulation shows, for example, a Transporter moving along from Track/TwoLaneTrack to
Track/TwoLaneTrack on the first Track until its booking point moves on to the next Track.
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it using the method print it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
Related Topics
BookPnt
BookPntLRelative
Enter the relative position of the booking point of the Transporter when it is conveyed crosswise
into this text box. The value you enter is the distance from booking point 0, which is located at the
right hand side of the Transporter in the direction of motion. Plant Simulation uses it, when the
Conveying direction is lateral right or lateral left. Plant Simulation shows the absolute position
of the booking point in parentheses.
When you are modeling conveyor systems, the booking point oftentimes represents the center of
gravity of the part. Once the booking point, i.e., the center of gravity of the part, has transferred onto a
conveyor, the part starts moving with the speed you set for this conveyor.
The Transporters require a booking point, as a long Transporter may be located on more than one
length-oriented object at the same time. Plant Simulation uses the booking point to determine
on which material flow object to display the Transporter when animating a simulation run.
Plant Simulation shows, for example, a Transporter moving along from Track/TwoLaneTrack to
Track/TwoLaneTrack on the first Track until its booking point moves on to the next Track.
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it using the method print it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
Related Topics
BookPnt
BookPntWRelative
When you assign a value to the booking point in a Method object, Plant Simulation
interprets this number as meters. Only when outputting it with the method print, it converts
the value according to the settings you selected under File > Model Settings/Preferences
> Units > Length.
SimTalk
BookPntHRelative
Speed
Enter the speed with which the Transporter drives on the Track/TwoLaneTrack. When you disable
Acceleration , the Transporter attempts to reach its final speed immediately without
accelerating. Once it reaches the final speed, it drives on with this constant speed. You can also
enter -1 for an infinite speed.
SimTalk:
Speed
Backwards
To make the Transporter drive in reverse on the Track or TwoLaneTrack, select this. When the
Transporter moves from a Track/TwoLaneTrack onto a Track/TwoLaneTrack, it may enter the Track
at the Track’s exit and leave it at its entrance. This only applies when the Transporter moves
from a Track/TwoLaneTrack to a Track/TwoLaneTrack, but not from a point-oriented object onto a
Track/TwoLaneTrack. Driving forward or in reverse are not properties of the Track/TwoLaneTrack,
but of the Transporter driving on it!
Suppose Acceleration is enabled and the Transporter drives forward on the
Track with a certain speed while Backwards is deactivated. Then, you select Backwards. This will
result in the Transporter slowing down until its speed is 0. Then it accelerates in the reverse direction
until it reaches its final speed. When you then disable Acceleration, the Transporter attempts to
reverse its direction of motion immediately without slowing down and accelerating.
SimTalk:
Backwards
Acceleration
To make the Transporter increase or decrease its speed on the Track/TwoLaneTrack, select
Acceleration.
Click Apply to activate the text box Acceleration and to show the Current speed.
SimTalk:
AccelerationEnabled
Current speed
Plant Simulation shows the actual speed with which the Transporter drives on the Track/TwoLaneTrack
at this point in time, when Acceleration is active .
Related Topic
CurrentSpeed
Acceleration
Enter the Acceleration with which the Transporter increases its speed on the Track/TwoLaneTrack.
You can enter any real number greater than or equal to 0.
SimTalk:
Acceleration
movingAcceleration
Deceleration
Enter the Deceleration with which the Transporter reduces its speed on the Track/TwoLaneTrack.
You can enter any real number greater than or equal to 0.
SimTalk:
Deceleration
Is Tractor
To designate the active Transporter as the tractor of the tugger train, which pulls or pushes the
trailers, select this.
The Transporter then shows the icon tractor instead of the icon Operational. As a vector
graphic the icon of the tractorlooks like this .
To prevent the tractor from loading parts, enter 0 as the X-dimension and the Y-dimension
for the loading space type > Store. For the loading space types Track and Line, enter
0 as the Capacity.
SimTalk:
IsTractor
Related Topic
Designating the Tractor
The start delay duration is the time after which a Transporter, which Collided with the one driving in
front of it, starts moving after the Transporter driving in front started moving again.
Select a distribution from the drop-down list, and enter the values, which that distribution requires,
into the text box.
SimTalk:
StartDelayDuration
X-dimension Backwards
Y-dimension Acceleration
Z-dimension Acceleration
Length Deceleration
Capacity Controls
Speed Sensors
Accumulating
Type
• Store designates a loading space consisting of loading places along the x-axis and the y-axis
onto which the Transporter places the parts it loads.
• Track designates a passive length-oriented loading space on to which the Transporter loads
and unloads parts. This is especially handy for modeling a CrossSlidingCar and other types of
materials handling equipment. You can also enter Controls and define Sensors. In addition, you
can select the Direction of the animation line.
• Line designates an active length-oriented loading space similar to a conveyor being part of the
loading space, which transports the loaded parts forwards or backwards. The CrossSlidingCar
makes extensive use of this type of loading space. In addition, you can select the Direction
of the animation line.
The dialog Show Attributes and Methods, which you can open by pressing the
F8 key, only shows the attributes and methods pertaining to the selected type of
loading space. If you select Track for example, the dialog only shows the attributes
and methods pertaining to the loading space of type Track, not those pertaining to
the loading space of type Store or Line.
If the Transporter has derived objects or transports other parts, you cannot change any
of the attributes pertaining to the loading space in its class with SimTalk commands.
SimTalk:
LoadBayType
X-dimension
When you select the loading space Type > Store, Plant Simulation activates the text box
X-dimension.
Enter the dimension of the loading space of the Transporter along the x-axis. The loading capacity
is the product of X-dimension times Y-dimension times Z-dimension, i.e., the dimension along
the x-axis and y-axis of the net of coordinates.
When you decrease the dimension of the Transporter, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
For loaded Transporters for which you activated the loading space Type > Store, Plant Simulation
distributes the animation points, onto which it places loaded MUs, according to the dimension that
you entered. If this dimension is too great to show the loaded MUs reasonably well, Plant Simulation
does not show any MUs at all, but draws a pattern to signify that the object is not empty.
As long as the loading space is half empty, Plant Simulation shows a hatch pattern. If the loading
space is more than half full, Plant Simulation shows a checker pattern.
Half empty loading space More than half full loading space
Related Topics
XDim
YDim
ZDim
capacity
setDim of the material flow objects
Y-dimension
When you select the loading space Type > Store, Plant Simulation activates the text box
Y-dimension.
Enter the dimension of the loading space along the y-axis. The loading capacity is the product of
X-dimension times Y-dimension times Z-dimension times Z-dimension.
When you decrease the dimension of the Transporter, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
Related Topics
YDim
XDim
ZDim
capacity
setDim of the material flow objects
Z-dimension
Enter the dimension of the loading space of type Store of the Transporter along the Z-axis. The
Z-dimension allows to stack parts on the loading space of type Store the Transporter. The loading
capacity is the product of X-dimension times Y-dimension times Z-dimension.
When you decrease the dimension of the Transporter, make sure that no MUs are located on the
storage places that will be deleted by this action! Either delete these MUs or move them to another
storage place on the smaller loading space.
SimTalk
ZDim
YDim
XDim
capacity
setDim of the material flow objects
Related Topics
Unloading Stacked Parts
MUHeightWithContent
Length
When you select the loading space of Type > Track or Line, Plant Simulation activates the text
box Length.
Capacity
When you select the loading space of Type Track or Line, Plant Simulation enables the text box
Capacity.
Enter the capacity, i.e., the maximum number of MUs that may be located on the loading space in
their entirety or in part. Enter -1 for an infinite capacity.
SimTalk
Capacity
Speed
When you select the loading space Type > Line, Plant Simulation enables the text box Speed.
Enter the speed with which the loading space of the Transporter moves. When you enable
Acceleration , the speed of the loading space is the same as its Current
speed. You can also enter -1 for an infinite speed.
SimTalk:
LoadBaySpeed
Current speed
When you select the loading space Type > Line and activate Acceleration
Plant Simulation enables the text box Current speed.
Here Plant Simulation shows the actual speed with which the loading space of the Transporter moves
at this point in time, when Acceleration is active .
SimTalk:
LoadBayCurrentSpeed
Accumulating
When you select the loading space Type > Line, Plant Simulation enables the check box
Accumulating.
To make the MUs accumulate on the loading space of the Transporter, select this. This allows the
MUs to move front to end to each other, when the exit of the loading space is blocked.
To make the parts retain their distance to each other, i.e., to make all succeeding parts stop moving
when the preceding part cannot exit the loading space, clear the check box. When the loading space
is blocked, it stops, i.e., it reduces its Speedto 0.
SimTalk:
Accumulating
Backwards
When you select the loading space Type > Line, Plant Simulation enables the check box Backwards.
To make the loading space on the Transporter proper move backwards, select this. To make it
move forwards, clear the check box.
SimTalk:
LoadBayBackwards
Acceleration
When you select the loading space Type > Line, Plant Simulation enables the check box
Acceleration.
To make the loading space of the Transporter increase its speed, select this.
SimTalk:
LoadBayAccelerationEnabled
Acceleration
When you select the loading space Type > Line and activate Acceleration ,
Plant Simulation enables the text box Acceleration.
Enter the Acceleration with which the loading space of the Transporter increases its speed. You can
enter any real number greater than or equal to 0.
SimTalk:
LoadBayAcceleration
Deceleration
When you select the loading space Type > Line and activate Acceleration ,
Plant Simulation enables the text box Deceleration.
Enter the Deceleration with which the loading space of the Transporter reduces its speed. You can
enter any real number greater than or equal to 0.
SimTalk:
LoadBayDeceleration
Controls
To open the dialog into which you can enter the controls pertaining to the Type of loading space
you selected, click this.
• The loading space of type Store provides the Entrance control and the Exit control.
• The loading space of type Track provides the Entrance control, the Exit control, the Backward
entrance control, and the Backward exit control.
• The loading space of type Line provides the Entrance control, the Entrance control, the Backward
entrance control, the Backward exit control, and the Speed control.
The speed control of the loading space of the Transporter provides the same functions
as the Speed control of the object Line.
Do not confuse the speed control of the loading space of type Line of the Transporter
with the Speed control of the Transporter proper.
SimTalk
EntranceCtrl, EntranceCtrlFront, EntranceCtrlRear
ExitCtrl, EntranceCtrlFront, EntranceCtrlRear
BwEntranceCtrl, BwEntranceCtrlFront, BwEntranceCtrlRear
BwExitCtrl, BwExitCtrlFront, BwExitCtrlRear
LoadBaySpeedCtrl
Sensors
When you select the loading space Types > Track or Line, Plant Simulation enables the button
Sensors.
To create sensors, click Sensors. This opens the dialog Sensor List, where you define new sensors
or modify or delete existing sensors. This is described in detail under Sensors.
Creating and manipulating sensors via SimTalk only works if you select the loading space
Types > Track or Line!
The dialog Show Attributes and Methods, which you can open by pressing the F8
key, only shows the attributes and methods pertaining to the selected type of loading
space. If you select Track for example, the dialog only shows the attributes and methods
pertaining to the loading space of type Track, not those pertaining to the loading space of
type Store or Line.
Related Topics
Create Sensors
Methods of Sensors of the Length-Oriented Objects
Attributes of the Sensors of the Length-Oriented Objects
Tab Routing
Tab Routing
The Transporter provides these dialog items on the tab Routing.
Related Topics
Automatic routing
To make the Transporter independently find the shortest route to its Destination object along the
direction of motion, select this. Except for the destination object, the route consists of objects of type
Track or TwoLaneTrack, which are connected with Connectors. The route can also cover Sub-Frames
or surrounding Frames, as long as the Tracks/TwoLaneTracks are connected with Connectors via
Interface objects. You can also enter a Route weighting attribute factor.
An exit control along the predicted route take precedence over automatic routing, a predicted route
on the other hand takes precedence over a destination list. Thus the Transporter can deviate
from the predicted route. (Naturally you can always transfer the Transporter onto any position on
a Track/TwoLaneTrack with a Method, which also would lead to a deviation.) In this case Plant
Simulation automatically computes a new route from the current location of the Transporter to the
destination. If no route exists, which exclusively leads to the destination on Tracks/TwoLaneTracks,
Plant Simulation deactivates automatic routing until the Transporter is transferred onto a
Track/TwoLaneTrack from which on the route exists again. While automatic routing is deactivated
the default exit behavior, i.e., the exit strategy, which you selected, applies.
As long as the Transporter follows the predicted route the exit strategy of the covered
Tracks/TwoLaneTracks is irrelevant.
When you click OK or Apply in the dialog of the Transporter Plant Simulation predicts the
route anew. When you inserted or deleted Connectors before that, the Transporters might
now take a different route. In addition, Plant Simulation also reevaluates the destination,
when you click OK or Apply. When you entered a relative path to the destination and
the Transporter is located in a Sub-Frame, for example, the Transporterwill not find the
destination or the destination might even reference a different object.
When you activated automatic routing and also entered a Driving control, automatic
routing takes precedence. The driving control will only be called, when the Transporter
does not find a route and automatic routing is thus deactivated. The driving control
will be called, when you did not enter an exit control and the Transporter could move to
several successors.
For tugger trains automatic routing only works, when you enter the destination into
the tractor.
Compare the sample models: Click the Window ribbon tab, click Start Page > Getting Started >
Example Models, and click Small Examples. Then, select the respective Category, the Topic, and
the Example in the dialog Examples Collection and click Open Model.
SimTalk:
AutomaticRouting
Related Topics
RouteWeightingAttr
RoutingCtrl
Route to Destination
getRouteLength
HasRouteToDestination
setRoute
Destination
Click this and select the destination object to which the Transporter drives. For the Entity and
the Container the destination object is the object to which the Worker carries the part.
The Transporter automatically finds the destination object which you entered, using the destination
lists of the objects of type Trackor TwoLaneTrack. When you activate Automatic routing
, you do not need to define destination lists at all. The Transporter will
automatically find its destination object. When a sensor, into which you entered this target object is
the Destination, can be reached on a shorter route than the destination object itself, then automatic
routing directs the Transporter to this sensor.
When the destination is a TwoLaneTrack, you can also select the destination lane, A or B.
For tugger trains automatic routing only works, when you enter the Destination into
the tractor.
The destination can also be an Interface or a Frame. When it is a Frame, the Transporter
drives to the Interface, which can be reached on the shortest route.
You can also enter a table or a list as the Destination. This list or table can be a CardFile, a
QueueFile, a StackFile, or a TableFile, which you inserted into a Frame. It can also be a user-defined
attribute or a Variable of data type table, list, queue, or stack. The list or table has to have the column
type object. The Transporter then covers all destination objects in the list or table one after the other.
• TableFile (table): Plant Simulation cyclically processes the TableFile. The Transporter always
heads for the destination object, which is located on the table row to which the attribute
DestinationListRow of the Transporter points.
In most cases the TableFile will only have a single column. You can also enter any
data into additional columns though.
• CardFile (list): Plant Simulation treats the CardFile as a TableFile with one column.
• QueueFile or StackFile (queue or stack): The Transporter always drives to the first object in the
QueueFile or the StackFile. As soon as the destination is reached, Plant Simulation removes
the first object from the list. The Transporter then drives to the new first object in the list.
When the Transporter has reached its destination, it immediately picks the next
destination from the list or table. When the destination was a sensor, Plant Simulation
already determines the next destination before the sensor Control is called. If you
would like to set the immediate next destination in the control, it does not suffice
to change the list or table respectively, but you also have to reassign the attribute
Destination of the Transporter afterwards.
SimTalk:
Destination
DestinationListRow
Related Topics
Create Sensors in the Step-by-Step Help
Sensors
Enter the name of the attribute, which is used for controlling the weighting of routes. The value
of the route weighting attribute determines the name of user-defined attributes of Tracks and
TwoLaneTracks. All lengths of the Tracks and TwoLaneTracks will then be multiplied with the value
you assigned to the user-defined attribute. The user-defined attribute has to have the data type real.
If you assign a negative value to the user-defined attribute, this Track or TwoLaneTrack will not be
used for automatic routing. All Tracks and TwoLaneTracks, which do not have a user-defined attribute
with the name designated by the route weighting attribute use the factor 1.0.
SimTalk:
RouteWeightingAttr
Tab Failures
Define failures as described under the Tab Failures.
A failure of the Transporter as such does not fail the loading space. This also affects the
Resource Statistics of Moving Resources.
Related Topics
Active Availability
Start Availability
Stop MTTR
Duration
Tab Controls
Tab Controls
Click and select a Method object, into which you entered the source code of the respective
control, in the dialog Select Object.
You can select or enter the Driving control, the Routing control, the Destination control, the Collision
control, the Distance control, and the Speed control.
You can also select the Shift calendar, which controls the shifts during which the object works.
To open the dialog of the object, whose name you entered into the text box, press the
F2key.
Driving control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
driving control. In it, you program to which successor the Transporter moves, when it has covered
the entire Track/TwoLaneTrack, and when you did not enter an exit control.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type methodof this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
DriveCtrl
Routing control
Click this and select a Method object in the dialog Select Object. Enter the source code of
the routing control.The Transporter calls it, when the program automatically predicted a route to
the destination. Within this control you might, for example, read out the newly calculated route
with the method getRouteToDestination. You might then manipulate this route and assign the
changed route with the method setRoute. You might also check if the entrance or the exit of
one of the Tracks/TwoLaneTracksalong the predicted route is closed and then drive around this
Track/TwoLaneTrack.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.RoutingControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
RoutingCtrl
Destination control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
destination control. The Transporter calls it, when it has reached and covered its destination. When
you enter an exit control for the destination, the Transporter does not activate the destination control.
As soon as the Transporter has reached the destination and covered it, it calls the
destination control. When you entered a front-triggered exit control into the Destination
object, this does not activate the destination control.
After setting the destination in the destination control, you have to make the Transporter drive on
by moving it with the method move.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
DestCtrl
Related Topic
Create and Work with a Distance Control
Collision control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
collision control. When the Transporter crashes into another Transporter, i.e., the successor moves
with a higher speed than the predecessor, the faster Transporter calls the collision control.
For tugger trains this applies: When a tugger train collides, the collision control of the tractor will
always be triggered. Within the control method the anonymous identifier @ is the Transporter, which
actually collides, while the anonymous identifier ? designates the tractor of the tugger train.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.ExitControlEnginePlant. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.
To open the dialog of the object, whose name you entered into the text box, press
the F2 key.
SimTalk:
CollisionCtrl
Related Topics
Collided
Programming the Collision Control
Distance control
Click this and select a Method object in the dialog Select Object. Enter the source code of the
distance control. The Transporter, for which you entered the distance control, calls it when it gets
closer to any other MU than the Distance you enter. Plant Simulationcalls the control when the
distance becomes too small and when it becomes too great.
Instead, you can also right-click in the text box. Then, select Create Control on the context menu to
create a control method, which is a user-defined attribute of data type method of this object:
• Enter a meaningful name into the text box and select Create Control. Plant Simulation then
inserts self.Name_you_entered_for_the_control, such as self.DistanceControl. Or
• To delete this control, delete the user-defined attribute; deleting the name from the text box just
deletes the name, but keeps the user-defined attribute.