Professional Documents
Culture Documents
MT45215 S 141 Intermediate
MT45215 S 141 Intermediate
MT45215 S 141 Intermediate
Process Simulate
Standalone (eMS)
Intermediate
Robotics
Student Guide
October 2018
MT45215 ‒ Version 14.1
MT45215-S-141
Tecnomatix copyright, proprietary, and restricted rights notice
Trademarks
Siemens and the Siemens logo are registered trademarks of Siemens AG. Tecnomatix is a
trademark or registered trademark of Siemens Product Lifecycle Management Software Inc. or
its subsidiaries in the United States and in other countries. All other trademarks, registered
trademarks, or service marks belong to their respective holders.
Adobe Reader is a trademark or registered trademark of Adobe Systems Incorporated.
Apache is a registered mark or trademark of The Apache Software Foundation or its subsidiaries
in the US and other countries.
AutoCAD is a registered mark or trademark of Autodesk, Inc. or its subsidiaries in the US and
other countries.
Firefox is a trademark or registered trademark of Mozilla Foundation.
Intel is a registered trademark of Intel Corporation.
Java is a registered trademark of Oracle and/or its affiliates.
Microstation is a registered mark or trademark of Bentley Systems, Incorporated 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.
Siemens is a registered mark or trademark of Siemens Corp. or its subsidiaries in the US and
other countries.
TiCon is a registered mark or trademark of MTM or its subsidiaries in Germany and other
countries.
Windows, Microsoft, Internet Explorer and Microsoft Office are trademarks or registered
trademarks of Microsoft Corporation.
TR45215 prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
TR45215 audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Learning tracks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18
New non-sim operations for logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19
Non-sim operation usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-18
Weld controller example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-19
Weld controller basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-19
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-20
PLC example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-21
PLC basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-21
Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-23
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-24
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index-1
Course description
In the Process Simulate Intermediate Robotics (CEE) course, basic features of robotic event-based
simulation are explored using the Cyclic Event Evaluator (CEE). The CEE, which functions like a
PLC, is used to control how a typical robotics simulation progresses using logic.
Course objectives
Learn about:
• Project preparation
• Sensors
• And More
TR45215 prerequisites
In this course, you expand what was learned in the TR45115 course (5 days of training). (This
Student guide assumes that you have already taken this prerequisite course).
• TR45115 Process Simulate Standalone Basic Robotic Simulation
TR45215 audience
Individuals who would like to become knowledgeable in creating event-based simulations using the
Cyclic Event Evaluator (CEE). This course is also a prerequisite to the TR42315 Process Simulate
Standalone Advanced Robotics course.
Learning tracks
Learning tracks for the Tecnomatix application are found on the Siemens PLM Software training
website: training.industrysoftware.automation.siemens.com/index.cfm
Related Courses
Purpose
To introduce event-based simulation (using the Process Simulate Cyclic Event Evaluator).
Objectives
Business process
Here is a more detailed description of the how to create an event-based simulation in Process
simulate, including virtual commissioning. Although all these steps for event-based simulation should
be performed, they could occur in a different order. More details about each step is provided when
the step is covered in this training.
b. Setup appearances
c. Create sensors
e. Create modules
b. Create conveyors
Objectives
Process Simulate offers this functionality, which is available by selecting the robot (in the Graphic
Viewer or in the Resources folder of the Object Tree) and then choosing Robot Signals
from the Control tab of the ribbon.
The following diagram illustrates the basic relationship between robot (OLP) signals and PLC signals:
Choosing the Robot Signals command opens the Robot Signals dialog box for the selected
robot. This dialog box maps the signal on the robot with the signal on the PLC. The I/O shown
here from the perspective of the PLC. For example: robots receive (wait for) PLC output signals
and send PLC input signals.
• New Input Signal — creates a new PLC input signal (and robot output signal)
• New Output Signal — creates a new PLC output signal (and robot input signal).
• Create Default Signals — Inserts 4 standard output signals and 5 standard input signals
that are commonly used (for example startProgram, emergencyStop, etc.)
• Import Signals — Replaces the current signals with those imported from a Microsoft
Excel spreadsheet.
You learn more about these abilities in this topic and the next topic.
One way to view the OLP commands of a location is the select it and choose Teach
Another way is to view the path in the Path Editor, then double-click the OLP Commands
box of the desired location.
• To move the selected commands up/down in the list: Press the Up or Down arrow keys or click
Move Selected commands Up or Move Selected commands Down .
• To remove the select command, press the Delete key or right-click it and choose Delete .
• To cut the select command, press the Ctrl+X keys or right-click it and choose Cut .
• To copy the select command, press the Ctrl+C keys or right-click it and choose Copy .
• To paste a command, press the Ctrl+P keys or right-click it and choose Paste .
If you do not select a line before pasting, the commands are added to the end of
the list in the OLP Commands section.
Standard commands not mentioned here are described later in this course.
• File submenu:
o # OpenFile — Opens a file for editing. The Mode setting enables you to Append or
Overwrite file content. Also, set a Handle to be used in the next WriteLine and CloseFile
commands and a Name for the path to the file to be opened.
o # CloseFile — Closes an open file. Set the Handle of the file that was opened with the
OpenFile command.
o # WriteLine — Enables you to write a line of text in an open file. Set the Handle of the file
that was opened with the OpenFile command and write the text in the Expression box. Use
double quotes to print the value of a variable or a signal, for example, type "E1" to write the
value of signal E1.
• Graphics submenu:
o # TCP Tracker — Enables you to start, pause, resume, or stop the TCP Tracker for the
robot assigned to the current operation during simulation.
• Paint submenu:
o # ChangeBrush — Marks the location where the painting style should be changed
(for example paint fan 1, 2, 3, etc.)
• ToolHanding submenu:
o # Connect — (add an external axis to the robot during simulation) connect the specified joint
from the specified device as an external axis of the robot. For example, when simulating a
grinding robot with a tool changer with several sized grinding tools.
o # Disconnect — (remove an external axis of the robot during simulation) disconnect all
external axis joints of the specified device from the robot. For example, when simulating a
grinding robot with a tool changer with several sized grinding tools.
o # DriveDevice — Moves the selected device to the selected target pose. (Review from
the TR42115 course)
o # GunToState — Instructions for moving the gun to its specified pose, as specified in the
Gun State parameter. TR45115 Process Simulate Standalone Basic Robotic Simulation and
TR45215 Process Simulate Standalone Intermediate Robotics (CEE) courses
In the case of a servo gun, this moves the servo gun to the position specified by
the external axis depart value. If no depart value is defined, the servo gun moves
using the Gun State parameter.
o # Mount — Mount a new tool on the robot. For example, when simulating a grinding
robot with a tool changer with several sized grinding tools.
o # UnMount — Unmount the existing tool on the robot. For example, when simulating a
grinding robot with a tool changer with several sized grinding tools.
o # WaitDevice — The robot waits until the selected device reaches the selected target pose.
(Review from the TR42115 course). (Review from the TR45115 course).
o # Drive Device Joints — Move the selected joint(s) of the selected kinematic device to
the specified joint value(s).
Objectives
After you complete this topic, you should be able to:
• Get an overview of how an event-based simulation operates.
Business process
• Transitions — Typically, you use a transition to define the material flow logic. The material flow
determines when a part is created and when it is destroyed during a simulation. During virtual
commissioning transitions are ignored, so you replace then with special logic blocks.
• Logic blocks — You use logic blocks to define mechanical controls and safety interlocks. During
virtual commissioning, you can decide whether a logic block is active or inactive. During virtual
commissioning, when it is inactive, you can optionally replace the virtual device with a real one.
• Modules — Typically, you use modules to create process logic and connect devices. This logic is
replaced later by the logic in the PLC when performing virtual commissioning.
• Robotics — On each robotic path location, you can evaluate or change the value of a signal.
You can also perform special actions such as an emergency stop.
You learn how to setup and use each method throughout this course.
group→Simulation Panel .
• You can open multiple instances of the Simulation Panel and load different signals in each
instance, enabling you to view various signals without having to scroll the signal list.
• Add Signal — Adds the signals you selected in the Signal Viewer under the selected node in
the Simulation Panel.
• Add LB Elements — Opens the Add LB Elements dialog box, enabling you to add logic
behavior elements (for example, exits, entries, and parameters) under the selected node in
the Simulation Panel.
• Remove Signal — Removes selected signals, logic block elements or groups from the
Simulation Panell. Removing a group removes the group node and all the elements nested under
the node. You can also remove an item by pressing the Delete key.
• Group — Groups selected signals, logic block elements, or other groups in the Simulation
Panel and nests them under a new group container node. A new Group is automatically assigned
a name, composed of the word “group” and an index. The group name is set to edit mode,
allowing you to type a different name. The value columns for the group node are grayed out.
• Ungroup — Ungroups the selected group in the Simulation Panel, removes the Group
node, and adds the group’s direct descendants to the group’s parent node (another group or
the Simulation Panel root). Ungroup does not change the order or hierarchy of the group’s
descendant nodes.
• Load Signals Settings — Opens the Load Simulation Panel Signals Setting dialog box and
enables you to load a new Simulation Panel Signal Setting (.SPSS) file into the Simulation Panel.
• Store Signals Settings — Opens the Store Simulation Panel Signals Setting dialog box and
enables you to save the current contents of the Simulation Panel as an .SPSS file for future use.
• Settings - Opens the Settings dialog box, enabling you to define the location in which
to save .SPSS files.
• Force Signals
• Unforce Signals
• Inputs — For input signals this column displays the signal value. The value is updated during
simulation.
• Outputs — For output signals this column displays the signal value. The value is updated
during simulation.
• LB — Displays the value of Logic Block Parameters, Entries and Exits for debugging purposes.
• Forced — If deselected , the signal operates normally. If selected , the signal always sends
the value specified in the Forced Value column.
• Forced Value — The value sent by the signal if the check box in the Forced column is selected.
For binary values, a green square indicates a signal that is always on (TRUE), while a red
square indicates a signal that is always off (FALSE). If a signal can carry a numeric value,
double-click the box in this column to set the forced value for the signal.
The contents of the Simulation Panel are not stored when you choose Save from the Quick
access toolbar. In order to save them for future use:
1. In the Simulation Panel, click Store Signals Settings dialog box.
2. Enter a name for the SPSS (Simulation Panel Signals Settings) file and click OK.
.SPSS files also save the forced value and status of the signal. It is very useful to
store forced values in order to initiate simulations with predefined scenarios (Amount
of cycles etc.) It is possible to specify the default folder where .SPSS files are stored
and loaded from.
2. Select a SPSS (Simulation Panel Signals Settings) file and click OK.
• If the Simulation Panel is closed when loading the study, you can open a Simulation Panel
instance and load a set of signals saved in an SPSS file ) use Load Signals Settings on the
Simulation Panel toolbar). If you had already added signals before loading the SPSS file, you
can set Loading Mode to Add or Replace.
Activities
In the Simulation Panel section, do the following activities:
• Introduction to the Simulation Panel
Introduction to signals
Purpose
In this topic, you learn the basics of signals.
Objectives
After you complete this topic, you should be able to:
• Create, view, and name signals.
Signal basics
Signals are used to define the logic of a simulation.
There are several types of signals that can be created.
• Key Signal — Used for user input (for example a Palm Button).
• Display Signal — Used to monitor something (for example an LED on an operator panel).
• Resource Input Signal — Used to represent communication to the PLC (for example a signal
that is set from a robot to the PLC)
• Resource Output Signal — Used to represent communication from the PLC (for example
a signal that is set to a robot from the PLC)
Naming rules
These naming rules follow the IEC 61131-3 international standard for variable (also known
as the identifier) naming.
An identifier is a string of letters, digits, and underline characters which shall begin with a letter or
underline character.
An identifier is a string of letters, digits, and underline characters which shall begin with a letter or
underline character.
Underlines shall be significant in identifiers, for example “A_BCD” and “AB_CD” shall be interpreted
as different identifiers. Multiple embedded underlines are not allowed.
Identifiers shall not contain imbedded space (SP) characters.
At least six characters of uniqueness shall be supported in all systems which support the use of
identifiers, for example, “ABCDE1” shall be interpreted as different from “ABCDE2” in all such
systems.
Identifier features and examples:
• Upper case and numbers
o IW215 IW215Z QX75
• Upper and lower case, numbers embedded underlines. All the above plus:
• Upper and lower case, numbers leading or embedded underlines. All the above plus:
o _MAIN _12V7
Signal Viewer
Purpose
Objectives
Business process
• Signal Viewer Filter - allow users to filter the rows by values in the various columns seen in
the table. For example: filter by signal name, by address, as well as by the signal's connection
to operations or resources.
• Reset Signal Viewer Filter - clears the filter so that all signals is shown.
• Open the Simulation Panel, if it not already: From the ribbon, choose View tab→Screen Layout
By default in the Advanced Simulation window layout, the Signal Viewer is setup as
an on demand dialog box along the bottom of the Process Simulate window.
To create a signal:
2. Select the desired type, type the name, and click OK.
Activities
In the Signal Viewer section, do the following activities:
• Create a new signal
Objectives
Overview of transitions
In a standard time-based simulation, the sequence of operations (SOP) determines the order the
operations is executed. In an event driven simulation, logic determines the order the operations is
executed.
The sequence between the operations is only one element of the complete logic definition. For
example, operation Op1 should start before operation Op2. This is the sequence.
However, operation Op2 can have more conditions to define the criteria to start.
The method used to control the start of an operation is the evaluation of its transition condition (the
end criteria for the previous operation).
Transition basics
On the Sequence Editor, when working inLine Simulation Mode and setting the LineOperation
as the current operation, the Transition column enables you to determine the logical conditions
(like a Plant Simulation entrance and exit control) that must be satisfied before the next linked
operation can be executed. There two basic states for a transition:
Each condition is made up of an expression containing one or more signals and logical operators
which evaluates to a TRUE or FALSE value. If the value of expression is TRUE , the next
linked operation is executed. So the exit control of one operation becomes the start control of the
next operation.
• One important thing to remember with event drive simulation is that the Gantt does not
control the order that the operations are executed. This is controlled by the signals.
• However the links on the Gantt between operations are used to control how a
generated appearance is passed from one operation to another
By default all compound operations do not have transitions and all operations do. The default
condition contains a special signal named according to the operation with _end appended to the end
of the name. This signal “flickers” to TRUE when the operation is finished executing.
For compound operations the internal operations are also important. The resulting
conditions are the common conditions for the compound and the last internal operations
conditions.
Another typical signal is named according to a device with _AT appended to the end of the name.
This signal becomes true when a device is at a specific pose.
Conditions for Entrance and Exit Control:
The exit control for the currently edited operation is entered in the Command Condition box.
The entrance control for the successor operation is entered in the lower section of the Transition
Editor dialog box. Typically you leave this blank, unless there are multiple successor operations.
Transitions usage
To create a transition:
• On the Sequence Editor, Link two or more operations as discussed in the TR45115 Process
Simulate Standalone Basic Robotic Simulation course.
You can also link operations by dragging the operation bar in the Gantt chart section of
the first operation straight down, then dropping the resulting line on the operation bar
of the second operation.
3. Edit the common condition and type the desired logical conditions.
You can include a maximum of 20 signals and operators, combined, in each expression.
Later in class you discuss several ways too handle branching logic (or alternatives).
To remove a transition:
• On the Sequence Editor, Unlink two or more operations as discussed in the TR45115
Process Simulate Standalone Basic Robotic Simulation course.
Activities
In the CEE operational transitions section, do the following activities:
• Look at some existing transitions
Purpose
Objectives
Sensor basics
Sensors enable you to detect 3D-visualized parts and resources which come near or enter the
sensors detection range (for example collision detection or near miss detection). They are used for:
• Interlock detection (stop robot if it moves too near the security area of another robot or a security
fence)
• Etc.
There are several types of sensors that created and used in Process Simulate:
Activities
Objectives
After you complete this topic, you should be able to:
• Look the content of a logic block.
The Edit Logic Resource command, from the Control tab of the ribbon, is used to change the
names of entries and exits, but not parameters, constants, or actions.
Activities
In the Viewing logic blocks and smart components section, do the following activities:
• Look at the content of a logic block
Objectives
After you complete this topic, you should be able to:
• Look at the content of a module
Module basics
In this topic you create and use modules to clean up how you are setting up your logic. Modules
are created in the Modules Viewer.
The Modules Viewer enables you to create and view the hierarchy of modules in the study .
It contains:
• The Modules Viewer toolbar enables you to manage the contents of the Modules Viewer.
• The Modules Viewer Inventory area displays all the modules that are stored in the study . From
this area, modules can be dragged and dropped into the Modules Viewer Hierarchy area, as
required.
• The Modules Viewer Hierarchy area displays the configurable hierarchy of modules for the
study . The order of modules in the hierarchy determines the behavior of the study .
The Modules Viewer enables you to edit and evaluate signal expressions. It can be considered to act
as an “internal PLC”. In Modules Viewer, you can define a signal as a result of a logical expression
comprising a number of other signals and operators. The expressions are evaluated each time a scan
is performed. You can edit the signals assigned to a selected module by defining new expressions for
signals, or by modifying the expressions defined for a selected signal.
To open it:
By default it is collapsed against the right side of the Graphic Viewer. If it is not:
• From the ribbon, choose View tab→Screen Layout group→Viewers →Modules Viewer.
Activities
In the Modules Viewer (optional) section, do the following activities:
• Look at the content of a module
Summary
Subjects learned in this topic:
• The typographical conventions used in this student guide.
Purpose
Objectives
• How to use what you have learned together with some new material flow concepts.
Objectives
Business process
Event-based basics
• Window Layout
o For the window layout it is suggested to select Advanced Simulation: In the ribbon View
tab→Screen Layout group, choose Advanced Simulation from the Layout manager
drown arrow .
• Study Mode
• When a study is opened in Line Simulation Mode , the product is not shown.
• During a simulation a part appearance is auto generated when the part is “used” or “needed”.
• When the part is no longer “used” or “needed”, the part appearance is destroyed.
• When a simulation is not running part appearances can be temporarily generated manually to
help with simulation creation.
Activities
In the Working in event-based studies section, do the following activities:
• Starting out
Objectives
• Part assigning
• Part relocation
• Synchronize operations
o Standard Mode on the Home tab of the ribbon — Standard mode is for sequence
based simulation. In this mode, the next operation to simulate is completely determined by
the links in the Sequence Editor.
o Line Simulation Mode on the Home tab of the ribbon — Line Simulation mode is
for event-based simulation or partial Sequence Based simulation. In this mode, the next
operation to simulate is determined by an operation’s transition conditions becoming true in
the Sequence Editor.
• Snapshots are disabled in Line Simulation Mode because it overlaps with event-based
functionality (for example when to display a part instance); but snapshots still can be used in
Standard Mode .
Business process
Non-sim operations
Process Simulate enables you to add several types of simulative operations, including a Non-Sim
Operation , Flow Operation , Pick and Place Operation , Weld Operation, or
Continuous Feature Operation .
Typically you create the operations in the Operation Tree viewer. Operations are linked (sequenced)
in the Sequence Editor.
Any simulative operation you create, automatically creates an operation_end signal. This signal is
used as a default condition in the transition between one operation and the successor operation.
During a simulation, when the operation finishes, the related _end signal is set to TRUE for one
computation cycle and then reset to FALSE .
The behavior of this signal is as shown in the illustration:
During a simulation, Process Simulate needs to “catch” the TRUE /FALSE pulse to be
able to continue to the next cycle. Normally this not the behavior that you want. So, you
typically replace the _end signals with other signals that reference your custom logic.
2. From the ribbon, choose Operation tab→Create Operation group→New Operation →New
Non-Sim Operation .
3. In the Name box, type a name for the operation. By default all new non-sim operations are
named Op#.
You are not required to type a description. However, if a description is entered into
the Description box, it appears in the Edit Operation dialog box when an operation
is edited. It also appears as the text headlines in an .AVI movie file when using the
Text Overlay tool.
6. Click OK. A new non-sim operation is created and displayed in the Operation Tree viewer. If there
is not already a current operation, the new operation is automatically set as the current operation
and is therefore displayed in the Sequence Editor.
The Operation Properties option enables you to modify the parameters of a selected
operation. The parameters of an operation vary according to the type of operation.
To edit a compound operation, the required compound operation must first be set
as the current operation.
To edit an operation:
1. Select an existing operation from the Operation Tree.
• Add Signal — Adds the signals you selected in the Signal Viewer under the selected node in
the Simulation Panel.
• Add LB Elements — Opens the Add LB Elements dialog box, enabling you to add logic
behavior elements (for example, exits, entries, and parameters) under the selected node in
the Simulation Panel.
• Remove Signal — Removes selected Signals, LB elements or groups from the Simulation
Panell. Removing a group removes the group node and all the elements nested under the node.
You can also remove an item by pressing the Delete key.
• Group — Groups selected Signals, LB elements, or other groups in the Simulation Panel and
nests them under a new Group container node. A new Group is automatically assigned a name,
composed of the word “group” and an index. The group name is set to edit mode, allowing you to
type a different name. The value columns for the group node are grayed out.
• Ungroup — Ungroups the selected group in the Simulation Panel, removes the Group
node, and adds the group’s direct descendants to the group’s parent node (another group or
the Simulation Panel root). Ungroup does not change the order or hierarchy of the group’s
descendant nodes.
• Load Signals Settings - Opens the Load Simulation Panel Signal Setting dialog box and
enables you to load a new Simulation Panel Signal Setting (.SPSS) file into the Simulation Panel.
• Store Signals Settings — Opens the Store Simulation Panel Signals Setting dialog box and
enables you to save the current contents of the Simulation Panel as an .SPSS file for future use.
• Settings — Opens the Settings dialog box, enabling you to define the location in which
to save .SPSS files.
• Force Signals
• Unforce Signals
• Inputs — For input signals this column displays the signal value. The value is updated during
simulation.
• Outputs — For output signals this column displays the signal value. The value is updated
during simulation.
• LB — Displays the value of Logic Block Parameters, Entries and Exits for debugging purposes.
• Forced — If deselected , the signal operates normally. If selected , the signal always sends
the value specified in the Forced Value column.
• Forced Value — The value sent by the signal if the check box in the Forced column is checked.
For binary values, a green square indicates a signal that is always on (TRUE), while a red
square indicates a signal that is always off (FALSE). If a signal can carry a numeric value,
double-click the box in this column to set the forced value for the signal.
Objectives
After you complete this topic, you should be able to:
• Work with part appearances
Business process
Appearances
Viewing product in a line simulation mode:
• When a study is first opened in Line Simulation Mode, the product associated to the operation
tree is not shown.
• During a simulation a part appearance is automatically generated when the part is “used” or
“needed”.
• When a simulation is not running part appearances can be temporarily generated manually to
help with simulation creation.
What is an appearance?
• It allows placing one reference to a specific product (structure or part instance) in a study and
to view it at multiple locations simultaneously (for example several copies of the part moving
down a line).
Appearance display:
• When generated automatically or manually, appearances are shown in the Graphic Viewer and in
the Appearances folder of the Object Tree.
• When the transition condition on the last operation in the sequence becomes true , the
appearance is destroyed.
• Generate Appearances
o Displays the part (as an appearance) associated to the selected operation.
o Available on the right-click menu in the Operation Tree (of the Advanced Simulation or
my Advanced Simulation window layout).
1. From the Graphic Viewer toolbar, change the Pick Intent to Self Origin .
6 Values .
4. Click OK.
o Place the appearance in the desired position (for example on a specific frame created earlier).
The new initial position of the appearance is stored. The next time it is generated
manually or automatically it appears in this position.
Basic Techniques
Purpose
In this topic, you learn how to build on what was learned in the previous topics by adding a part
flow to your simulation.
Objectives
After you complete this topic, you should be able to:
• Setup the initial object flow operation.
You learned how to make flow operations in the TR45115 Process Simulate Standalone
Basic Robotic Simulation course.
Setting the Start Position for an Appearance Associated to a Specific Flow Operation:
• Generate appearances for the flow operation
• Links between operations are used for holding the transition condition (which becomes the
start condition of the successor operation).
• Only the operation start condition determines whether an operation can start or not (if an
operation doesn’t have a predecessor operation with a transition condition, it starts continuously)
Material flow links are an operation type object, but can only be seen in the Material
Flow Viewer. In order to modify it, you must have the ability to check out its
predecessor and successor operations.
• Can only contain material flow links and operations (no compound operations)
• A material flow link determines the order in which parts are moved between operations
• Material flow links allow downstream operations to access parts accumulated in previous
operations
Alternative material flow links are shown in the Material Flow Viewer as a dashed line.
• Alternative material flow links, using alternative groups, allow parts to be passed to successor1
OR (successor2 AND successor3), if successor2 and successor3 are part of an Alternative Group.
Compound parts:
• If, in a material flow, the first operation is a flow operation for partA, then there’s a flow operation
for partB, and then a flow operation for a compound part containing partA and partB then:
o The parts is passed from the preceding operation flows to the compound part flow. (The two
single instances is put together into the compound part).
• Add Operation
• Link Mode
• Add Link
• Unlink
• Delete
• Choose
• Move
• Zoom In
• Zoom Out
• Zoom to Fit
• Zoom to Selection
• Show / Hide
• Display Parts
• Layout Display
• Toggle Grid
• Process Simulate executes all events of leaf operations (for example, flow, weld, and non-sim
operations) as usual.
Module basics
In this topic you create and use a module to set the value of one signal to another.
Modules are created in the Modules Viewer. You use the Modules Viewer to create and view the
hierarchy of modules in the study . It contains:
• The Modules Viewer toolbar enables you to manage the contents of the Modules Viewer.
• The Modules Viewer Inventory area displays all the modules that are stored in the study . From
this area, modules can be dragged and dropped into the Modules Viewer Hierarchy area, as
required.
• The Modules Viewer Hierarchy area displays the configurable hierarchy of modules for the
study . The order of modules in the hierarchy determines the behavior of the study .
The Modules Viewer enables you to edit and evaluate signal expressions. It can be considered to act
as an “internal PLC”. In Modules Viewer, you can define a signal as a result of a logical expression
comprising a number of other signals and operators. The expressions are evaluated each time a scan
is performed. You can edit the signals assigned to a selected module by defining new expressions for
signals, or by modifying the expressions defined for a selected signal.
To open it:
By default it is collapsed against the right side of the Graphic Viewer. If it is not:
• From the ribbon, choose View tab→Screen Layout group→Viewers →Modules Viewer.
In this lesson, you learn about just two module inventory commands. More about the Module Viewer
and the other commands are covered later in this training.
3. Enter the Expression by typing and Selecting from the hints that appear to auto fill the box.
The Result Signal box do not auto fill like the Expression box. Also, the Result
Signal box is case sensitive.
5. Click OK.
7. Click OK.
Activities
In the Basic Techniques section, do the following activities:
• Setting up the initial object flow operation
In this topic, you learn quick tips to part appearance and material flow problems.
Objectives
• Verify LineOperation is the current operation: It should show in bold in the Operation Tree
and should be the top operation in the Sequence Editor.
• Use Customize Columns to add the Branch Type, Transition, and Running columns.
• Edit the Transition conditions to make sure there are no deleted signals shown.
• Click Jump Simulation to Time to start from a specific point in the simulation.
o Method 2: Start the simulation and quickly stop it. Select the desired operation and click
Operation Start Condition .
o If the condition is an _end signal, then it do not start until the predecessor operation has
finished. If it is something else (such as a sensor signal), it starts when that signal is true
(irrespective if the predecessor operation has finished or started)
o Check Show only signals associated with the following resources and poses.
o Select in the selection box below the check box, select the desired resources from the Object
Tree or Graphic Viewer.
o Click Apply .
• Cross Reference Query tells where the selected signal is used (for example is safe to delete
or not) If you delete a signal that is used, it shows deleted signal or deleted parameter on the
place where it is used (for example on the transition condition or elsewhere)
• In the Object Tree, click Customize Columns to add the Input Signals and Output Signals
columns.
Quick tips
Part Associations:
• Parts must be associated the operation structure to be able to generate them in Line Simulation
Mode .
• Operations could also have been added to the Material Flow Viewer from the Not in Viewer
tab of the Material Flow Validity Report .
Summary
Subjects learned in this topic:
• How to create studies other related topics and an overview of the topics in this topic.
• How to use what you have learned together with some new material flow concepts.
Purpose
This chapter provides information on how to setup and use sensors and conveyors. It contains
the following lessons:
Objectives
Sensor introduction
Purpose
In this topic, you learn how the basic types of sensors available in Process Simulate.
Objectives
Business process
Sensors are an important part of event-based simulations. In this part of the training, you learn
about several different types of sensors.
Sensor basics
Light (photoelectric) and proximity sensors enable you to detect 3D-visualized parts and resources
which come near or enter the sensors detection range (for example collision detection or near miss
detection). They are used for:
• Part detection (is the part at the right place?)
• Interlock detection (stop robot if it moves too near the security area of another robot or a security
fence)
• Etc.
Sensor types
• Joint Value Sensor
The joint value sensor was covered in an earlier chapter in this course and is covered again in
later chapters.
• Proximity Sensor
A proximity sensor requires the selection of geometry to represent it. It is a 3D sensor that
checks for collisions/near misses with existing components. The sensor is activated when one
or more predefined elements enter its predefined detection range (near-miss) of the geometry
of the sensor. To create this type of sensor:
Just like Joint Value Sensors; Proximity Sensors and Photoelectric (Light)
Sensors set a bit high when the condition is TRUE (for example in this case when a
collision/near miss is detected with the designated part).
• Property Projector
Technically, this is not a sensor. However, it is used to add properties, defined in the Edit Part
Simulation Property List, to objects (like putting a bar code on an object) that a property sensor
can detect. To create this type of object:
• Property Sensor
A property sensor is used to detect objects bearing certain properties, added by a property
projector, during a simulation. To create this type of sensor:
In this topic, you learn how to create and use light sensors.
Objectives
Configuration options in the Create Photoelectric Sensor dialog box enable you to define the size of
the lens, as well as the length of the beam emitted by the sensor.
In the Create Photoelectric Sensor dialog box by default, light_sensor is shown in the Name box.
2. Set the Lens Parameters for the photoelectric sensor by choosing values in the Diameter and
Width (thickness) boxes. The lens has no affect on the simulation. It just provides selectable
geometry in the Graphic Viewer.
3. Set the beam parameters for the photoelectric sensor by choosing values in the Length box.
The Length is the maximum length of the beam emitted by the photoelectric sensor. This is a
critical attribute of the sensor.
4. Objects defined under Check Interference With are detected by the photoelectric sensor when
interfering (colliding) with the beam.
5. Clicking OK, the sensor resource and an input signal with the same name as the sensor’s name
is created.
The sensor signal is triggered to 1 when a part from the interference list crosses the
sensors beam.
When a photoelectric sensor is created, it is placed by default at the origin of the cell.
To activate the sensor, select the sensor and choose Activate Sensor from
the Control tab of the ribbon. The sensor can be turned off by clicking Deactivate
Sensor .
If needed, the beam can be displayed or hidden by clicking either Display Detection
Zone or Hide Detection Zone .
By default light sensors are not active. You can activate them, but they still may be
ignored. They need to be used to be truly active.
1. Select the sensor resource and choose Control tab→Sensor group→Edit Sensor . The Edit
Photoelectric Sensor dialog box is displayed.
Activities
In the Photoelectric sensors (light sensors) section, do the following activities:
• Doing the basic study setup
Proximity sensors
Purpose
In this topic, you learn how to create and use proximity sensors.
Objectives
Configuration options in the Create Proximity Sensor dialog box enable you to set the sensor’s
detection range. You can also specify the items that trigger the sensor when they enter its detection
range.
In the Create Photoelectric Sensor dialog box by default, proximity_sensor is shown in the
Name box.
3. In the Graphic Representation box, select the resource or location in the Graphic Viewer or
Object Tree to be used as the sensor’s base object. The sensor’s detection range is measured
from this point.
4. In the Check Interference With section, type the names of the objects in the Graphic Viewer
that activates the sensor when they type its detection range.
5. From the Detection Range dropdown list, specify the sensor’s detection range, meaning the
maximum distance that an object can be positioned from the base object and still activate the
sensor. If the distance between any of the objects specified in the Check Collision With section
and the base object is equal to or lower than this range, the sensor is activated.
6. Defining the value of the sensor signal as FALSE under normal conditions (when no element is
inside the detection range) by Selecting the option Normally False Signal.
7. Click OK.
1. In Process Simulate, select the sensor, and choose Control tab→Sensor group→Edit Sensor
.
2. In the Edit Proximity Sensor dialog box, modify the sensor settings as required.
Activities
In the Proximity sensors section, do the following activities:
• Creating and using proximity sensors
In this topic, you learn how to create and use conveyors and skids.
Objectives
Business process
• Belt conveyor – Part sits directly on the conveyor. The whole conveyor has to stop in order to
stop the part (synchronous stop).
• Define (Conceptual) Conveyor — Used to create a complete conveyor (linear and angular
combined) that follows a curve. It can be used to transport parts in a study. (Regular or skid
conveyor)
• Define Conveyable Part — Used to select a part to be transported by a regular (not skid)
conveyor.
• Define As Conceptual Skid — Used to define an existing resource as a skid for transporting
parts on a skid conveyor (linear or angular).
• Edit Conveyor Logic Behavior — Used to add conveyor logic behavior, such as starting
and stopping, to a conveyor.
You use the Define Conveyor command, located on the Control tab of the ribbon, to
create a conveyor that follows a curve. This curve can contain straight or angled segments that
bend in any direction. The curve can be closed or opened, and you can use part of the curve
or the whole curve.
Angular conveyors
You use the Define As Angular Conceptual Conveyor command, not located on the
ribbon, to create a legacy angular conveyor that can be used to transport parts along a curved
path between defined locations inside the cell. You can optionally define the conveyor as a
skid conveyor.
When defining an angular conveyor, you must define the center point and a radius as well as the
angle of curvature. The radius and angular speed define the linear speed of the conveyor, as
described by the following equation:
v [mm/sec] = a [deg/sec] * radius [mm]
Linear conveyors
You use the Define As Linear Conceptual Conveyor command, not located on the ribbon,
to create a legacy linear conveyor that can be used to transport parts between defined locations
inside the cell. You can optionally define the conveyor as a skid conveyor.
Conveyor basics
This information is true for all conveyors.
• Conveying Tolerance — defines how close a conveyable part has to be to the conveyor in order
for the part to be conveyed. Any object within the conveying tolerance moves as if it is placed
upon the conveyor. For skids, the measurement is made with respect to the conveying frame.
• Collision Tolerance — defines how close a conveyable part has to be to the conveyor in order
for it to be considered in collision calculations. If a part or skid is within the collision tolerance,
but outside the conveying tolerance, and it is therefore stationary, the application takes it into
account when calculating collisions between objects. If a part is beyond the collision tolerance,
the application ignores it when calculating collisions between objects.
• In the case of a conceptual skid, the collision tolerance and conveying tolerance are measured
from the conveying frame.
• You cannot configure the collision tolerance to be less than the conveying tolerance. This
combination is blocked because the application checks for collision between objects on the
conveyor.
5. For the Curve, select a curve to represent the path of the conveyor.
6. Select which portion of the curve to use and the direction of the conveyor using :
7. Click Control Points to define the control points (where the skids can stop along the curve).
This is described in more detail on the next page.
9. Select the desired location under the system root and name for the COJT.
10. In the Navigation Tree, select the desired location in the ResourceLibrary for the object.
• Orientation change: when a part/skid reaches an orientation change point it will start to rotate
according to the point’s settings.
• Speed change: when a part/skid reaches a speed change point it will start to move with a
higher/lower velocity until it reaches the next speed change point.
3. From the Resource Logic Behavior Editor dialog box, edit the conveyor's logic and add a Boolean
entry for each control point. For example, create CP_1 and CP_2.
6. From the Define Conceptual Conveyor dialog box, click Control Points .
The Control Points dialog appears.
7. Click Create Control Point (the button toggles to its on state) and click the point on the
conveyor at which to add the new control point. The new control point is displayed as an orange
sphere.
The Control Points dialog displays the following information for the control point:
• Name - By default, control points are named according to the following convention:
CP_<enumerator>. For example, named CP_1.
If you wish to rename the control point, double-click it or press the F2 key, edit the name, and
press the Enter key to accept the change.
• Stopper check box - When a control point is defined as a Stopper Point, its Orientation
and Speed are grayed out and not considered during simulation (parts do not change their
orientation when passing the control point, and the point’s properties are ignored when
calculating speed intervals).
During the simulation when a skid/part reaches a stopper point it stops moving. If other
skids/parts follow the stationary one, they stack one after another before the Stopper Point.
If the leading item/skid on the conveyor is obstructed and cannot move forwards,
the following items/skids stack up behind it with a default gap of 0.1 mm. To change
this value, choose File→Options , PLC tab, and set the Stacking accuracy.
• Orientation - When parts reach the control point on the conveyor, their orientation is changed
to that defined in the Orientation box. By default, the box is empty and there will be no
change in the part’s orientation. To select a frame for the orientation, select the orientation
box, click and select a frame; or double-click the orientation box or press the F2 key, and edit
the frame values manually.
The control point with orientation is displayed as a sphere with a frame. Press the Enter
key to accept the change.
If you wish to cancel the orientation, select the orientation box and click Remove Orientation
of Control Points .
• Speed - When parts reach the control point on the conveyor, their speed is changed to
that defined in the Speed box. By default, this is set as the conveyor's actual speed (the
speed box is empty, with no value displayed).
In this case, when a part or skid passes through such a control point, its speed is
changed to the actual conveyor speed (which might be accelerated or decelerated
based on the conveyor's logic behavior during the simulation).
To set the speed, select the speed box, double-click it or press the F2 key, set the value as
desired, and press the Enter key to accept the change.
• Condition expression enter a logical expression for the control point. For example, enter
NOT MyConveyor1_CP_1 for CP_1.
8. For each additional control point you want to add, click (the button toggles to its on state)
and click the point on the conveyor at which to add the new control point. The new control point
is displayed as a green sphere and the rest are displayed as orange spheres. For example,
now create CP_2.
10. Click OK to close the Control Points dialog and save the control points.
If you added control points on an excluded section of the conveyor curve, these are
removed when you close the Control Points dialog.
11. Optionally, you can set a Condition expression for a control point. When the condition evaluates
to True during simulation, the properties of the control point are taken into consideration;
otherwise, they are ignored. However, even when the condition expression evaluates to False
during simulation, the speed property is still used to calculate the speed intervals. Control points
are displayed in bold font in the Name column when they possess a Condition expression. For
information on how to edit expressions, refer to Edit Module.
In this example, when a skid reaches control point CP_1 and both Resource Input Signal and
Resource Input Signal1 are False, the skid continues to move. However, if one of these signals
changes to True when the next skid arrives at CP_1, that skid stops at the control point and all
the following skids stack up behind it, as long as either signal remains True.
3. From the Quick access toolbar, click Customize Quick Access Toolbar , choose More
Commands, and add the Define as Linear Conceptual Conveyor to the Quick access
toolbar.
5. From the Quick access toolbar, choose Define as Linear Conceptual Conveyor .
8. Select the desired location under the system root and name for the COJT.
9. In the Navigation Tree, select the desired location in the ResourceLibrary for the object.
2. From the Quick access toolbar, click Customize Quick Access Toolbar , choose More
Commands, and add the Define as Angular Conceptual Conveyor to the Quick access
toolbar.
5. From the Quick access toolbar, choose Define as Angular Conceptual Conveyor .
8. Select the desired location under the system root and name for the COJT.
9. In the Navigation Tree, select the desired location in the ResourceLibrary for the object.
An additional consideration is shown in an additional example: How to link a series of skid conveyors
in such a way that the skids conveyed do not collide (It is already finished for your convenience).
Edit Conceptual Conveyor Definition and Behavior
The Edit Conceptual Conveyor command, located on the Control tab of the ribbon, enables
you to modify the settings of an existing conveyor. You can only edit a conveyor that is loaded for
modeling.
The Edit Conveyor Logic Behavior command, located on the Control tab of the ribbon, enables
you to add your logic behavior, such as starting and stopping, to a conveyor. You can edit the logic
behavior, as required, in the Resource Logic Behavior Editor dialog box.
Conveyor Actions:
• Start — Add logic that starts the conveyor
o By default, the resulting logic block simulation has a "rising edge" behavior, which means
that the conveyor starts only when the condition of the Start signal changes from False
to True .
• Change Speed — Add logic that enables the use of controllable speeds
o The actual speed is calculated according to the following formula: cur_speed +
SPEED_STEP * (ChangeSpeed AND NOT prev_changeSpeed) where SPEED_STEP is
defined as a constant inside the logic block simulation. The change of speed is initiated by
the external Boolean value in the following expression: cur_speed * (ChangeSpeed AND
NOT prev_changeSpeed).
The formula calculating the speed is just a default behavior and like the other three actions
can easily be edited with the Logic Block Editor.
3. From the ribbon, choose Control tab→Conveyor group→Edit Conveyor Logic Behavior .
The Define As Conceptual Skid command, located on the Control tab of the ribbon, enables you
to define an existing resource as a skid for transporting parts on a skid conveyor (linear or angular).
• The conveying frame which sets the position of the reference frame for making tolerance
calculations on the skid.
• The surface entities to which the parts being transported are attached.
The Edit Conceptual Skid command, located on the Control tab of the ribbon, enables you to
modify the settings of an existing skid.
7. Select the desired location under the system root and name for the COJT.
8. In the Navigation Tree, select the desired location in the ResourceLibrary for the object.
Drive conveyor
You use the Drive Conveyor command to drive or jog the conveyor forwards or backwards so
that conveyor skids or parts move to new positions along the conveying line. You can also create and
store positions you know to be useful. For example, if you are interested in examining what happens
when a robot executes a weld on a part traveling on the conveyor, you can create a conveyor position
just before the position at which the robot executes the weld and run your simulation from that
point without the need to run it from the start.
• The Simulation Panel plays the conveyor's current position (including jogged positions)
when working in Line Simulation mode.
• Conveyor control points are ignored while driving the conveyor. If, for example, you
drive the conveyor past a control point that is set to change the orientation of a skid,
the skid remains in its initial orientation.
To drive a conveyor:
2. From the ribbon, choose Control tab → Conveyor group → Drive Conveyor . The Drive
Conveyor dialog box appears.
3. If you wish to change the Zero position (this position that acts as a point of reference for all other
positions) of the conveyor, click and then click the desired point on the conveyor or enter a
numerical value.
After specifying a new Zero position all position values are automatically updated so
no change actually occurs in the positions. For example, after changing the Zero
position from zero to 50, a position at 20 will now be defined at -30. Therefore,
changing the Zero position has no observable effect on the conveyor.
Lower Limit and Upper Limit respectively show the current lower and upper limits for the
conveyor's motion (with respect to the Zero position). These parameters are not relevant for
a closed-curve conveyor.
4. When set, Limit motion automatically limits conveyor driving according to the currently conveyed
parts/skids. The limits are displayed in Lower Limit and Upper Limit. In this case, parts/skids on
the conveyor always maintain the same distance from each other. This means that when the
leading part/skid reaches the end of the conveyor and is prevented from moving any further, the
following parts/skids also stop moving, to prevent stacking. By default this parameter is set, clear
Limit motion if you wish.
• Enter a value in the numerical field or use the arrows to update the value in the numerical field.
6. To configure the Position list, click Positions Editor and do any of the following:
• Create a new conveyor position - Click New. The new position is named Position1 by
default and appears in the Positions list. Double-click the name to edit it and give it a
meaningful name. The numerical value of the selected position is displayed in the Value
numerical field.
• Update a conveyor position - Select a position, move the part/skid to the desired place on
the conveyor, and click Update. The value of the position is displayed in the Value numerical
field and the Value slider is refreshed.
• Delete a conveyor position - Select a position and click Delete to remove it from the
Positions list.
• Jump to a conveyor position - Select a position and click Jump to cause the part/skid to
jump to the desired position. Alternatively, double-click the target position. If Limit motion is
set, conveyed parts/skids maintain their relative offset with respect to each other.
7. Optionally, click Settings to configure the Drive Conveyor display and behavior.
Configure any of the following:
• Column management - Check the columns you wish to display in the Drive Conveyor dialog
box and clear those you wish to hide. The Value column must always be displayed. Use
the and arrows to set the column order that suits you best.
• Drive controls - Set Step size to configure the distance jumped when modifying the
conveyorValue. Adjust the Slider sensitivity as desired. Higher Slider sensitivity values
cause faster, less precise slider control. lower values cause slower, more precise control.
• Attach compound parts to skids - When cleared, only parts detected by the skid are
attached to the skid. If, for example, a car has been created as a compound part and the
skid has detected the car chassis, the skid and the chassis move along the conveyor but
the car body remains in its place. When this parameter is set, the entire compound part
is attached and is moved by the conveyor.
8. If you are not satisfied with your changes, click Reset to undo the changes you made in the Drive
Conveyor dialog box since you launched it.
Activities
In the Conceptual conveyors and skids overview section, do the following activities:
• Creating a conveyor using a curve
Objectives
After you complete this topic, you should be able to:
• Define a conveyable part.
The Define Conveyable Part command enables you to select a part to be transported by a
normal conveyor. A normal conveyor can only transport parts defined as conveyable. When defining
conveyable parts, you must select the conveying frame.
To define conveyable parts:
1. Select a part appearance in the Graphic Viewer or Object Tree.
2. From the ribbon, choose Control tab→Conveyor group→Define Conveyable Part . The
Define Conveyable Part dialog box is displayed.
3. In the Conveying Frame box, enter the X-, Y- and Z-coordinates of the frame for conveying the
part. By default, the frame is set as the center of the bottom of the part.
4. Click OK. The part is now defined as a conveyable part. During simulation, a normal conveyor
can convey the part when the part is placed on the conveyor.
Activities
In the Working with a conveyor and conveyable parts section, do the following activities:
• Open the Ex5 study
Property projectors
Purpose
In this topic, you learn how to create and use property projectors.
Objectives
Business process
Sensors are an important part of event-based simulations. In this part of the training, you learn
about several different types of sensors.
• Mixed production stations / lines (all processes react different regarding the product to be
produced)
• Between this lesson and the next one, you discuss how to add properties to parts using Property
Projectors and read part properties using Property Sensors.
• Etc.
• Property Projectors
o Are stored inside line simulation studies as independent elements (not as 3D elements
under the system root folder).
• Property Sensors
o Are stored as new component resources (with 3D elements stored under the system root
folder).
Property list
• The Edit Part Simulation Property List enables you to define the part properties that
can be assigned by a Property Projector.
1. From the ribbon, choose Control tab→Sensor group→ Edit Part Simulation Property List .
2. Click Add.
In the Properties section of the Create Property Projector dialog box, the Available Properties list
displays the properties available for allocation to objects (those properties that you defined in the
Deactivate Sensor) and the Used Properties box displays the properties selected for allocation by
the property projector.
Property projector
The Create Property Projector command enables you to create a 3D projector element and
use them to allocate properties (defined in the Edit Part Simulation Property List command)
to parts during a simulation.
The Edit Property Projector command enables you edit existing property projectors to configure
its detection range, the properties that should be projected, and the parts to be detected.
To create a property projector:
3. The property projector is shown together with a ray that represents its range. The property
projector allocates properties to objects that cross its ray.
Activities
In the Property projectors section, do the following activities:
• Property lists and property projectors
Property sensors
Purpose
In this topic, you learn how to read part properties using Property Sensors.
Objectives
The Create Property Sensor command is used to create property sensors and use them to
detect properties on certain objects during a simulation. It configures a 3D sensor element, the data
type to be detected and its location.
The Edit Sensor command is used to configure the sensor’s name, the signal name and type to
be created for the sensor, its detection volume and range, and the property and parts to be detected.
To create a property sensor:
2. A 3D property sensor is added to the Graphic Viewer and the Create Property Sensor dialog
box appears.
4. The property sensor is shown together with several 3D rays that represent its detection zone.
The property sensor detects properties on objects that enter the zone.
Activities
Objectives
After you complete this topic, you should be able to:
• Have a few things to try in order to trouble shoot problems encountered.
Quick tips
General:
• You do not have to End Modeling to save changes to a component, unless you want to use
this prototype outside of this study.
Sensors:
• If the sensor is not working: verify it is active, and that it is “used”. For example, they must be
included in a Transition .
• When setting up transition conditions using sensors, typically you want to specify the rising edge
of the sensor (for example RE(light_sensor) ).
Skids:
• If you configure the Object Tree to show the Attachments column, you can see which conveyor
the skid is traveling.
• When a skid’s conveyingFrame gets far enough away from the conveyingSurface (for example
farther than the Conveying Tolerance), it stops moving with the conveyor.
Conveyors:
• When defining a conveyor, the Collision Tolerance should be entered before the Conveying
Tolerance; otherwise you get an error.
• When defining a conveyor, look at the yellow arrow down the center of the movingSurface. This
is the default forward direction of the conveyor. You want the skids to move around the track
clockwise. If yours is going counter clockwise, click Change Direction to switch the default
forward direction.
• When defining a conveyor if the Skid Conveyor check box is selected, the conveyor only moves
objects defined as a skid (which could be parts or resources). However, if it is deselected, the
conveyor only moves “conveyable parts”.
• If the conveyor is not working verify that the sensors are active, that the part was defined as
conveyable, and that the conveyor was not defined as a skid conveyor (if trying to move parts).
• The barcoder and barcode sensor must be used in order for them to be active. For example,
they must be included in a transition condition.
Summary
Subjects learned in this topic:
• The types of sensors in Process Simulate.
Purpose
To provide information on the creation and usage of logic blocks and smart components.
Objectives
Objectives
o Can export and import between studies (becomes a new object) Used for logic that is specific
to a study, but is called over and over within the study
o Can reuse between studies (same object referenced in both; or can model it to get a separate
object) Used for logic that is used over and over again in several studies (for example a robot
controller, gate, safety mat, etc.
This diagram shows the relationship between the PLC and a logic block.
• Each PLC output signal is an entry into a device or logic block and each feedback (in other words
an exit) from any device is an input signal into the PLC.
Choosing Create Logic Resource , from the Controls tab of the ribbon, opens the Resource Logic
Behavior Editor dialog box. It used to create a logic block.
• Exits — Typically, entries are connected to PLC input signals whose value is set by an expression
within the logic block.
• Parameters — constants can be referenced in expressions within the logic block with a value
set by an expression within the logic block.
The following types are possible for entries, exits, constants, and parameters:
• BOOL Boolean (1 bit) — values can be either 0 (false) or 1 (true).
• INT Integer (16 bit) — a whole 5 digit number from −32,768 to 32,767.
• DINT Double integer (32 bit) — a whole 10 digit number from −2,147,483,648 to 2,147,483,647.
• DWORD Double word (32 bit) — a whole 10 digit number from 0 to 4,294,967,295.
After defining the number and types of entry/exit signals it is also possible to give them meaningful
names.
The Abort delay and reset exit condition allows an early reset of a signal connected to an
exit (for example for an emergency stop).
When typing in the Value Expression box, you are prompted with various options on how
to finish typing. Choices are either logic operators, functions, entries, exits, parameters,
actions, or constants of the logic block. You slowly learn about how to use all of these in
the coming lessons. However, here are some of the standard operators:
• AND — Evaluates to true if both are true.
• XOR — Evaluates to true only if one is true and the other is false.
• < = > Less Than, Equals, or Greater Than — Evaluates to either true or false.
If logic exists in a resource, a check box is displayed for it in the LB Simulate column
in the Object Tree.
3. Set modeling scope to the resource, if you are not already modeling it.
4. In the command search box, type Delete Logic and select the Delete Logic from Resource
command.
6. Either End modeling the resource to save the changes to component prototype, or save the
study to save the changes in the study.
Objectives
After you complete this topic, you should be able to:
• Define a safety mat logic block.
Business process
Internal Logic
• If an operator is detected on the safety mat, then a mat fault is set
Exits
• Mat FAULT – should be connected to a signal that can be used to trigger devices in the study
to stop
Activities
In the Safety mat example section, do the following activities:
• Defining a safety mat (optional)
Purpose
In this topic, you learn how to perform mathematical equations in a logic block.
Objectives
Logic basics
Not all the relevant behavior can be simulated with a simple time delay. The need for more complex
modeling can be given with a simple counting behavior, for example upon some start signal and until
some target value is reached a motor should be operated and then stopped, the parts moved away
and start again. It is very likely that such a target value may by itself be a variable.
Therefore the Logic Resource Editor has a different user interface and options, allowing much more
complex modeling.
This activity does not reintroduce the basic workflow of logic blocks. Please refer to the relevant part
from the last activity.
Algebraic modeling
In order to deal with mathematics calculations, a different user interface is needed. This is
automatically invoked with a defining a parameter or an exit signal of a type different then BOOL (for
example INT, DINT, REAL).
The expression box is different and no time delay or reset option is available, which by the way,
wouldn’t make much sense.
Signal monitoring
The Signal Monitoring dialog box aids users in debugging logic expressions. Users can view signals
and their status or value in the context of their logic expressions. This makes it easier to understand
how a signal’s value or status impacts an entire expression, logic block or module behavior and now
users can debug modules, logic blocks, their logic expressions, or any user-defined expressions.
Process Simulate automatically breaks any expression in the "watch dialog box" to its sub
components, providing users with better visibility and understanding of debugged expressions.
It is used in these scenarios, to evaluate logical expressions during simulation:
• All the logical expressions of one or many modules.
1. Select the desired modules in the Modules viewer.
1. From the Modules viewer, select the desired module and click Edit Module .
2. Type in one or many free hand expressions in the top pane of the Signal Monitoring dialog
box.
After the Signal Monitoring dialog box is opened, you can click Apply styles to color the signals
green or red, according to their value. During simulation, click Connect To Simulation to update
the values shown.
Activities
In the Logic block algebraic behavior section, do the following activities:
• Creating a simple counter
Purpose
In this topic, you learn how to do more mathematical equations in a logic block.
Objectives
o According to Wikipedia, a rising edge is the transition of a digital signal from low to high. It is
also named positive edge. When a circuit is raising edge triggered, it becomes active when
the clock signal goes from low to high, and ignores the high to low transition.
o According to Wikipedia, a falling edge is the high to low transition. It's also known as the
negative edge. When a circuit is falling edge triggered, it becomes active when the clock
signal goes from high to low, and ignores the low to high transition.
It should be noted that the terms front edge or leading edge, back edge or trailing
edge describe the related position of edges in a clock cycle. A leading edge can
be a falling edge.
Now enhance your simulation to keep track of the total number of the parts produced since you
last clicked the GO button during the simulation:
You shall therefore identify each time, when the B12_z1_GO key changes from TRUE to FALSE
. This is achieved with the falling edge (FE) function, available for parameters and exits.
The FE (falling edge) function of (B12_z1_GO) supplies a pulse each time the status changes from
TRUE to FALSE . In order to make the logic blocks more easily reusable, it is not recommended
to use a specific entry name (like B12_z1_GO) but a more generic one (for example New).
You need a Boolean entry (where the GO signal is connected) and an INTEGER for the amount in
the actual production batch and for exit you need an integer indicating the total summation.
The main equation is then given by:
Batch_sum = Batch_sum + (Produced * FE (New)) where FE means use falling edge (FE)
detection from the functions list.
Activities
In the Rising edge and falling edge functions section, do the following activities:
• Using falling edge in a logic block
Objectives
• RS ( set, reset ) — The reset set function behaves like the SR function, except that it is FALSE
when both set and reset are TRUE .
• RANDOM (min, max) — The random number function requires two integer input signal, min and
max, and returns a random number between Min and Max. RANDOM triggers a response at the
instant when one of the input signal changes from FALSE to TRUE.
• ABS (num) — The absolute value function requires one input parameter, num, which must be a
number. ABS triggers a response at the instant when the input signal changes from FALSE to
TRUE and returns the absolute value of num.
Boolean operations
Endianness refers to the sequential order in which bytes are arranged into larger
numerical values when stored in memory or when transmitted over digital links.
Counter
Material Flow
• DestroyAppearance (value:integer) — Destroys all the appearances within the range specified
by value to the logic block's self frame
Math
• IntModulo (value1:int, value2:int) — this math function computes the remainder of value1
divided by value2.
• RealModulo (value1:real, value2:real) — this math function computes the remainder of value1
divided by value2.
• RoundDown (value:real) — Returns the greatest integer that is less than or equal to the value.
• RoundUp (value:real) — Returns the least integer that is greater than or equal to the value.
Timer
• GetSimulationTime ()
Trigonometry
• ACOS (value:real) — Arc cosine
• Do not need to add quotation marks around each parameter name unless the parameter name
includes spaces or commas
• A red line is placed below invalid sections of logic expressions to allow you to better understand
the areas where expressions are not valid.
For example:
• SR ( RE(X), FE(Y) )
• MAX(MAX(A,B),C) )
Best practices
Transition Conditions versus Modules versus Logic Blocks:
In the previous few lessons you introduced three important tools in Process Simulate: Transition
Conditions, Modules, and Logic Blocks.
Compare and contrast them:
• Transition conditions
o Exists only on a specific transition
o Used for logic that is specific to an operation such as for material flow
• Modules
o Exists only in a study (but can be copied from one study to another)
o Used for logic that is specific to a study, but is called over and over within the study
o Used for logic that is used over and over again in several studies (for example a robot
controller, gate, safety mat, etc.
Activities
In the More logic block functions (press example) section, do the following activities:
• Test the functions
In this topic, you learn ow to use mixed Boolean and algebraic expressions to control a CNC. This
puts several of the previous concepts together into one big example. you create a simulation
containing a robot, a CNC machine, and a CNC controller.
Objectives
An example:
1. A_int = 10; B_int = 3; const_17 = 17
Temp = (A_int > B_int) * const_17
Temp = 17
Temp = 0
Activities
In the CNC controller logic block example section, do the following activities:
• Using time delays in logic blocks
Smart components
Purpose
In this topic, you learn how to create and use smart components.
Objectives
• Add LB to a Resource — to create a Logic Block for an existing resource (except conveyors,
skids, and sensors), possessing logic, 3D representation, and kinematic behavior.
• Create LB Pose Action and Sensors (also known as Automatic Pose Action/Sensor
Creation) — to select device poses (only kinematic objects that possess joints and poses) for
which the system then creates pose actions and sensors, together with all the required entries
and exits.
• Copy LB Logic — used to import logic from a resource with logic to a resource without
logic. You can use the command to quickly model resources with similar kinematics by copying
logic from a resource and editing the target
5. Edit the logic block and add the desired logic and actions.
Modeling must be enabled for the resource before performing this command. After creating the logic
block and attaching it to the resource, the command opens the Resource Logic Behavior Editor and
enables you to edit the new logic and kinematics behavior.
The Create LB Pose Action and Sensors (also known as Automatic Pose Action/Sensor
Creation) command enables you to select device poses for which the system then creates pose
actions and sensors, together with all the required entries and exits. You can select poses of more
than one device if those devices share the same poses. This command works only on kinematic
objects that possess joints and poses.
One can save the time for doing the many steps regarding the creation of a Resource logic block
with Pose Actions, Joint Value Sensors, Entries, Exits and connected signals by using Create
LB Pose Actions and Sensors .
It automatically creates a logic block for a device with actions and sensors for every selected pose.
Also, the Entries and Exits can be created and connected to new signals (if the Create and connect
signals option is selected). The resulting logic block has everything inside automatically.
The Copy LB Logic command enables you to import logic from a resource with logic to a
resource without logic. You can use the command to quickly model resources with similar kinematics
by copying logic from a resource and editing the target.
Light stacks are common in the manufacturing area. Once defined, it could be copied
and reused as necessary.
Objectives
After you complete this topic, you should be able to:
• Create geometry for a reusable light stack.
Business process
Activities
In the Light stack example (optional) section, do the following activities:
Purpose
In this topic, you learn how to import signals from an Excel spreadsheet and connect them to a
logic block.
Objectives
• Import signals from an Excel spreadsheet and connect them to a logic block.
Spreadsheet format
When performing connection mapping in a spreadsheet, you could either export the signals from
eCAD system, or just create an Excel spreadsheet in this format as a way to quickly create and
connect the required signals.
For the Excel file format, you must organize the file in these columns:
• ResourceName — The name of the logic block in Process Simulate. For example, enter
MyLogicBlock.
• CategoryNameProvider — This column is for future use. For example, you could enter Siemens.
• PinName — The name of the entry or exit on the logic block. For example, enter Entry1.
• SignalWireName — The name of the signal, as shown in the Signal Viewer. For example,
enter mySignal.
• SignalType — The type of the signal can be either I for input ; Q for output. By default, if no
SignalType is specified (either the column is missing or contains an empty value), connecting
the signal to logic block Entry creates an output signal and connecting to a logic block Exit
creates an input signal.
• External Connection — This optional column is the name of the external connection to which
the signal is wired.
eCAD applications do not generate column headings, you must edit the file yourself to
insert these. Use the exact column names for the command to succeed. If necessary, add
the CategoryNameProvider column header and leave the column empty. If your eCAD
application generates a file with a different order of columns, this is acceptable.
For each line in the file, the command performs the following:
• Search for the logic block specified in the ResourceName column.
• If the signal does not exist, the command creates the signal.
• Connect the signal to the entry or exit specified in the PinName column.
There are three example signal connection mapping import files in the
.\sysroot\Import-Exports\Signals folder.
• RUN_BAR.xlsx
• R2000IA_CNTRL.xlsx
• PROC_REQ_CONT.xlsx
On import, the system creates any referenced signals (SignalWireName) that do not exist. Then
connects thet signals to the referenced entry/exists (PinName) of the referenced logic block
(Resourcename).
For the import to be successful, the referenced logic block and entry/exits must already
exist.
When Connection Mapping has finished creating signals and connections, it generates a report
and opens it in Notepad. The following is an example of a connection mapping report:
• If more than one entry or exit has the same name, connection mapping creates signals for
only the first appearance and notes:
Duplicated entry/exit detected <resource _name_entry_name> in the report.
• If more than one entry or exit has the same name and if they have different type definitions (for
example, one is defined as BOOL and another as WORD),connection mapping notes:
Impossible to create/connect signals to <resource _name> - inconsistent definition
Objectives
After you complete this topic, you should be able to:
• Define a “default” conveyor.
Conveyor basics
Our conveyor concept is built on reusable elements, which like LEGO, can be combined to form any
kind of logistics (for example simple part conveyors, skid conveyors, OHR etc.)
Here are some of the connections you setup for the conveyor:
Entries
• part_present – should be connected to the part sensor at the beginning of the conveyor
• part_at_index – should be connected to the part sensor at the middle of the conveyor
• part_at_end – should be connected to the part sensor at the end of the conveyor
• robot_clear – should be connected to a robot signal from the robot loading the conveyor and
triggered when the robot reaches a specific location in its robotic path.
Internal Logic
• If a part is present, and not part at the end of the conveyor, and the robot is clear, then the
conveyor is ready
• If the conveyor is ready, then start moving until the conveyor is told to stop.
• Stop the conveyor as soon as a part is detected at the part at index location
• Reset the robot clear robot signal as soon as the part is at the middle of the conveyor
Exits
• Unload – Used to advance to the next stop in the part flow, which either could be a robot
unloading the part from the conveyor, or the part being destroyed at the end of its simulation life.
Actions
• Conveyor start action
Activities
In the Custom conveyor example (optional) section, do the following activities:
• Defining a “default” conveyor
Objectives
After you complete this topic, you should be able to:
• Have a few things to try in order to trouble shoot problems encountered.
Quick tips
Object Tree techniques:
• In the Object Tree, click Customize Columns to add the LB Simulate, Input Signals and
Output Signals columns.
Simulation Panel:
• Add signals from within a logic block to the Simulation Panel.
• If standards at your company exist for logic block entries and exits match what’s on the real
PLC it is easy to connect to it later.
• Simulation time interval relates, but does not determine how often a logic block is run:
o A logic block is run every 0.1 seconds.
o Therefore, it is best to develop logic blocks with the simulation time interval set to 0.1, so
that they match.
• Modules
o Exists only in a study
o Used for logic that is specific to a study, but is called over and over within the study
o Used for logic that is used over and over again in several studies (for example a robot
controller, gate, safety mat, etc.
Summary
Subjects learned in this chapter:
• How to create logic blocks
Purpose
To provide a putting it all together for the topics covered in the first part of the course, as well as
adding a activities for few other features.
Objectives
Objectives
Background information
Some suggestions for production (after this course):
• Unitize everything (put units and sensors together in one compound resource for the fixture)
• Make sensor geometry a separate component (put on frame for where it should go, or align by 3
points to get it into position)
Objectives
After you complete this topic, you should be able to:
• Set your working folder.
Business process
Activities
In the Creating line simulation studies section, do the following activities:
• Opening and examining a simple event-based study
Purpose
Objectives
Business process
Sensors are an important part of event-based simulations. In this part of the training, you learn
about several different types of sensors.
Activities
In the Automatic smart component creation section, do the following activities:
• Setup the clamps and pins smart component
In this topic, you learn how to take some of what you did as a transition condition and convert it to a
module. You also make your logic more sophisticated.
Objectives
Business process
Module basics
In this topic you create and use modules to clean up how you are setting up your logic. Modules
are created in the Modules Viewer.
The Modules Viewer enables you to create and view the hierarchy of modules in the study .
It contains:
• The Modules Viewer toolbar enables you to manage the contents of the Modules Viewer.
• The Modules Viewer Inventory area displays all the modules that are stored in the study . From
this area, modules can be dragged and dropped into the Modules Viewer Hierarchy area, as
required.
• The Modules Viewer Hierarchy area displays the configurable hierarchy of modules for the
study . The order of modules in the hierarchy determines the behavior of the study .
The Modules Viewer enables you to edit and evaluate signal expressions. It can be considered to act
as an “internal PLC”. In Modules Viewer, you can define a signal as a result of a logical expression
comprising a number of other signals and operators. The expressions are evaluated each time a scan
is performed. You can edit the signals assigned to a selected module by defining new expressions for
signals, or by modifying the expressions defined for a selected signal.
To open it:
By default it is collapsed against the right side of the Graphic Viewer. If it is not:
• From the ribbon, choose View tab→Screen Layout group→Viewers →Modules Viewer.
• Export Module(s) — Enables you to save modules from the current study to an external file.
• Import Module(s) — Enables you to read modules from an external file into the current study.
• Send Module to the Signal Monitor — Enables you to display the selected modules in the
Signal Monitor dialog box. This dialog box can be used to see the real time values of the signals,
which can be helpful for debugging problems.
• Disconnect Call — Enables you to disconnect a module from the Modules Viewer
Hierarchy section.
• Disconnect Call Tree — Enables you to disconnect a hierarchy of modules from the
Modules Viewer Hierarchy section.
• Move Call Up — Enables you to raise the position of a module in the Modules Viewer
Hierarchy section.
• Move Call Down — Enables you to lower the position of a module in the Modules Viewer
Hierarchy section.
• Create “IF” Statement — Enables you to make a conditional call to a module as a child of
the selected object in the Modules Viewer Hierarchy section.
• Edit “IF” Statement — Enables you to edit the conditions of the selected “IF” statement for
calling a module. This condition controls when the child object of the “IF” statement is executed.
3. Enter the Expression by typing and Selecting from the hints that appear to auto fill the box.
The Result Signal box do not auto fill like the Expression box. Also, the Result
Signal box is case sensitive.
5. Click OK.
7. Click OK.
3. Select the IF in the Modules Hierarchy and click Edit "IF" Statement
This is the condition that, when true, causes the module inside the IIF to be executed,
Best practices:
• Do not add any logic directly under Main. Instead create a module and nest everything else
under it. That helps avoid problems if you merge this study with others later.
• If you intend on merging several stations together later, prefix the name of the module with
the station name.
• From the Modules Viewer, select the desired modules and click Export Modules . Export
an XML file of the modules.
• With the desired study loaded, click Import Modules in the Modules Viewer. Select an XML
file of modules to import.
Signals imported from a file which already exist in the target study are automatically connected,
otherwise they are created automatically. Therefore it is recommended to ensure that the target study
contains all the relevant resources and signals in use, before importing the file. This saves the need
to connect or map the signals manually. The import is not executed for signals contained in the file
that exist in the target study if the signal types do not match. The current implementation of this
functionality does not export module hierarchy.
Activities
In the Creating and using modules section, do the following activities:
• Creating a new module
Purpose
In this topic, you learn how to create proximity sensors on the clamps and conveyor.
Objectives
Business process
Sensors are an important part of event-based simulations. In this part of the training, you learn
about several different types of sensors.
Activities
In the Create proximity sensor section, do the following activities:
• Create part proximity sensors on the fixture and conveyor
Purpose
Objectives
Business process
Unlike loading studies in Standard Mode , when they are loaded in Line Simulation Mode :
no part data is loaded with it. There are two ways to see the parts related to operations:
o Place it in the desired position (The new initial position of the appearance is stored).
• The Generate Appearances command enables manual creation of the part appearances in
the Graphic Viewer and the Object Tree viewer for the selected operation. This enables the user
to view the relevant parts, position them and perform other related tasks.
In the Operation Tree, right-click the desired operation and choose Generate Appearances .
• Part is assigned to a child operation (when the parent compound operation is selected for
Generate Appearances .
• An event that is on the operation refers to the part (Blank, Display, Attach, Detach, Add to
Group, Remove from Group).
• An OLP Command on a location operation refers to the part (Blank, Display, Attach, Detach).
An operation generates one part appearance per related instance, even if there are multiple relations
between the part instance and the operation. For example, the Op1 weld operation has all of the
following relations to part instances:
• Part1 is assigned to the operation.
When Op1 is selected and Generate Appearances is executed, only one appearance of Part1
and one of Part2 is generated.
The part appearance location is saved with the related operation's data. Changes in appearances
that are applied in a line simulation study have no effect on the instance location.
operations running in parallel (hence simultaneously). More than two operations may be executed
simultaneously.
In order to change the behavior from simultaneous to alternative, the common starting transition must
be edited: Double-click the Transition to open the Transition Editor dialog box.
Change the Branch Type in the list of values to Alternative. The link type changes accordingly:
When the Common Conditions for a selected operation have been met, Process Simulate advances
to the operations that have been defined to follow the selected operation. For each of the operations
defined to follow the selected operation, Differential Conditions can be defined. In order for
each operation to continue, its Differential Conditions must be met, in addition to the Common
Conditions defined for its predecessor.
To define or edit differential conditions:
1. In the Transition Editor dialog box, select the operation to which the program continues as shown
with the arrow:
2. Edit the condition by clicking Edit Condition. Now proceed to setting up the Common
Conditions.
Notes:
• Normally there is no need to define a “decision operation” which evaluates the “IF” condition.
• If the “IF” is the first step to be evaluated in the sequence (or inside a compound operation) then
a dummy “Non-Simulation operation must be inserted to allow the definition of the differential
conditions.
o In the Sequence Editor, select the parent compound operation.
o In the New Non-Sim Operation dialog box, type Switch for the Name.
o Click OK.
Activities
In the Working with part appearances (again) section, do the following activities:
• Generating part appearances
In this topic, you learn how to create non-sim operations for logic.
Objectives
The New Non-Sim Operation command enables you to create an operation that takes time,
but does not simulate anything. Like any other operation, a non-sim operation can be used as a
repository for logic. This logic is used to determine when the successor operation is executed.
To create an non-simulated operation:
1. In the Sequence Editor or Object Tree, select the parent operation.
2. From the ribbon, choose Operation tab→Create Operation group→New Operation →New
Activities
In the New non-sim operations for logic section, do the following activities:
• Creating the initial operation
Summary
Subjects learned in this topic:
• Beginning of the putting it all together
Purpose
Objectives
• How to connect and synchronize robot signals for two robots in an interference zone.
Objectives
Process Simulate offers this functionality, which is available by selecting the robot (in the Graphic
Viewer or in the Resources folder of the Object Tree) and then choosing Robot Signals
from the Control tab of the ribbon.
The following diagram illustrates the basic relationship between robot (OLP) signals and PLC signals:
Choosing the Robot Signals command opens the Robot Signals dialog box for the selected
robot. This dialog box maps the signal on the robot with the signal on the PLC. The I/O shown
here from the perspective of the PLC. For example: robots receive (wait for) PLC output signals
and send PLC input signals.
• New Input Signal — creates a new PLC input signal (and robot output signal)
• New Output Signal — creates a new PLC output signal (and robot input signal).
• Create Default Signals — Inserts 4 standard output signals and 5 standard input signals
that are commonly used (for example startProgram, emergencyStop, etc.)
• Import Signals — Replaces the current signals with those imported from a Microsoft
Excel spreadsheet.
You learn more about these abilities in this topic and the next topic.
One way to view the OLP commands of a location is the select it and choose Teach
Another way is to view the path in the Path Editor, then double-click the OLP Commands
box of the desired location.
• To move the selected commands up/down in the list: Press the Up or Down arrow keys or click
Move Selected commands Up or Move Selected commands Down .
• To remove the select command, press the Delete key or right-click it and choose Delete .
• To cut the select command, press the Ctrl+X keys or right-click it and choose Cut .
• To copy the select command, press the Ctrl+C keys or right-click it and choose Copy .
• To paste a command, press the Ctrl+P keys or right-click it and choose Paste .
If you do not select a line before pasting, the commands are added to the end of
the list in the OLP Commands section.
Standard commands not mentioned here are described later in this course.
• File submenu:
o # OpenFile — Opens a file for editing. The Mode setting enables you to Append or
Overwrite file content. Also, set a Handle to be used in the next WriteLine and CloseFile
commands and a Name for the path to the file to be opened.
o # CloseFile — Closes an open file. Set the Handle of the file that was opened with the
OpenFile command.
o # WriteLine — Enables you to write a line of text in an open file. Set the Handle of the file
that was opened with the OpenFile command and write the text in the Expression box. Use
double quotes to print the value of a variable or a signal, for example, type "E1" to write the
value of signal E1.
• Graphics submenu:
o # TCP Tracker — Enables you to start, pause, resume, or stop the TCP Tracker for the
robot assigned to the current operation during simulation.
• Paint submenu:
o # ChangeBrush — Marks the location where the painting style should be changed
(for example paint fan 1, 2, 3, etc.)
• ToolHanding submenu:
o # Connect — (add an external axis to the robot during simulation) connect the specified joint
from the specified device as an external axis of the robot. For example, when simulating a
grinding robot with a tool changer with several sized grinding tools.
o # Disconnect — (remove an external axis of the robot during simulation) disconnect all
external axis joints of the specified device from the robot. For example, when simulating a
grinding robot with a tool changer with several sized grinding tools.
o # DriveDevice — Moves the selected device to the selected target pose. (Review from
the TR42115 course)
o # GunToState — Instructions for moving the gun to its specified pose, as specified in the
Gun State parameter. TR45115 Process Simulate Standalone Basic Robotic Simulation and
TR45215 Process Simulate Standalone Intermediate Robotics (CEE) courses
In the case of a servo gun, this moves the servo gun to the position specified by
the external axis depart value. If no depart value is defined, the servo gun moves
using the Gun State parameter.
o # Mount — Mount a new tool on the robot. For example, when simulating a grinding
robot with a tool changer with several sized grinding tools.
o # UnMount — Unmount the existing tool on the robot. For example, when simulating a
grinding robot with a tool changer with several sized grinding tools.
o # WaitDevice — The robot waits until the selected device reaches the selected target pose.
(Review from the TR42115 course). (Review from the TR45115 course).
o # Drive Device Joints — Move the selected joint(s) of the selected kinematic device to
the specified joint value(s).
There are many ways to do this. Here you put the signals directly on the locations of the
robotic path and connect them using a logic block. Later in this section of the course
you put the signals in a macro and then put the macro references on the locations in
the robotic path. Another example is at the end of the appendix of this course which
uses signals connected using a module.
Objectives
After you complete this lesson, you should be able to:
• Setup a robotic interference zone using robotic signals and a logic block.
• exitZone1.
On the location where the robot is about to enter a zone, put the following:
• The robot waits until checkZone1 is false.
On the location where the robot has left a zone, put the following:
• enterZone1 is set to a value of false.
In this lesson you use a simple logic block that has already been created. For those that
are curious, the steps to create it can be found in the appendix of this course.
Entries
• RBT1_ENT_ZONE — should be connected to a robot signal describing whether the first robot is
entering the first interference zone
• RBT1_EXT_ZONE — should be connected to a robot signal describing whether the first robot
has exited the first interference zone
Internal Logic
• A robot is currently in the first interference zone, if robot 1 has entered the zone, but has not
left it yet.
Recall the SR function has two parameters: When the first one becomes true, it
makes the function result true. When the second becomes true, it makes the SR
function result false.
Exits
• # SendSignal — In line simulation mode, the robot sends a robot signal to the PLC (PLC input). .
Both boolean and analog signals are supported. Any integer value can be assigned to
a signal. In event-based simulations the Destination is always left blank.
• # SetSignal — Enables you to compose an expression for the value of the selected robot output
signal.
• # WaitSignal — In line simulation mode, the robot waits for a robot signal from the PLC (PLC
output).
• # WaitTime — The robot waits the specified number of seconds before the next command is
performed.
Observe the following formatting rules when creating an Excel spreadsheet for signal import/export:
• The column headers must be exactly as shown in this example. If any are different, the system
will return an error.
• The columns must be in the exact order shown in this example. No information may be added
before, between, or after these columns.
• If any of the following information is missing, the system will return an error: RobotInternalName,
I_Q, or TYPE.
• The following parameters are optional: Prefix, InterfaceName, Address, and Comment.
The system converts between Excel signal properties and Process Simulate properties as follows:
• If both InterfaceName and PREFIX are missing, PLC SignalName is formatted as <current
robot instance name> + RobotInternalName.
• If Address is missing, the signal is imported and its PLC Address remains undefined.
The Excel file does not contain a dedicated a Signal Function column. Instead, the system
exports Signal Function information as comments in the Excel file. Therefore, if you wish
to prevent losing this information after exporting it from one project and importing it into
another, use the comments in the Excel file as a guide to edit the Robot Signals dialog.
• Interface
4. From the Robot Signals dialog box, click Import Signals , select the Excel file and click
Open.
Activities
In the Setup a basic robotic zone section, do the following activities:
• Setting up a basic robotic zone
In this lesson, you learn how to set the macro folder, and create and use robot macros.
Objectives
In the Motion tab of Options dialog box (File→Options ), you can change the location
of the Robot Macro files folder (the default is .\sysroot\Macros). If this folder is changed,
you can either restart Process Simulate for this change to take effect or you can right-click a
robot, choose Robot Signals and Modules→Robot Modules , and click Reload Files.
In Robot Macro files folder, you place your robotic macros file. One .macros file can exist per robot
controller (for example Abb-Rapid, Default, Fanuc-Rj, Kawasaki-As, Kuka-Krc, Yaskawa-Inform,
etc.).
• OLP_Command
• OLP_Command
• OLP_Command
• …
• MACRO macro_name
• OLP_Command
• OLP_Command
• OLP_Command
• …
Where macro_name is the name of a specific macro (in the specific controller syntax), and each
OLP_Command should be an OLP_Command in the syntax of the specific controller.
For example, a macro file for the Default controller may look like this:
• Macro ENTER_ZONE_1
• # WaitSignal checkZone1 0
• # Send enterZone1 1
• # Send exitZone1 0
• Macro ENTER_ZONE_2
• # WaitSignal checkZone2 0
• # Send enterZone2 1
• # Send exitZone2 0
• Macro EXIT_ZONE_1
• # Send enterZone1 0
• # Send exitZone1 1
• Macro EXIT_ZONE_2
• # Send enterZone2 0
• # Send exitZone2 1
While simulating a macro command, the specific controller simulates each line of it as if they were
directly in the OLP command list shown in the Teach-Pendant. In case one of the OLP commands
in the macro is not recognized by the controller, or it fails to execute properly – the behavior, is the
same as a regular OLP command: according to the specific controller logic, it ignores the command,
shows error message, stops the simulation, etc.
Activities
In the Basic robot macros section, do the following activities:
• Using basic robot macros
Objectives
After you complete this topic, you should be able to:
• Create and use robot status signals.
Business process
Robot programs
A Process Simulate program is used when switching, during simulation, between several
robotic operations using logic, or when downloading.
A real robot contains several tasks to be executed. Normally it is made up of motion tasks and logic
instructions organized in a robot program. Almost all robot programs have the same basic skeleton:
To guarantee correct behavior, all robot vendors enforce a predefined sequence of signal exchange:
• To prevent the robot from starting to move in an uncontrolled way.
The Siemens PLM Software default behavior doesn’t simulate all of the signals used by a real robot.
Those significant signals for the correct process behavior are included in the default behavior.
Specific behavior may be implemented in the relevant ESRC controller, which has to be purchased
separately and has its own documentation.
In the Robot Signalsdialog box, clicking Create Default Signals creates several commonly
used status signals.
Status Signals:
Status signals are continuously evaluated by the robot controller (either Input for example emergency
stop or output for example pose signal). They are a way of simulating behavior that can be
downloaded. Using status signals, paths can be simulated like robot programs using path numbers
inside the program.
Default (PLC) output signals:
• startProgram (signal function = Starting Program)
There are two ways to stop the robot anytime during simulation:
• The emergencyStop robot signal is checked all the time and not only when a robot reaches a
specific location. In other words: on each update of a simulation cycle it is checked. If it is
set to TRUE , the robot stops immediately.
• Process Simulate supports one programPause robot output signal per robot. This is a soft
emergency stop signal that pauses the robot when the signal turns TRUE . When the signal
subsequently turns False , the robot continues from the position in which it stopped (both
spatially and from the same point in the program). This signal may be used, for example, if a
light sensor detected a worker entering a zone shared by humans and robots. When the worker
enters the zone, the robot pauses and when the worker exits the zone, the robot resumes from
exactly the point at which it stopped.
programPause is different from the emergencyStop signal, where you must return
the robot to its HOME position before restarting the program simulation.
• Automatically triggered
Just define a robot pose and the system turns it into a simulation relevant signal.
As explained in the introduction, a robot executes its paths in the context of a program. The path
has normally a path number (in the status signal this path number is called programNumber — an
expression which is often used by OLP programmers.)
• Open in Program Editor — Opens the selected program in the Path Editor. This is the
only way to add paths to a program.
• Download program — Downloads the selected program, using the assigned robot controller,
to a program file for running on a real robot. Requires various setup steps be performed first. See
the TR45315 Process Simulate Standalone Advanced Robotics course for details.
• Upload program — Uploads a program file to the selected program. Requires various
setup steps be performed first. See the TR45315 Process Simulate Standalone Advanced
Robotics course for details.
o When all pre-requirements are fulfilled, then the robot is ready to start its action, which is
triggered by the rising edge of the startProgram robot signal.
o At the end of the path the robot sets the ProgramEnded signal.
A conveyor is associated with the part detection (ConveyorPosition) signal. This robot signal tracks
and dynamically updates the position of the part as it progresses along the conveyor. When the
robot start (ConveyorTrigger) signal is high, the robot tracks the object on the defined conveyor.
You can define up to four signal pairs.
• ConveyorTrigger_1
• ConveyorPosition_2
• ConveyorTrigger_2
• ConveyorPosition_3
• ConveyorTrigger_3
• ConveyorPosition_4
• ConveyorTrigger_4
Activities
In the Default signals and robot programs section, do the following activities:
• Testing out the simulation
In this lesson, you learn how to setup a main program that calls the paths instead of calling the
paths by path number.
Objectives
• Setup a main program that calls the paths instead of calling the paths by path number.
Do I do this
• # Grip — moves the gripper to the specified pose and attaches the part to it. This OLP command
is automatically added to grip locations in Pick and Place Operations and is preferable to the
Attach command for part handling.
• # Release — moves the gripper to the specified pose and detaches the part from it. This OLP
command is automatically added to release locations in Pick and Place Operations and is
preferable to the Detach command for part handling.
• # CallPath — in the middle of executing a path (for example pa1), another path (for example
pa2) can be executed. Once pa2 is finished, it picks up where it left off in pa1.
OLP commands can be added to a path or location using the Teach Pendant or Path Editor.
Activities
In the Calling Paths from Main Programs section, do the following activities:
• Using CallPath and Main Programs
Objectives
After you complete this lesson, you should be able to:
• Enter free text OLP commands.
The information referenced here is for the default controller. Each robot controller supports
these conditions and may support additional options as well. For example the Fanuc
controller Process Simulate also supports Jump to label abilities. More on the controller
specific options is covered in the advanced robotics course (TR45315).
Basic syntax
The following basic syntax is supported in the condition commands:
• Logic operators: AND, OR, NOT (case sensitive)
• Parentheses
• False
• Arithmetic operators: +, - , *, /
false, the #Elseif commands are executed, otherwise it executes the #Else commands. If you do
not need it, you can also omit the #Else and #Elseif commands.
Most controllers support the IF statement natively, but each controller has its own syntax
for it that is described later in this training.
• # If <condition> Then
• # Else
• # Endif
• For example:
o # If (a + b) > c Then
o # callPath pa1
o # Elsif a OR b Then
o # callPath pa2
o # Else
o # callPath pa3
o # Endif
Switch syntax
The #Switch command enables you to make easier and clearer choices when presented with several
possibilities. This way you do not have to use lengthy if-then-elseif chains.
• # Switch <expression>
• # Default
• # Endswitch
• For example:
o # Switch (a+b)
o # Case 1
o # callPath pa1
o # Case 2, 3
o # callPath pa2
o # Default
o # callPath pa3
o # Endswitch
The #For loop passes over a range between a beginning and an end value using the specified step
size. The loop variable has to be of data type integer.
• # For <var> From <start> To <end> Step <step> Do
• # Endfor
• For example:
o # For j From 1 To 10 Step 2 Do
o # callPath pa1
o # callPath pa2
o # Endfor
• # While <expression> Do
• # Endwhile
• For example:
o # While a < 100 Do
o # callPath pa1
o # Endwhile
1. Choose File→Options .
4. Click OK.
Activities
In the Using robot program conditions section, do the following activities:
• Entering basic OLP commands as free text
Objectives
After you complete this lesson, you should be able to:
• Setup robot path segment communication.
o Trigger all or some of the clamps to open when the robot reaches a specific location.
o Stop the clamps from opening while the robot is between specific locations.
o After gripping a part and clear of the tool, check if the part the robot was supposed to have
picked up is actually in its gripper.
If you have a suction cup gripper, the PLC may tell the robot to try to grip the part
again. Or the PLC could halt execution of the robot program, depending on how
the logic is designed.
#SendSignal Segment7 1
The usage and creation of custom robot specific commands is discussed in the
advanced robotics training.
• Wait before entering the new segment by setting the related segment signal to TRUE and waiting
until the request to continue signal is TRUE. This is done when you need to robot to wait until
the PLC is ready for it to continue. This could be done in several ways. For example, you could
one of the following:
o By directly entering the default controller or robot specific command:
#SendSignal Segment8 1
#WaitSignal RequestContinue 1
The usage and creation of custom robot specific commands is discussed in the
advanced robotics training.
Activities
In the Setup robot path segment communication section, do the following activities:
• Setup robot path segment communication
In this topic, you learn how to open and view the signal graph in the Robot Viewer.
Objectives
Robot Viewer
• Joint Status — It shows the current value for each joint of the selected robot (including external
joints). Alternatively, you can display the current joint value as a percentage of the joint range.
See TR45315 Process Simulate Standalone Basic Robotic Simulation for more information
• Digital Signals — It displays the values of the selected signals against time during a simulation
(as TRUE or FALSE ).
• Analog Signals — It displays the values of the selected signals against time during a simulation
(for example 1, 2, 3, etc.).
• TCPF Speed Monitor — Displays a graph of the speed of the robot TCPF. In the Legend
section, you can set the color of the trace. The Statistics section displays the minimum and
maximum speeds of the robot TCPF. See TR45315 Process Simulate Standalone Advanced
Robotics for more information.
• Joint Speed and Acceleration — Displays graphs of joint speed and acceleration. See for
more information.
• Power Consumption — The graph above shows the current Power Consumption of a robot
during simulation in units of kW (kilowatts). See TR45315 Process Simulate Standalone
Advanced Robotics for more information.
Basic Usage:
• In the Robot Viewer, select the down arrow to the right of the Panels button and deselect
everything except for the desired panel.
Activities
In the Signal graphs in the Robot Viewer section, do the following activities:
• Using the Robot Viewer in event-based studies
Objectives
After you complete this topic, you should be able to:
• Create several different Microsoft Excel reports.
• The Export to Excel command (on the Signal Viewer) enables you to export the contents of
the Signals Viewer to an Microsoft Excel spreadsheet.
• The Export to Excel (not on the ribbon) and File→Import Export →Export All Viewers
to Excel commands are used to export the contents of the Path Editor, Sequence Editor,
and Modules Viewer to tabs of an Microsoft Excel spreadsheet.
• The Cross-reference query button (located in the Signal Viewer) enables you to export
selected signals in the Signal Viewer into an Microsoft Excel spreadsheet that cross-references
those signals.
If the Microsoft Excel application is not installed on your computer, an error message
is generated.
o The spreadsheet contains the following tables: Transitions, Modules, and Logic
Behaviors, each of which references the selected signals.
• The Export LB(s) to Excel command, located on the Control tab off the ribbon, enables
viewing the contents of a logic block in an easy-to-read Microsoft Excel spreadsheet.
1. In the Object Tree, select the resource whose logic behavior you wish to export.
• The Export to Excel command is not located in the ribbon. Add it to the Quick access toolbar
using Customize Quick Access Toolbar .
• Select the Path Editor, the Sequence Editor, or the Modules Viewer.
Optionally, Cycle Time Report Settings can be used to configure which timers
participate in the cycle time report and to define priorities for the internal timers.
You can choose to display SendSignal and WaitSignal commands in the report. This
allows you to better analyze the simulation.
2. Toggle on the generation of the cycle time report by choosing Robot tab→Analysis
group→Cycle Time Report .
3. Play the simulation for the desired amount of time and then stop the simulation.
• TimerOn — Define when a user defined timer should start track time associated to a certain
part of the simulation. Each timer includes a user-defined name.
Internal (built-in) timers include motion to location time, wait device time, weld time,
weld count, wait time, and wait signal time.
• TimerOff — Define when a certain timer should be stopped during a specific cycle.
• Reports for each simulated robot are displayed in separate tabs (named by the relevant robot)
in the Excel file.
• The last tab is called Report settings and displays the report settings.
• Each row in the report represents a significant event during the operation.
• Analyzing the report enables you to identify periods of time when the robot is inactive, to discover
the duration of the idle state, and understand the cause of inactivity.
• The Totals section of the report provides totals for robot active time (for example,
MotionToLocation) and inactive time (for example, WaitDevice) providing a useful overview of
robot activity during the operation. It also contains the weld count, indicating how many weld
locations were visited.
• You can make changes to the operation for example by: Changing the order of locations, repeat
the simulation, and compare the new report with the original one.
Activities
In the Creating various Excel reports section, do the following activities:
• Creating basic Excel reports
In this topic, you learn about some quick tips for robot signals and macros.
Objectives
Quick tips
Robot signals
• In order to easily and properly use default robot signals, it is suggested to create a “robot
controller” logic block.
Input Signals and Output Signals displays signals connected to the logic block.
3. Click OK.
Summary
Subjects learned in this topic:
• An introduction to event-based robotic simulation.
• How to connect and synchronize robot signals for two robots in an interference zone.
Purpose
In this lesson, you learn how to add a dual robot simulation to your “putting it all together example”.
Objectives
In this lesson, you learn how to add a dual robot simulation to your “putting it all together example”.
Objectives
Business process
Before this simulation starts, you assume that the clamps are open, the pins are extended,
and the robots are at the first location of their paths (the home position for this station).
The clamps must be opened, the pins extended, a part is not present, and welding is
not complete.
Part style 1 or 2 is loaded into the fixture. Sensors detect which part has been loaded.
3. When the operator is clear of the fixture, he presses the palm button.
A part is present, the welding is not complete, the clamps are closed, and the pins
are extended.
5. If zone 1 is empty, robot 1 enters the zone and moves to the pounce location.
This needs to be done before robot 2 removes the part from the fixture.
After completing these steps in this lesson, you continue the “Putting It All Together” in
the next lesson.
Activities
In the Fixture and robot 1 putting it all together section, do the following activities:
• Simulating the fixture and first robot
In this lesson, you learn how to add a dual robot simulation to your “putting it all together example”.
Objectives
Business process
In the previous “putting it all together” lesson, you completed the first eight steps described here. In
this “putting it all together”, you complete the rest of these steps.
Before this simulation starts, you assume that the clamps are open, the pins are extended,
and the robots are at the first location of their paths (the home position for this station).
These steps are a review of what was done in the previous lesson.
The clamps must be opened, the pins extended, a part is not present, and welding is
not complete.
Part style 1 or 2 is loaded into the fixture. Sensors detect which part has been loaded.
3. When the operator is clear of the fixture, he presses the palm button.
A part is present, the welding is not complete, the clamps are closed, and the pins
are extended.
5. If zone 1 is empty, robot 1 enters the zone and moves to the pounce location.
This needs to be done before robot 2 removes the part from the fixture.
2. If zone 1 is empty, robot 2 enters the zone and moves to the pounce location.
At this point if you had a sensor on the gripper you could verify that the part was
actually picked up. If not, you could try to get the part again.
There is no part present at the drop point (at the first conveyor sensor).
9. The conveyor is stopped when the part is detected at the second sensor.
10. The part is destroyed when it reached the third sensor at the far end of the conveyor.
If there were another station at this end of the conveyor, the part would continue into
that station. At this point this is the end of your line.
Activities
In the Robot 2 and conveyor putting it all together section, do the following activities:
• Adding the second robot and conveyor
Purpose
To provide additional information on smart component and conveyor abilities in Process Simulate.
Objectives
• How to use connection mapping to import signals and logic block connections exported from an
eCAD system.
Objectives
• CHECK FAULT1 – should be connected to the first device which could signal a fault (for example
a safety mat)
• CHECK FAULT2 – optionally can be connected to the second device which could signal a fault
(for example a safety gate)
• CHECK FAULT3 – optionally can be connected to the third device which could signal a fault
Internal Logic
• Move to the run pose, if the simulation is running and no faults are detected
• Move to the ready pose, if the simulation is not running and no faults are detected
Exits
• (None)
Activities
In the Operator gate control example (optional) section, do the following activities:
• Defining an operator gate control (optional)
Objectives
After you complete this topic, you should be able to:
• Create a robot controller smart component.
• MIRROR NUMBER — should be connected to a robot signal representing whether the requested
path number is valid for this program.
• PRG INPUT 1 — should be connected to a robot signal. representing the first path in a program
for a robot.
You do not use 1, 2, and 3 for the program numbers (just in case 1 and 2 are true you
do not want 3 to execute). There are other ways to accomplish this as well.
• PRG INPUT 3 — should be connected to a robot signal representing the second path in a
program for a robot.
• PRG INPUT 7 — should be connected to a robot signal representing the third path in a program
for a robot.
• PRG INPUT 9 — should be connected to a robot signal representing the fourth path in a program
for a robot.
• RESET CYC COMP — should be connected to a PLC signal to tell when to reset the cycle
complete Boolean.
• CYC COMP — should be connected to a PLC signal representing when the cycle is complete.
• ROBOT AT PNC — should be connected to a robot signal representing whether the robot is at
the pounce location.
• ROBOT CLEAR JOB — should be connected to a robot signal representing whether the robot
cycle is complete.
• CLR TO PNC— should be connected to a PLC signal representing whether the robot is clear
to pounce.
• First the PLC sends the signal requesting that the robot is clear to move to the pounce location
• Then the robot sends a signal that it received the request to move to the pounce location
• The PLC sends a signal requesting the robot to perform a certain path
• The robot informs the PLC when it is done performing the requested path
Internal logic
• Program check = (program input 1 * ONE) + (program input 2 * TWO) + etc.
• If program check is greater than zero, assign its value to program select
• As soon as the PLC says to requests the robot to move to the pounce location, then the robot
should reply that it can move to the pounce location.
• As soon as the robot finishes the cycle, it should tell the PLC.
• Move to the run pose, if the program has not ended and the robot is ready and the robot has
not encountered an error
• Move to ready if the program has ended and the robot has not encountered an error.
Exits
• PROGRAM START — should be connected to a robot signal representing whether the robot has
started moving along a path
• PROGRAM SELECT — should be connected to a robot signal representing which robot path in a
program has been selected.
• RBT CYC COMP — should be connected to a robot signal representing whether the robot
cycle is complete.
Activities
In the Robot controller example section, do the following activities:
• Defining a robot controller
Objectives
Internal Logic
• When the tip dresser is started, move to the grid pose, wait 5 seconds, then stop the motor
• The tip dresser is complete, when the motor has stopped and the tip dresser has returned to the
ready position.
Exits
• complete – should be connected to a signal representing when the tip dress is complete
Activities
In the Tip dresser example section, do the following activities:
• Defining a tip dresser
Objectives
After you complete this topic, you should be able to:
• Create a part scheduler smart component.
• _batchsize2 — should be connected to a key signal that represents the max batch size of style 2
• _done_b1 — should be connected to a signal that represents when the cycle for style 1 is
complete.
• _done_b2 — should be connected to a signal that represents when the cycle for style 2 is
complete.
• _reset_b1 — should be connected to a signal that represents when the max number of style 1
parts has been reached and that the counter should be reset to start again.
• _reset_b2 — should be connected to a signal that represents when the max number of style 1
parts has been reached and that the counter should be reset to start again.
• _set_batch_on — should be connected to a signal that represents whether to run in auto (batch)
or manual mode (simulation stops after one cycle and waits to continue).
• _reset_Style — should be connected to a signal that represents when the cycle starts.
Internal logic
• Keep making style 1 parts as long as the active counter value is less than the batch size and
has not been reset.
• Keep making style 2 parts as long as the active counter value is less than the batch size and
has not been reset.
• re_set-style1 = RE ( "_select_Style1" )
• re_set-style2 = RE ( "_select_Style2" )
Parameters
• actval_b1 — should be connected to a signal that represents the style1 active counter value.
• actval_b2 — should be connected to a signal that represents the style2 active counter value.
• do_b1 — should be connected to a signal that represents whether to continue doing style1.
• do_b2 — should be connected to a signal that represents whether to continue doing style2.
• re_set_style1 — should be connected to a signal that represents the rising edge of the set
style1 signal.
• re_reset_style — should be connected to a signal that represents the rising edge of the set
style2 signal.
• do_style1 — should be connected to a signal that represents whether to start doing style1.
• do_style2 — should be connected to a signal that represents whether to start doing style2.
Exits
• OK_Style1 — should be connected to a signal that represents whether a style 1 part should be
produced from the source.
• OK_Style2 — should be connected to a signal that represents whether a style 2 part should be
produced from the source.
• ALL_DONE — should be connected to a signal which resets the active counter value signifying
the schedule is all done.
Activities
In the Part scheduler example section, do the following activities:
• Defining a part scheduler
Objectives
After you complete this lesson, you should be able to:
• Create an operation run bar smart logic block.
Help topics
Additional information for this lesson can be found in:
• xxx
• xxx
• Select_Manual — should be connected to a signal that represents when manual mode has
been selected.
• Reset_start — should be connected to a signal that represents when the cycle is complete.
• Batch_Mode — should be connected to a signal that represents when batch mode has been
enabled.
• Part_Loaded — should be connected to a signal that represents when the part is ready.
Internal logic
• reset = RE ( "Reset_Start" )
• set = RE ( "ready" )
• RUN = "at_s2"
Actions
• mv_to_s1 = Move to MANUAL pose.
Parameters
• reset — should be connected to a signal that represents the rising edge of reset start.
• set — should be connected to a signal that represents the rising edge of ready.
• at_s1 — should be connected to the joint value sensor that represents when the POSE is
MANUAL.
• at_s2 — should be connected to the joint value sensor that represents when the POSE is AUTO.
• ready — should be connected to a signal that represents when the part is loaded and the button
is pressed, or when a part is loaded in batch mode.
Exits
• START — should be connected to a signal that represents
Activities
In the Operation run bar example section, do the following activities:
• Defining a operation run bar
Objectives
After you complete this lesson, you should be able to:
• Create dump unit smart logic block.
Help topics
Additional information for this lesson can be found in:
• xxx
• xxx
• to_OUT — should be connected to a signal that represents when the dump should be moved to
the OUT pose
• PartPresent — should be connected to a signal that represents when a part is present in the
fixture.
Internal Logic
• weld = "at_WELD_sensor" AND "PartPresent"
• re_weld = RE ( "weld" )
• fe_PartPresent = FE ( "PartPresent" )
Parameters
• dump_at_in — is a joint value sensor that detects that the dump is in the IN pose (0 degrees).
• dump_at_out — is a joint value sensor that detects that the dump is in the OUT pose (45
degrees).
• gun_at_open — is a joint value sensor that detects that the dump is in the OPEN pose (-70
degrees).
• at_WELD_sensor — is a joint value sensor that detects that the dump is in the WELD pose (0
degrees).
• weld — should be connected to a signal that represents when the dump is at the WELD pose
and the part is present.
• re_weld — should be connected to a signal that represents the rising edge of weld.
• fe_PartPresent — should be connected to a signal that represents the falling edge of part
present.
• wld_comp — should be connected to a signal that represents the set/reset of the rising edge of
weld and falling edge of part present.
Exits
• at_IN — should be connected to a signal that represents when the dump is at the IN pose.
• at_OUT — should be connected to a signal that represents when the dump is at the OUT pose.
• WLD_COMP — should be connected to a signal that represents when wld_comp and part
present.
Activities
In the Dump unit example section, do the following activities:
• Defining a dump unit
In this lesson, you learn how to make a robot interference zone smart component.
Objectives
• RBT1_EXT_ZONE — should be connected to a robot signal describing whether the first robot
has exited the first interference zone
Internal Logic
• A robot is currently in the first interference zone, if robot 1 has entered the zone, but has not
left it yet.
Exits
• RBT_CHK_ZONE — should be connected to a robot signal representing a check whether a
robot is currently in the first interference zone
Activities
In the Robot interference zone example section, do the following activities:
• Robot interference zone
More LB techniques
Purpose
In this topic, you learn other ways to create and edit logic blocks.
Objectives
The Create Logic Resource command, from the Control tab of the ribbon, is used to create a
logic block. It contains a defined logic behavior derived from one or more entries, exits, and internal
equations.
For example, a logical resource can be used to describe the operation of an air conditioning system,
which activates to change the temperature to a predefined level according to inputs it receives, such
as current readings from a thermostat. The logic resource contains the logic used to determine
when to activate the air conditioner
Logic resources can contain entry and exit values, as well as any number of parameters, and
constants. These must all have unique names. You can create expressions that determine which exit
value is triggered and under which conditions.
The Edit Logic Resource command is used to change the names of entries and exits, but
not parameters, constants, or actions.
The Connect Signals command is used to attach its entries and exits to signals. They can be
existing signals or created directly in the Connect Signals dialog box.
You can attach only one signal to entries or exits. However, an entry signal of type Boolean may
have one or more attached signals. In this case, the logic block evaluates the signals as if an OR
operation was inserted between them.
Objectives
Smart components (devices) needing an exact positioning are normally controlled by frequency
converters. These devices do receive an ongoing feedback and control either their speed or their
acceleration/deceleration in order to achieve their target with highest precision.
An easy example for a similar behavior is an elevator which upon pushing the target button
accelerates at maximum, then slows down and finally stops at exact position.
The smart components have an additional capability, to allow very accurate replicas of such
frequency converters or speed/target devices.
The velocity profile of a simple target device:
The common behavior: First the device accelerates until it goes up to a given target speed. An
ongoing online feedback informs the device continuously about its actual position. At a predefined
delta distance, before reaching the target, the speed goes either directly down (simple target) or in
order to achieve higher accuracy, slows down to a much lower speed and when reaching some
delta, the final target decelerates to speed = 0.
Device speed and acceleration control actions can be added while editing kinematic smart
components:
The Resource Logic Behavior Editor displays the Joint Velocity Controlled Action section. During
a simulation, this action accelerates or decelerates the selected joint to the defined velocity. This
velocity is maintained for the duration of the action and as long as the target velocity has not changed.
• Value Expression - A Boolean expression. When the expression evaluates to true , the action
is initiated. When it evaluates to false , the action is not initiated or terminates if it is already
initiated.
• Target Velocity Expression - A numeric expression that defines the joint target velocity. When
the expression is positive the target velocity is positive. When it is negative, the target velocity is
negative.
• Acceleration Expression - A numeric expression that defines the joint target acceleration.
This expression must always evaluate to a positive value. If it evaluates to a negative value,
the simulation behavior remains undefined.
• Deceleration Expression - A numeric expression that defines the joint target deceleration.
This expression must always evaluate to a positive value. If it evaluates to a negative value,
the simulation behavior remains undefined.
• Value Expression - A Boolean expression. When the expression evaluates to true , the action
is initiated. When it evaluates to false , the action is not initiated or terminates if it is already
initiated.
• Target Velocity Direction Expression - A Boolean expression that defines the joint direction
of motion. When the expression evaluates to true , the velocity is positive. When it evaluates
to false , the velocity is negative.
This expression defines only the joint direction of motion but not its velocity.
• Acceleration Expression - A numeric expression that defines the joint target acceleration.
This expression must always evaluate to a positive value. If it evaluates to a negative value,
the simulation behavior remains undefined.
• Deceleration Expression - A numeric expression that defines the joint target deceleration.
This expression must always evaluate to a positive value. If it evaluates to a negative value,
the simulation behavior remains undefined.
The following holds true for both, velocity or acceleration control: If you load a logic block
resource and the Joint parameter is missing from the Joint Velocity Controlled action
(there are certain types of studies where it may have been deleted), the action is not
loaded and the system issues a warning message.
Activities
In the Other selected smart component topics section, do the following activities:
• Target speed devices
Objectives
After you complete this topic, you should be able to:
• Create a weld controller smart component.
• WLD_CYC_GUN2 – optionally can be connected to a robot signal which controls the weld
cycle of gun2
• WLD_CNTR_GUN1 – should be connected to a signal which totals how many welds have been
performed by gun1
• WLD_CNTR_GUN2 – optionally can be connected to a signal which totals how many welds have
been performed by gun2
• TD_CYC_CNT - should be connected to a signal which stores the total cycle count for this robot
• TD_COMP_GUN1 – should be connected to a signal which stores the whether the max number
of welds of gun1 was not reached
• TD_COMP_GUN2 – optionally can be connected to a signal which stores the whether the max
number of welds of gun2 was not reached
Internal logic
• The weld counter value of gun1 equals one more than the current value of the weld counter,
if the max is not exceeded
• The weld counter value of gun2 equals one more than the current value of the weld counter,
if the max is not exceeded
• If the weld gun1 was cycled and the max number of welds was not reached, then the gun1
weld counter is set the weld counter value.
• If the weld gun2 was cycled and the max number of welds was not reached, then the gun2
weld counter is set the weld counter value.
• If the max number of welds for gun1 was reached, reset its value
• If the max number of welds for gun2 was reached, reset its value
• If the weld counter for gun1 is greater than one less than the total cycle count for this robot,
then total cycle for gun1 has been reached
• If the weld counter for gun2 is greater than one less than the total cycle count for this robot,
then total cycle for gun1 has been reached
Parameters
• WLD_CNTR_VAL_GUN1 – is a signal which represents
Exits
• WLD_CYC_GUN1 – (same as the entry)
• TD_CYC_GUN1 – should be connected to a signal which stores the total cycle of gun1
• TD_CYC_GUN2 – optionally can be connected to a signal which stores the total cycle of gun2
Activities
In the Weld controller example section, do the following activities:
• Defining a weld controller
PLC example
Purpose
In this topic, you learn how to create an example PLC.
This smart component may not be needed, since the contents are basically a combination
of other smart components you created earlier in this course.
Objectives
After you complete this topic, you should be able to:
• Create a basic PLC smart component.
PLC basics
In this topic, you used what you have already learned to connect signals to a smart component named
PLC CABINET. It contains all the needed logic for gathering several types of common statistics in
a study. Here are some of the statistics you setup in this topic:
Entries
• CYC_CMP_S1 — should be connected to a robot signal telling whether the last robot’s cycle of
style 1 is complete.
• CYC_CMP_S2 — optionally can be connected to a robot signal telling whether last robot’s
cycle of style 2 is complete.
• CYC_CMP_S3 — optionally can be connected to a robot signal telling whether the last robot’s
cycle of style 3 is complete.
Internal logic
• The current value of elapsed time equals the previous value of elapsed time plus the time interval.
• The total number of jobs equals one more than the job counter total.
• If the first, second, or third robot’s cycle is complete, then the average cycle equals the elapsed
time divided by the total number of jobs.
• If the last robot’s cycle of style 1 is complete, then current style 1 job counter equals one more
than its previous value.
• If the last robot’s cycle of style 2 is complete, then current style 2 job counter equals one more
than its previous value.
• If the last robot’s cycle of style 3 is complete, then current style 3 job counter equals one more
than its previous value.
• TOTAL_JOBS = "JOB_CNTR_TOTAL" + 1
• RE_START_CYC = RE ( "START_CYCLE" )
• RE_NEXT_CYC = RE ( "NEXT_CYCLE" )
• JOB_CNTR_TOTAL = "TOTAL_JOBS"
• JOB_CNTR_S1 = "JOB_CNTR_S1" + 1
• JOB_CNTR_S2 = "JOB_CNTR_S2" + 1
• JOB_CNTR_S3 = "JOB_CNTR_S3" + 1
• SET_START_TIME = "ELSPD_TIME"
• SET_RUN_TIME = "START_TIME"
Parameters
• ELSPD_TIME — is connected to a signal representing the time of the elapsed time.
• RE_START_CYC — is connected to a signal representing the rising edge of the start cycle.
• RE_NEXT_CYC — is connected to a signal representing the rising edge of the next cycle.
Exits
Activities
In the PLC example section, do the following activities:
• Defining a PLC cabinet
Summary
Subjects learned in this topic:
• How to create and use smart components.
• How to use connection mapping to import signals and logic block connections exported from an
eCAD system.
Purpose
In this lesson, you learn more about event-based simulations using other examples that are similar
to those used earlier in this course.
Objectives
• Setup and use robot pick and place using a different signal methodology.
In the Robot Signals dialog box, clicking New Input Signal opens the Input Signal dialog box,
allowing inserting the PLC signal name as well as the relevant robot signal name:
The names used for the Robot Signal Name are what is used as part of the OLP strings
on locations.
Actually the robot OLP signals are not just strings like in ROBCAD (or a when loading a
study in Standard Mode in Process Simulate). They are real objects, changing their
names in this signal list automatically changes the names in the OLP commands.
Users may also change the PLC signal name in the Signal Viewer as well.
Activities
In the Sending signals between multiple objects section, do the following activities:
• Set up device communication
In this topic, you learn how to do robot signal connection and synchronization.
Objectives
Activities
In the Robot Signal Connection and Sync section, do the following activities:
• Robotic Signals
In this topic, you learn how to create pick and place operations and macros.
Objectives
It is in fact a combination of operations that you have already used during this training.
The new and different combination is by the use of signals – like in the real robot – to drive the gripper.
How this can be achieved, together with re-usable pre-made code is the topic of this activity.
Communication
Robots normally communicate with mounted devices such as welding guns, clamps, mechanical
grippers or any other resource that can be operated (magnetic grippers etc.). They in fact
communicate with the device controller of the mounted device.
The entire information exchange is done by signals. These signals are for the robot controller the
same as those going or coming from the PLC. It is therefore a natural enhancement that this can also
be simulated in or system.
Earlier in this course you created smart component clamps. Now, you apply the same principle
to robotics. The device controller is a Logic Block used for each robot. They are named
GripperControllerRed and GripperControllerBlue. The controlling algorithm is quite simple, but is
enough to illustrate the use of a Logic Block as a device controller:
• When the grip_required is true , then trigger the grip operation
• When the release_required signal is true, then trigger the release operation
• When (@grip AND grip_required) OR (@release AND release_required) then give a feedback
to the robot action done.
Upon exporting the Logic Block to excel you should see the implementation of this.
In the scope of this activity the needed signals as shown in the connections should be sent from the
robots. In a second step this is done in a more efficient and re-usable way.
o # Drive CLOSE
o # Desitination gripper
o # WaitDevice CLOSE
o #Grip gripper_frame
• Use a combination of the Send Signal, Wait Time, and Wait for Signal OLP commands (and a
logic block), which inserts:
o # Send grip_req 1
o #WaitSignal Done_req 1
o #Send grip_req 0
o # Desitination gripper
o # Drive OPEN
o # Desitination gripper
o # WaitDevice OPEN
• Use a combination of the Send Signal, Wait Time, and Wait for Signal OLP commands (and a
logic block) which inserts:
o # Send rel_req 1
o #WaitSignal Done_req 1
o #Send rel_req 0
Activities
In the Pick and place operations and macros section, do the following activities:
• (No activities)
Objectives
After you complete this topic, you should be able to:
• Create and use robot macros.
• # Send grip_req 1
• # WaitTime 1
• # WaitSignal Done_req 1
• # Send grip_req 0
• Macro RELEASE
• # Send rel_req 1
• # WaitTime 1
• # WaitSignal Done_req 1
• # Send rel_req 0
• Macro WELD_GUN1
• # Weld
• # WaitSignal checkWeldFault1 0
• # Send cycleWeldgun1 1
• # GunToState
• Macro WELD_GUN2
• # Weld
• # WaitSignal checkWeldFault2 0
• # Send cycleWeldgun2 1
• # GunToState
• Macro TIPDRESS_GUN1
• # Send startTipdressMotor 1
• # WaitSignal TipdressComplete 1
• # Send startTipdressMotor 0
• # Send TipdressCycleComp1 1
• Macro TIPDRESS_GUN2
• # Send startTipdressMotor 1
• # WaitSignal TipdressComplete 1
• # Send startTipdressMotor 0
• # Send TipdressCycleComp2 1
Activities
In the Grip and release robot macros section, do the following activities:
• Using grip and release robot macros
In this topic you learn about the process of merging two stations to make one study using
the Merge Studies command.
Objectives
After you complete this topic, you should be able to:
• Use Merge Studies command to merge several station studies into a line study.
• Use the Merge Studies command to merge two station level studies into a new line level
study.
• Update the logic that passes the parts from one station to the next.
Run Simulation
• Play the simulation.
The Merge Studies command is used to merge the engineering data from a number of different
studies into a single, new study.
1. The Merge Studies command is not located on the ribbon. To add it to the Quick access
toolbar, choose Customize Quick Access Toolbar .
3. From the Process Simulate Quick access toolbar choose Merge Studies .
5. Select the desired studies from the Available Studies list and click >>.
Purpose
Objectives
• How to setup automation software (TIA Portal, PLCSIM, and PLCSIM Advanced).
• How to simulate in PLC mode using a PLCSIM, a PLCSIM Advanced, or a OPC UA connection.
• How to map between the automation software and Process Simulate environment.
• How to setup non-sim operations and modules for the PLC mode simulation.
Objectives
After you complete this lesson, you should be able to:
• Understand the basics of PLCs and virtual commissioning
• The second stage of design is to create a detailed PLC program, enabling the design and coding
of the overall logic. To verify the logic in a simulated environment, the OPC client functionality
built into Process Simulate is used. This is done with careful consideration of the PLC that is
actually used to control the production station. This step is critical in the deployment of the line.
Line-builders, engineering houses, system integrators, and others carry out this task.
Using the event-based simulation module in Process Simulate, you carry out the two stages of design
on a single platform, reducing the time of on-site integration and the cost of changes.
Introduction to VC
Important terms
Here are some terms that you should be familiar with when doing virtual commissioning:
• Programmable logic controller (PLC) — a computer used for the control, sequencing, and
safety interlock of factory assembly lines. It detects the state of all connected input devices,
executes a user created program, and energizes or de-energies all connected output devices.
• Human-Machine Interface (HMI) — allows an operator to interact with the PLC for configuration,
reporting, or everyday control.
• Interlock — used to prevent undesired states in a machine such as harming its operator or
damaging itself by stopping the machine. They could be as sophisticated as light screens, or
could be just switches. For example, a dishwasher stops, if you open it.
• Optimized performance
Virtual commissioning creates a realistic shadow of a production environment to test and debug the
PLC program on a PLC. It does not create a PLC program. This testing can be done long before the
real system is built to minimize impact on existing production. It can connect to real PLC hardware or
a virtual PLC through OPC or emulate the PLC using CEE.
• Robot clearances
• Test interlocks
• Test HMI
• Function block diagram — a graphical language showing signal and data flows though reusable
function blocks. It is useful for showing the interconnection of control system algorithms and logic.
• Structured text — A high level text language that encourages structured programming. It has a
syntax that resembles pascal and supports a wide range of standard functions and operators.
• Instruction list — A low level “assembler like” language that is based on instructions list
languages found in a wide range of today’s PLCs.
VC connection methods
Several connection methods are available in Process Simulate in order to have the event based
simulation communicate with an external device such as a PLC (Programmable Logic Controller):
Switching the line simulation from CEE to PLC mode requires a Process Simulate
Commissioning license. Also, the vendor PLC software must be correctly installed and
configured on the PC.
• OPC Data Access (OPC DA) — for any PLC that supports this standard, including Siemens PLCs
• OPC Unified Architecture (OPC UA) — for any PLC that supports this standard, including
Siemens PLCs
• Emulation:
o PLCSIM (classic) — for older Siemens PLCs such as the 300 series
Activities
In the Virtual commissioning basics section, do the following activities:
• Setup Process Simulate data for VC
In this lesson, you learn about adding devices to TIA Portal and a basic program..
Objectives
• Create a basic block for a program that can be connected to Process Simulate.
TIA Portal, PLCSIM standard, and PLCSIM Advanced are separately licensed from
Process Simulate. Process Simulate licensing comes from the Siemens PLM Software
division of Siemens AG, while TIA Portal, PLCSIM standard, and PLCSIM Advanced are
licensed by the Digital Factory division of Siemens AG.
Activities
In the TIA Portal basics section, do the following activities:
• Configure TIA Portal
VC with OPC DA
Purpose
In this lesson, you learn about connecting Process Simulate for virtual commissioning using OPC DA.
Objectives
After you complete this lesson, you should be able to understand:
• OPC DA
Most automation vendors support the OPC interface as a means to access various types of
data between host system computers and general purpose Windows applications other than the
operation and monitoring functions. For more information, see the OPC Foundation website
(opcfoundation.org).
The OPC interface consists of several types of servers which provide various kinds of data between
the control host system and general purpose interfaces for accessing these servers. Examples
include the following server types:
• OPC Data Access (OPC DA)
In Process Simulate, only the OPC Data Access server, which reads (collects) and writes (sets) the
current values of process data using item IDs (variable names) as data identifiers is used.
2. In the automation software, open the file containing the logic that you want to use to control the
Process Simulate simulation.
This is a PLC file, not a Process Simulate file.
6. In the Add OPC Data Access Connection dialog, provide a unique Name to the OPC connection
(remember multiple external connections are possible).
This is the how the PLC connection is referenced within Process Simulate.
The OPC server, can be localhost, an IP address, or another computer on the network.
8. In the OPC Browser dialog box, double-click a server in the left pane to select it.
The dialog box content varies according to the different OPC servers installed on your computer.
For example:
9. (Optional) Select an alias-connection (for example, S7 connection_1) and drill through the levels
until you reach the signal level and select one.
An Item Header is a fixed textual prefix which is added to the name of any signal
sent or read from the specific connection.
The entire corresponding dialog is now filled with the needed data.
10. Due to some different interpretations of OPC 2.05a an additional “.1” appears in the OPC server
field. – delete this suffix..
11. (Optional) Specify whether to read\write signal according to their full name or their address
(address is only valid for Siemens OPC servers).
When working with Siemens, the option of using the IEC address is also possible. This
can be done by selecting Map Signals By Address.
Successful validation ensures basic connectivity. However, it does not ensure successful data
exchange, which depends on matching signal names\addresses.
The OPC client (Process Simulate) must have the OPC Core Components Redistributable (x64)
installed which can be downloaded from the OPC Foundation website.
Process Simulate is a x64 bit application. To avoid problems browsing for OPC DA servers
in Process Simulate, either uninstall or disable the x86 Core Components which may
require a reinstall of the x64 core components.
When running in OPC mode, Process Simulate acts as an OPC client. This means that in order
to exchange values with the OPC server the same identifiers must exist in both systems. These
identifiers are normally variable names (for example, signals in PSC). It is your responsibility to verify
that the variable definitions in the OPC server and in Process Simulate match.
Reading or writing mismatched variables from/to an OPC server is considered a critical error in
Process Simulate and causes the simulation to stop immediately and issue an error message.
In the next lessons (Signal mapping) you use different tools to mapping signals between the two
environments to avoid these errors.
If using a Siemens PLC, you can alternately match signals based on its address.
Should Process Simulate try to read or write variables that do not exist on the OPC server, an error
message dialog box is shown.
In this example, three signals in Process Simulate called Key Signal, Key Signal1, and Key Signal2
have been created and run with a program on a OPC server where they do not exist.
Activities
In the VC with OPC DA section, do the following activities:
• Example configuration of an OPC DA server
Objectives
After you complete this lesson, you should be able to understand:
• PLCSIM
PLCSIM
PLCSIM is a PLC Emulator from Siemens Industrial Automation.
It is widely used to emulate actual PLC code behavior for various purposes such as PLC code
debugging or as in our case – virtual commissioning.
A number of versions of PLCSIM exist:
• PLCSIM Classic (version 5+), used for emulating S7-300/400 PLCs, on top of Simatic Step
7 or TIA Portal.
• PLCSIM Standard (version 11+), used for emulating S7-1200/1500 PLCs on top of TIA Portal.
This training was tested with S7-PLCSIM version 15 and TIA Portal version 15.
• PLCSIM Advanced (version 1+), used for emulating S7-1500 PLCs on top of TIA Portal.
This training was tested with S7-PLCSIM Advanced version 2.0 and TIA Portal
version 15.
As with OPC DA, the goal of the PLCSIM connection is to exchange information, for example
signals, over a communication protocol to verify both systems (simulation and PLC emulation) are
working correctly.
being emulated. As mentioned before, the goal of virtual commissioning is to build a digital twin as
close as possible to the physical model.
4. Click OK.
5. In the Signal Viewer, signals which should be sent to or received to/from PLCSIM must be
marked by selecting the PLC Connection check box for the signal.
Sometimes the interface between PLCSIM and Process Simulate can stop working.
To restart it, switch Process Simulate back to CEE mode, play simulation for a short
duration, reset the simulation, and switch back to PLCSIM mode.
Activities
In the VC with PLCSIM classic section, do the following activities:
• Device control with PLCSIM classic
Objectives
After you complete this lesson, you should be able to understand:
• PLCSIM Advanced
PLCSIM Advanced
PLCSIM Advanced is an advanced PLC emulator from Siemens Industrial Automation designed to
emulate S7-1500 series PLCs, first released on top of TIA Portal version 14.0 (2016).
The Options dialog provides general configuration parameters for Process Simulate
commissioning.
The External Connections dialog box opens and allows you to add a new connection or to re-use
(import) an existing one.
5. In the External Connections dialog box, click add Add and select PLCSIM Advanced.
The Add PLCSIM Advanced Connection dialog box opens.
PLCSIM Advanced connection offers another option: Time synchronization. In this mode the
simulation clocks of Process Simulate and PLCSIM Advanced are kept in sync to each other (Process
Simulate being the master), allowing tighter and more realistic simulation.
Activities
In the VC with PLCSIM section, do the following activities:
• Device control with PLCSIM Advanced
VC with OPC UA
Purpose
In this lesson, you learn about connecting Process Simulate for virtual commissioning using OPC UA.
Objectives
After you complete this lesson, you should be able understand:
• OPC UA
OPC UA
The OPC UA (Unified Architecture), first released in 2008, is an industrial machine-to-machine
communication protocol for interoperability by the OPC foundation. It is the successor to the OPC
classic platform (including OPC DA).
It has new capabilities such as platform independence (OPC classic is COM based, meaning
Windows based), security, and comprehensive information modeling while maintaining support
of COM OPC classic specifications.
The goal of OPC UA is to further standardize the communication between various devices and
system and allow for easier, reliable, and secure data flow.
OPC UA accomplishes the original design specs of OPC Classic and enhances it further by allowing
additional capabilities such as Discovery, Address Space, Subscriptions, Events and more.
• Process Simulate supports both OPC Data Access (DA) and OPC Unified Architecture (UA) by
acting as a thin OPC client, able to send and receive data from any OPC server.
• It is recommended to test OPC connectivity with a rich client prior to setting up the Process
Simulate connection.
• The OPC server communicates to the external network via a dedicated interface (vendor specific).
In this example, the automation software is TIA Portal and the OPC server is PLCSIM Advanced.
• The OPC server communicates to the external network via a dedicated interface (vendor specific).
In this example, the automation software is TIA Portal and the OPC server is PLCSIM Advanced.
• The OPC client (Process Simulate) is installed on the simulation machine and can communicate
directly to the PLC via the OPC specification.
• The PLC (OPC server) communicates to the automation network via Profinet.
To browsing for server while creating a OPC UA connection, you must run Process
Simulate as an administrator. Also the firewall must be turned off or tunneled.
The External Connections dialog box opens and allows you to add a new connection or to re-use
(import) an existing one.
5. In the External Connections dialog box, click add Add and select OPC UA.
The Add OPC Unified Architecture Connection dialog box opens
6. In the Add OPC Unified Architecture Connection dialog box, enter a Name.
The name is how this connection is referenced in Process Simulate. This is because multiple
connections are possible.
You always get an error, since the local computer does not have any connections on its IP
address. They are on a specific IP address on the computer.
9. Browse or type a Host Name (enter a computer name or IP address), as well as a port, to
discover an available an endpoint.
You can also define the relevant server either by typing in a full Server Endpoint URL,
such as opc.tcp://<HOST NAME>:<PORT NUMBER>, and the NameSpace Index.
11. Expand into the Objects folder and select the PLC such as PLC_3.
Once objects are shown in the panel section, you select the folder of the desired PLC hardware
to get the NameSpace Index and insert it into the appropriate field in the connection.
When running in External Connection mode with an active OPC UA connection Process Simulate
acts as an OPC UA client. This means that in order to exchange values with the OPC UA server
the same identifiers must exist. These identifiers are given as variable names (i.e. Signals in
PSC). It is the user’s responsibility to verify that the variable definitions in the OPC UA server and
in Process Simulate match.
Reading or writing mismatching variables from/to an OPC UA server is considered a critical error
in Process Simulate. Mismatching signals are ignored during simulation (no values will actually
be exchanged).
Process Simulate identifies signals in the OPC UA server by their Node ID which is comprised of 3
things which make any node in the OPC UA server unique:
• Identifier Type - Process Simulate only supports String Identifier Types and hence signal
exchange is based on Signal Name. Nodes of other types ( for example Numeric) are not
exchanged. Note that this refers to the Type of the node, not to be confused with the type
of the value for example.
• Identifier - must match the signal name in PS. Some OPC UA servers have naming rules to
create Identifiers from PLC data. For example the Siemens Simatic Net OPC UA server adds
a constant prefix (for example „S7-1500_ET200.<PLC NAME>“) to any identifier, while other
servers can have different implementation. As mentioned before, it is up to the user to make sure
signal in PS are properly mapped to the signals in the external system (OPC UA server).
In the next lessons (Signal mapping) you learn the different tools for mapping signals between the
two environments to avoid such errors.
Activities
In the VC with OPC UA section, do the following activities:
• Device control with OPC UA
Objectives
After you complete this lesson, you should be able to understand:
• Simulation Unit
Simulation Unit
SIMULATION UNIT (formerly SIMBA BOX) is a hardware interface that enables real-time simulation
of slave devices so that master devices, for example PLCs, see no difference between the simulated
network and a real network. This allows virtual commissioning to move another step closer to the
physical world, allows for better validation of the digital twin model, and smoother commissioning.
Other key features of Simulation Unit are its support of safety scenarios, an open API for simulation
software to utilize, and the ability to use a single system for testing of many different systems even
before their actually assembly. The PN version of the Simulation Unit also allows for a combination of
real and simulated devices running at the same time ("Hybrid").
2. Import the hardware configuration into the Simulation Unit (software) project.
4. Connect Process Simulate to the Simulation Unit box in order to monitor and exchange signals.
See details steps in the next section.
The External Connections dialog box opens and allows you to add a new connection or to re-use
(import) an existing one.
5. In the External Connections dialog box, click add Add and select Simulation Unit.
The Add Simulation Unit Connection dialog box opens.
In this dialog ox, it is possible to give a specific name to the Simulation Unit connection (remember
multiple external connections are possible) and change the Hardware index as required.
7. In addition, Process Simulate must reference the Simulation Unit software’s project. In the
External Connections dialog box, click Settings
9. Click OK.
The Simulation Unit connection exchanges signals using signal addresses and signals have
to be mapped accordingly.
In this lesson, you learn about PLC to Process Simulate signal mapping.
Objectives
Business process
Signals related to operations such as _end or _start signals are not mapped, since they
are internal to how Process Simulate operates.
Tools available to map the signals to Process Simulate for an OPC client
Several different tools are at your disposal:
1. Ideally, the PLC and Process Simulate operators follow a standard for naming signals so that no
renaming or mapping of signals is required. (recommended)
4. A Siemens S7 direct mapping tool (takes care of the specific S7 address mapping option)
You use the Connection Mapping command, on the Control tab of the ribbon, to import an
.XLS file generated by an eCAD application.
You can use the information contained in the file to automatically create signals and connect them to
entries and exits in logic blocks. The command also creates a report of the connections it has made.
File format:
The information is displayed in the file in the following columns:
• ResourceName — The name of the logic block.
• PinName — The name of the entry or exit of the logic block to connect the signal to.
• SignalType — The type of the signal: I - input ; Q - output. By default, if no SignalType was
specified (either the column is missing or contains an empty value), Entry creates an output
signal and Exit creates an input signal.
• Address — The address of the signal. This optional column is only needed if you are using a
Siemens OPC connection and selected to map using the address instead of the name.
• External Connection — Name of the External (OPC) Connection to which the signal is wired.
eCAD applications do not generate column headings, you must edit the file yourself to
insert these. Use the exact column names for the command to succeed. If your eCAD
application generates a file with a different order of columns, this is acceptable.
You use the Import Signals command in the Robot Signals dialog box to import the root signals
and their connected signals (what is shown in the Signal Viewer).
• PREFIX — A prefix for the signals.
• I_Q — Specify input or output signal from the perspective of the PLC. Either I - input ; Q - output.
• Address — The address of the signal. This optional column is only needed if you are using a
Siemens OPC connection and selected to map using the address instead of the name.
1. From the ribbon, choose Control tab→Mapping group→Connection Mapping . The Open
dialog box appears.
• Checks if the signal specified in the SignalWireName column exists for the resource.
• If the signal does not exist, the command creates the signal.
1. Select a robot.
You use the Signal Mapping command (on the Signals Viewer) to import an Excel spreadsheet
to map signals between the Process Simulate and OPC (PLC) environments. (Microsoft Excel
must be installed in order to run this feature)
You use Signal Mapping to automatically replace signal names created in one nomenclature with
new names of another nomenclature. Often, different engineers working on elements of a simulation
select signal names differently. Creating the simulation can require standardizing thousands of
signal names named by different methods to one naming method. You can standardize the names
manually, but for large numbers of signals, it is useful to be able to replace the names automatically.
Signal data is often kept in spreadsheet format. So, you use Signal Mapping to replace signal
names in a simulation program.
For example, you can use Signal Mapping to transfer signals named in mechanical engineering
terminology to corresponding names in electrical engineering terminology. The replacement of one
set of signal names and parameters with another is referred to as mapping.
Signal Mapping reads an Excel spreadsheet file containing the new signal names and other
parameters.
An icon on the Signal Viewer launches the Signal Mapping Tool , which processes the
spreadsheet file, making all legal mappings. If the input spreadsheet file contains more than one
worksheet, all of the worksheets are processed.
The Signal Mapping Tool creates a log file during the mapping process, indicating any errors
encountered in processing the spreadsheet file. The log file is created in the directory of the input
spreadsheet file.
File format
The signal mapping tool ignores the first row of the Excel spreadsheet file so you can place a title in the
first row. The remaining lines contain the signal names and other information for the signal mapping.
Each line contains the information for one signal. The expression EOF in the first cell of a line
indicates the end of the signal mapping data. When Signal Mapping processes the file, it stops when
it reaches EOF. You may insert blank lines in the spreadsheet for organizational purposes.
The first five columns of the spreadsheet, contain the fields described in the following table.
Description
Required/Optional
Required Mechanical Name — the name of the signal in the current program. The
Signal Mapping Tool replaces this name during mapping.
Required Electrical Name — The Signal Mapping Tool replaces a signal's
Mechanical Name with this name during mapping.
Optional Type — the signal type. The legal values are BOOL, BYTE, WORD,
DWORD, INT, DINT, and REAL. The field is not case-sensitive. The value
in the input file replaces any previous Type value for the signal.
Optional Address — only needed if you are using a Siemens OPC connection and
selected to map using the address instead of the name.
Description
Required/Optional
Optional Comment — a description of the signal. If a comment already exists for
the signal in the simulation program, the Signal Mapping Tool combines
the old comment with the new one from the input file. The resulting
comment is comprised of:
• The previous name of the signal.
• Bit: an integer, 0 - 7
Format of the Address field for signals other than type BOOL:
<Prefix><Byte>
Examples of Address field for signals other than type BOOL:
• IB40, MW9, QD100, IR23
The example illustrates that Row 1 is used for column titles. Signal mapping ignores the first row.
In the example, Row 7 is blank. The blank row does not interrupt the signal mapping process. In
the example, several Type, Address, and Comment fields are undefined, illustrating that they are
optional fields. The Signal Name and Electrical Name fields are required and they are all defined
in the example.
these steps help you create the import file, by first exporting a list of your signals in Process Simulate.
1. From the Signals Viewer, click Export to Excel ,type a filename, and click Save.
2. In Excel, sort based on the PLC Connection column and delete all FALSE rows.
3. In Excel, delete these columns: Memory, IEC Format, PLC Connection, and Resource.
7. Look in the OPC (PLC). Insert the signal name as shown on the OPC (PLC) into the Electrical
Name column for the desired rows.
The address column is only used by Siemens OPC connections, if you selected to map
using the address instead of the name.
3. Click Open.
4. The mapping process begins. During the mapping, the cursor changes to an hourglass to
indicate that the mapping is in progress. When the mapping finishes successfully, the following
dialog box appears.
5. Click Yes to view the log file (or No to close the dialog box).
You use this dialog box to cancel the process before mapping any signals. If the signal mapping tool is
unable to read the input file or unable to create a log file then a dialog box appears indicating the error.
Log file
If the signal mapping tool encounters a problem mapping a signal in the input file, it reports the
details of the problem in the log file. Each entry in the log file identifies the problematic signal by
indicating the sheet and line number of the signal in the input file. Signal Mapping Tool reports
two types of problems:
• Warning — The signal was mapped, but the signal mapping tool is reporting an unusual situation.
• Error — The signal was not mapped or was only partially mapped. Partial mapping indicates that
the signal was mapped, but that one or more optional attributes were not included in the mapping.
3. From the ribbon, choose Control tab→Operations and Signals group→Rename by Resource
.
File format
3. Click Open
3. Click Map
The relevant Signal Name, Address, and Comment fields in the Process Simulate window are
updated to match those in the Simatic window.
The name of the signal has changed, the physical address has been carried over from
the SDF file and in the comments field a remark with the former name has been added.
2. Click Add.
The new signal appears in the Process Simulate Signal List.
You must first open a SDF file in the External Mapping dialog box.
1. In the External Mapping dialog box, click ImpMap.
The ImpMap option tries to map the signals automatically if an IEC address has been defined in
the Process Simulate signals viewer or otherwise it adds the signals.
Activities
In the PLC to Process Simulate mapping section, do the following activities:
• Switch TIA Portal files and connection
• Signal mapping
In this lesson, you learn about non-sim and flow operations win PLC mode. You also learn about the
what to do with modules in PLC mode.
Objectives
• Additional conditions
Business process
The Problem
The workflow for switching from CEE mode to PLC mode involves some additional complexity
concerning the process flow and specifically the material flow.
In the Sequence Editor when running in CEE mode, the flow operations and non-sim operations are
executed according to their order and transitions in the Sequence Editor (and Material Flow Viewer).
In PLC mode, all the actions such as robotic operations and clamp smart components, are started
using PLC signals via the PLC. But non-Sim and flow operations normally are not started using a PLC
signal (although the system can create such signals).
When running Process Simulate in PLC mode, modules and logic on operational transitions are
ignored. However, logic blocks and the Simulation Panel are not. This is an important note when
setting up your simulations.
In order to get the correct material flow, all non-sim or flow operations in between “real” operations
must be executed. For example, parts for a weld operation are not put in the fixture if the non-sim or
flow operations are not executed in the correct order.
Another point of interest is the fact that now the synchronization of the processes running in the
PLC and in the Process Simulate simulation is no longer guaranteed. Each system might have
its own “virtual clock” (except when using PLCSIM Advanced with Time Sync mode where clocks
are kept in sync).
2. Material Flow is executed according to the definitions in the Material Flow Viewer.
External Connection/Emulation:
1. A dedicated “start” signal is created for each operation.
3. The entire material flow is executed according to the definitions in the Material Flow Viewer.
4. The most affected part of simulation is usually material flow (since it is mostly executed through
transitions).
Solution
• Create logic blocks to represent the transition conditions of the non-sim and flow operations.
These logic blocks should reference the operation _start signal, _end signal, and transition
condition. The goal here is the impose the correct material flow behavior without changing
the PLC code.
• Either convert all modules to logic blocks or replace its logic with logic in the PLC program.
• Create All Flow Start Signals — create start (for example _start) signals for all flow
operations in the study.
• Create Non-Sim Start Signal — create a start (for example _startt) signal for a non-sim
operation. This command is rarely used, since it is a best practice to represent clamps and
other devices as smart components.
You can view the start condition of any operation using Operation Start Condition .
The Operation Start Condition command is located on the Control tab of the ribbon.
1. In the Sequence Editor, click Play Simulation Forward and then quickly click Pause
Simulation (do not reset it).
This can be helpful I an operation fails to start during a simulation, you can check the starting
conditions for that operation to discover the fault and fix it. Each line in this dialog box represents
a combination of signals required to start the operation.
2. From the ribbon, choose Control tab→Operations and Signals group→Create Non-Sim Start
Signal .
o You can create a custom logic block for each study that contains an entry for
each transition.
• Parameter
o start_RE (Boolean) = RE ( start_req )
• Exit
o start_op (Boolean) = SR ( start_RE op_end ) — specify the generated _start signal.
• Entry
o start_req (Boolean) — specify the first start condition signal.
• Parameter
o combinedStart (Boolean) = start_req AND Addt_cond
• Exit
o start_op (Boolean) = SR ( start_RE op_end ) — specify the generated _start signal.
Here the Material Flow logic block example used in training. The assumption with this logic block is
that you do not want to modify the program in the automation software and want to CEE and PLC
mode simulation in Process Simulate to work the same.
• Entry
o End Cycle (Boolean)
• Parameter
o Generate Parts (Boolean) = NOT "First Run" OR "End Cycle"
• Exit
o Generate Parts Start (Boolean) = RE( "Generate Parts")
4. Depending on whether there are one of two signals in the start condition: Insert either the
Op_TRIGGER1 or Op_TRIGGER2 logic block.
An important point concerns the non-sim operations used to split the sequence into
alternative or parallel branches. They need to be triggered in order to have a correct
material flow.
Activities
In the Non-sim, flow operations, and modules in PLC mode section, do the following activities:
• Method 1
• Method 2:
Objectives
Introduction
The end-to-end workflow invokes additional complexity concerning the material flow. In CEE this
material flow is very rigidly defined. In OPC the order of execution of operations is no longer controlled
by the CEE engine but by an external control engine (the PLC through the OPC server)
Another point of interest is that now the synchronization of the processes running in the PLC and in
the Process Simulate simulation isn’t guaranteed anymore.
This lesson answers these issues.
However it doesn’t teach PLC programming. It is strongly recommended that the virtual
commissioning user have PLC working experience.
CEE
1. When trying to execute a specific operation op1, its start condition is first evaluated. This
condition is composed of the transition conditions of the operation's preceding operations (using
AND / OR for multiple preceding operations).
2. If its start condition is evaluated to true , a check is done in the preceding operations' parts
queues.
• Every operation fills its output part queue when it starts. In case the queues of the preceding
operations of op1 are still empty (for example the preceding operations haven't started
running) – op1 won't be executed.
• In case the preceding operations' output queues are not empty – op1 gets the parts nodes
from the queue and try to look among them for the parts it consumes.
• In case they are found among the already accumulated part – it uses them. Otherwise
- it produces them.
• In both cases – the proper part physical appearance are assigned to the operation at this
point (before start running).
• The operation's direct preceding operations have already started their running.
• When this signal is evaluated to true , a check of the preceding operations' output parts queues
is done –
o If the queues are not empty, the operation tries to look for the parts it consumes among
the accumulated nodes of them. If the parts consumed by the operation are found – they
are assigned to the operation and are used.
o There are parts that can never be received from the preceding operations (for example their
first use is by this operation op1). These parts are sourced by the operation itself.
o In case the parts' first use is not by this operation (for example the parts were supposed to
be produced by a previous operation) but they weren't produced, because the previous
operations weren't executed yet – the operation runs without the parts.
• According to this mechanism, the only condition for running the operation is:
o The start signal value of the operation becomes true .
o The proper part physical appearances are assigned to the operation before it starts running.
2. Rob2Op moves through some via locations that don't require the part and then stop and wait for
the arrival of the part (using its own synchronization tools, such as "wait" OLP commands).
5. Rob2Op is released from the "waiting mode" and operate on the part.
So actually, you need Rob1Op and Rob2Op to start together (or even start Rob2Op before Rob1Op)
– but the handling of the parts should be first Rob1Op and then Rob2Op.
This behavior setup using the Material Flow Viewer: one of the conditions for running Rob2Op
is starting the execution of Rob1Op.
As can be seen from these examples, the material flow links and triggers determine the flow of
material and influence the order of execution.
2. It does not find it (as Rob1Op hasn't run yet and therefore hasn't produced the part yet) therefore
it starts running without it.
3. Rob2 starts "waiting" (as specified before, using OLP synchronization methods),
4. The OPC server sends the value TRUE for the signal Rob1Op. Rob1Op starts
5. Rob1Op produces the part, operate on it, and then when it finishs handling it,
6. Rob2Op is released from its "waiting mode" and start operating on the part, but the part
appearance is not assigned to the operation as this assignment is currently done before the
operation starts to run. In weld operation case, it results in weld location operations that are
not attached to the correct part appearance.
Here you can see that even starting the operations execution is independent (the operations starts as
soon as its start operation signal is true ) – it is determined that the looking-for-part process and
assigning it to the operation is done before starting the operation's execution.
In order to support the cases detailed above, you need to setup the Material Flow viewer. .
Summarizing the simulation:
• Station/Line Model
• Conventional TB
• Starting of operation algorithm (CEE) vs. Start signal triggering from OPC server
In OPC/PLCSim/SIMIT simulation
A serious difference between the CEE behavior and a real PLC program is the execution of non-sim
and flow operation. Although it’s possible to create non-sim and flow _start signals (similar to the
device_TO_ signals) it’s not very sound that one would change the real PLC program in order
to trigger this simulation operations.
• In order to get the correct material flow all non-sim or flow operations in between “real” operations
must be executed.
• Material flow means in this context also that locations attached to a part for weld operation are
not put to the correct locations if the non-sim or flow operations as mentioned are not executed
in the correct order.
Instead of triggering the needed simulation operations you can use dedicated Logic Blocks.
Any operation can get _start signals – it can be triggered by any of the following:
• A program running on the OPC server
The easiest way to define the Op_TRIGGER1 logic block when you only have one condition is
with this content:
• Entry
o start_req (Boolean) — specify the start condition signal.
• Parameter
o start_RE (Boolean) = RE ( start_req )
• Exit
o start_op (Boolean) = SR ( start_RE op_end ) — specify the generated _start signal.
If you have two start conditions combined with an AND to trigger an operation, you can use this
Op_TRIGGER2 logic block. A similar process could be used to create a logic block for three start
conditions.
• Entry
o start_req (Boolean) — specify the first start condition signal.
• Parameter
o combinedStart (Boolean) = start_req AND Addt_cond
• Exit
o start_op (Boolean) = SR ( start_RE op_end ) — specify the generated _start signal.
Summary
Subjects learned in this topic:
• Introduction to virtual commissioning concepts.
• How to setup automation software (TIA Portal, PLCSIM, and PLCSIM Advanced).
• How to simulate in PLC mode using a PLCSIM, a PLCSIM Advanced, or a OPC UA connection.
• How to map between the automation software and Process Simulate environment.
• How to setup non-sim operations and modules for the PLC mode simulation.
Part appearance and material flow Quick tips to part appearance and material flow
basics . . . . . . . . . . . . . . . . . . . . . . . 2-12 problems . . . . . . . . . . . . . . . . . . . . . 2-18
Part appearances and material flow . . . . 2-1
Part Handling OLP Commands . . . . . . . 6-22 R
Part scheduler basics . . . . . . . . . . . . . . A-6
Part scheduler example . . . . . . . . . . . . . A-6 Rename signals using resource
Perform connection mapping . . . . . . . . 4-24 names . . . . . . . . . . . . . . . . . . . . . . C-49
Photoelectric sensors (light sensors) . . . . 3-4 Renaming signals by resource . . . . . . . C-49
Pick and place basics . . . . . . . . . . . . . . B-6 Rising edge and falling edge functions . . 4-12
Pick and place operations and macros . . . B-6 Robot / device communication . . . . . . . . B-6
PLC basics . . . . . . . . . . . . . . . . . . . . A-21 Robot 2 and conveyor putting it all
PLC example . . . . . . . . . . . . . . . . . . . A-21 together . . . . . . . . . . . . . . . . . . . . . . 7-5
PLC to Process Simulate mapping . . . . C-41 Robot controller basics . . . . . . . . . . . . . A-3
PLCSIM . . . . . . . . . . . . . . . . . . . . . . C-19 Robot controller example . . . . . . . . . . . . A-3
PLCSIM Advanced . . . . . . . . . . . . . . . C-23 Robot interference zone example . . . . . A-12
PLCSIM Advanced pros and cons . . . . . C-23 Robot programs . . . . . . . . . . . . . . . . . 6-15
PLCSIM classic pros and cons . . . . . . . C-19 Robot signal basics . . . . . . . . . . . . . . . B-2
Pose signals on robots . . . . . . . . . . . . 6-17 Robot signal connection and sync . . . . . . B-4
Practical applications of signals . . . . . . 1-16 Robot Viewer . . . . . . . . . . . . . . . . . . . 6-32
Process Simulate as an OPC client . . . . C-17 Robotic event-based simulation . . . . . . . 6-1
Process Simulate as an OPC DA Robotics: Inter location handling . . . . . . 6-17
client . . . . . . . . . . . . . . . . . . . . . . . . C-16
Process Simulate as an OPC UA S
client . . . . . . . . . . . . . . . . . . . . . . . . C-34
Process Simulate OPC DA client Safety mat basics . . . . . . . . . . . . . . . . . 4-7
setup . . . . . . . . . . . . . . . . . . . . . . . C-11 Safety mat example . . . . . . . . . . . . . . . 4-7
Process Simulate OPC UA client Seeing part appearances . . . . . . . . . . . 5-14
setup . . . . . . . . . . . . . . . . . . . . . . . C-29 Sending signals between multiple
Process Simulate SU connection objects . . . . . . . . . . . . . . . . . . . . . . . B-2
setup . . . . . . . . . . . . . . . . . . . . . . . C-37 Sensor introduction . . . . . . . . . . . . . . . . 3-2
Program Flow OLP Commands . . . . . . 6-23 Sensors and conveyors . . . . . . . . . . . . . 3-1
Programming languages used for Set up a PLCSIM Advanced
PLCs . . . . . . . . . . . . . . . . . . . . . . . . C-4 connection . . . . . . . . . . . . . . . . . . . . C-23
Property list . . . . . . . . . . . . . . . . . . . . 3-31 Set up a PLCSIM classic connection . . . C-20
Property projector . . . . . . . . . . . . . . . . 3-32 Set up a Simulation Unit connection . . . C-36
Property projectors . . . . . . . . . . . . . . . 3-30 Setup a basic robotic zone . . . . . . . . . . . 6-7
Property projectors basics . . . . . . . . . . 3-31 Setup robot path segment
Property sensors . . . . . . . . . . . . . . . . 3-34 communication . . . . . . . . . . . . . . . . . 6-30
Proximity sensors . . . . . . . . . . . . . . . . . 3-8 Signal basics . . . . . . . . . . . . . . . . . . . 1-15
Putting it all together . . . . . . . . . . . . . . . 5-1 Signal graph basics . . . . . . . . . . . . . . 6-32
Putting it all together continued . . . . . . . . 7-1 Signal graphs in the Robot Viewer . . . . 6-32
Signal mapping warnings and errors . . . C-48
Q Signal monitoring . . . . . . . . . . . . . . . . 4-10
Signal Viewer . . . . . . . . . . . . . . . . . . 1-17
Quick tips . . . . . . . . . . . . . . . . . . . . . 6-38 Signals for a basic interference zone . . . . 6-7
Quick tips for logic block simulations . . . 4-29 Signals Viewer basics . . . . . . . . . . . . . 1-17
Quick tips for robot signals and Signals Viewer usage . . . . . . . . . . . . . 1-18
macros . . . . . . . . . . . . . . . . . . . . . . 6-38 Simulating and triggering events . . . . . . 1-10
Quick tips to debug a conveyor or sensor Simulation Panel basics . . . . . . . . . . . 1-11
simulation . . . . . . . . . . . . . . . . . . . . 3-36 Simulation Panel usage . . . . . . . . . . . . 1-12
Day 2 Morning
Lesson 3 Sensors and Conveyors
Afternoon
Lesson 4 Logic Blocks and Smart Components
Day 3 Morning
Lesson 5 Put It all Together
Afternoon
Lesson 6 Robotic Event-Based Simulation
Day 4 Morning
Lesson 7 Put It all Together Continued
Afternoon
Appendix (optional
Optionally, discuss topics from the appendix
topics)
Classroom data sheet
This table is provided so students can record their classroom setup, as described by the instructor.
Optionally, instructors may hand out a preprinted data sheet.
Data item Data value
OS user ID
OS password
User number
Headquarters
Europe
Granite Park One
Stephenson House
5800 Granite Parkway
Sir William Siemens Square
Suite 600
Frimley, Camberley
Plano, TX 75024
Surrey, GU16 8QD
USA
+44 (0) 1276 413200
+1 972 987 3000
Asia-Pacific
Americas
Suites 4301-4302, 43/F
Granite Park One
AIA Kowloon Tower, Landmark East
5800 Granite Parkway
100 How Ming Street
Suite 600
Kwun Tong, Kowloon
Plano, TX 75024
Hong Kong
USA
+852 2230 3308
+1 314 264 8499