Module 07 SmartComponents 608
Module 07 SmartComponents 608
08
SmartComponents
The information in this manual is subject to change without notice and should not be construed as a
commitment by ABB. ABB assumes no responsibility for any errors that may appear in this manual.
Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any
kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific
purpose or the like.
In no event shall ABB be liable for incidental or consequential damages arising from use of this manual
and products described herein.
This manual and parts thereof must not be reproduced or copied without ABB's written permission, and
contents thereof must not be imparted to a third party nor be used for any unauthorized purpose.
Contravention will be prosecuted.
Additional copies of this manual may be obtained from ABB at its
then current charge.
2017-05-08 ABB
Table of Contents
3
Smart Components
1. Smart Components
Overview
Smart Components give RobotStudio users a series of building blocks or tools which enable
components within a station to have more complex behavior. Some examples are gipper
motion, objects moving on conveyors, logic etc. Once created these objects can be saved as
library files for use in future stations and simulations.
4
Smart Components
3. Right click on the Source and select Properties in the context menu (if the properties
window not already is opened).
4. In the Properties window select the box in the Source drop down box.
NOTE: If the Transient box is checked the part (in this case the box) will
automatically be deleted when the simulation is stopped. Leave the box unchecked
for this exercise.
5
Smart Components
5. Press Apply.
6. Add the base component LinearMover from the Manipulators gallery, and the base
component Queue from the Other gallery.
Note: As additional components are added they will populate in the recently used
section.
6
Smart Components
8. Open the Properties window for the LinearMover by right clicking on it in the Layout
browser. Select the SC_InFeeder/Queue as the Object. Change the Direction to X= -
1000, Y=0, Z=0 (the box will move in minus X direction). Change the Speed to
500mm/s. Press Apply.
9. Activate the Execute signal. Close the Properties window.
7
Smart Components
3. In the SC view, go to the Signals and Connections tab and click the Add I/O
Connections button.
4. Set Source Object to SC_InFeeder, Source Signal to diNewBox, Target Object to
Source and Target Signal to Execute. Press OK.
5. Add a new I/O Connection and set Source Object to Source, Source Signal to
Executed, Target Object to Queue and Target Signal to Enqueue. Press OK.
Note: At any point you can also look at the Design view which gives you a graphical
representation of the Smart Component. I/O Connections are represented by green lines
while bindings are represented by red lines. These can be toggled on and off to simplfy the
view if necessary.
8
Smart Components
When you are creating Smart Components (SC), you can minimize the risk of making
mistakes by testing it as often as possible. For example, if a sensor is added, you can test the
SC by activating the sensor and then moving an object to intersect the beam. The SensorOut
signal should go high when the beam is intersected.
Before we add a sensor to this SC we will test the Source and the Queue to ensure it works as
expected.
Note: SmartComponents that consume time (e.g. moving objects) are activated by the
simulation function within RobotStudio. Therefore a simulation needs to be running in order
to test/use a SC.
9
Smart Components
1. Click on the my_SC_InFeeder:View1 tab so you can see the conveyor and the box.
2. Open the property window for SC_InFeeder.
3. Press Simulation Play.
4. Click on diNewBox a couple of times and verify that a new box is created and starts
moving for each click.
5. Stop the simulation and delete all boxes generated during the simulation.
2.
This is done to prevent the PlaneSensor from detecting the InFeeder geometry. It will
also prevent the robot’s tool from detecting and attaching to the InFeeder.
10
Smart Components
4. Place the cursor in the Origin field in the property window for the PlaneSensor.
5. Set up your selection level and snap mode to enable you to select the corner of the
conveyor as in the picture below:
6. Increase the Y value with 10mm. This is to ensure that the sensor is wider than the box
and that the entire edge of the box is covered by the sensor so that it is not missed.
7. In the Axis 1 field type in Z= 100mm (height of the beam).
8. In the Axis 2 field type in Y= -930mm (width of the beam).
9. Make sure that the sensor is Active and that the signal SensorOut is low.
10. Press Apply.
11. In the SC view (SC_inFeeder) go to the Compose tab and click the Add component
button.
11
Smart Components
12. In the Signals and Properties gallery click on the LogicGate button.
13. Change the Operator to NOT in the property window for the LogicGate.
14. In the SC view (SC_inFeeder) go to the Signals and Connections tab and click the Add
I/O Signals button.
15. Add a DigitalOutput with the name doBoxInPos. Press OK.
12
Smart Components
13
Smart Components
Preperation
1. Create a new empty station.
2. Import the library file VacuumGripper.rslib.
14
Smart Components
3. Next add an Attacher base component from the Actions gallery. When trigged, this
base component will attach a child component to a parent component. The parent in
this example is represented by the vacuum gripper.
4. In the properties window of the Attacher, select the VacuumGripper
(SC_VacuumGripper) as parent, as shown below.
At this point we cannot state which object should represent the child in the Attacher.
This depends upon the object that is intersected by the sensor in the simulation.
Therefore a binding needs to be made between the object sensed by the LineSensor
we created earlier.
15
Smart Components
5. Click Add Binding in the Properties and Bindings tab of the SC view. Create the
binding as below:
As we also want to be able to detach the attached object we need to add a Detacher
and a binding between the attached part and the part that will be detached.
7. Click Add binding in the Properties and Bindings tab of the SC view again and
create the binding as below:
16
Smart Components
Internal Signals
Next we will define internal signals in our component that later will be cross connected with
the I/O signals in the Virtual Controller. To define the actions in our SC, we also need to
define some I/O connections.
1. In the Signals and connections tab of the SC view, click Add I/O Signals and add a
digital input signal, diAttach.
2. Create the first two I/O connections with the following input. When the signal is set,
the sensor will become active and attach any object breaking the sensor beam.
3. When the signal diAttach is set low, we want the Detacher to execute. Instead of
creating a new I/O signal we will add a new base component, LogicGate (NOT).
This will trigger the Detacher when the signal is low (NOT high).
4. In the Compose tab of the SC view, click Add component and add a LogicGate.
17
Smart Components
6. If you want the component visible in the Layout browser, select Show in Browser
from the context menu.
7. Add two more I/O connections according to the list below. (Ensure you understand
the steps here as this represents the logic discussed in step 3.)
The next step is to create a handshake output signal (SC internal), doAttached from
our SC. This will later be connected to a digital input signal in the robot controller
confirming whether something is attached or not. This signal will be controlled by a
SRLatch (Set-Reset latch) which will be set by the Attacher and reset by the
Detacher.
8. In the Signals and connections tab of the SC view, add a digital output signal,
doAttached.
18
Smart Components
9. Add the SRLatch base component from the Compose tab of the SC view.
10. Then continue adding I/O connections according to the list below. Make sure you go
through and understand each step. (This represents the logic discussed in step 7.)
11. To get an overview of the completed SC, click the Design tab of the SC view. To
get a better view click on Auto Arrange. Note that you can also drag the various
compnents around to arrange them according to your preference. You can also make
I/O connections and Bindings directly in the Design tab.
19
Smart Components
Preparation
1. Create a new empty station.
2. Import the library file EuroPallet.rslib. (Note this is in the standard ABB library under
equipment.)
20
Smart Components
4. Next add a binding to bind the Sink with the Dynamic Property. (In this case it will be
the part dropped off by the robot.)
For the next base component we will add a Comparer. This component enables
the ability to set a signal based upon the result of a property comparison.
21
Smart Components
5. Add the base component Comparer which is found under the Signal and Properties
gallery.
6. In the Comparer properties window set values as below and click Apply. Note that the
output signal gets greyed out. (see step 8)
7. Add a Stop Watch which is also found in the Signals and Properties gallery.
8. Add a binding to connect the Stop Watch to the Comparer. In this example by making
the binding, the Comparer will set an output after 2 seconds of simulation time.
Ultimately we will use this to remove/delete the part that will be placed on the pallet.
22
Smart Components
3. Add an I/O connection to reset the Stop Watch when the digital input goes high.
4. Add another I/O connection to activate the LogicSRLatch when the digital input
goes high.
5. Add another I/O connection to connect the LogicSRLatch Output signal to the
StopWatch Active signal. This to activate the StopWatch when the digital input
goes high.
23
Smart Components
6. Add another I/O connection to connect the Comparer and the Sink. This will
delete the object when the Comparer Output signal goes high (after 2 seconds).
7. Add the final I/O connection to deactivate the StopWatch when the object is
deleted.
24
Smart Components
Preperation
1. Unpack the file Courseware\Stations\SC_Palletizing_Robot.rspag to a new folder
Stations\Module_7|my_SC_Palletizing.
2. Import the ...\Libraries \SC_VacuumGripper.rslib created earlier in this exercise.
3. Import the ...\Libraries \SC_InFeeder.rslib created earlier in this exercise.*
4. Import the ...\Libraries \SC_OutPallet.rslib created earlier in this exercise.
5. Import the library ...\Libraries\box.rslib.*
*Note: When a SC is saved as a library component any links that may have existing during
its creation are removed. This gives us the ability to reuse SC in other stations and
simulations. When this is done some of the base components may need to be connected,
bound etc. to another component.
Hint: In the SC_InFeeder what graphical component are we looking for the Source to copy?
5. Add a new DigitalOutput signal with an initial value of 1 and name it doDetached.
25
Smart Components
7. Close the Smart Component Editor window and save the gripper with the same name as
before.
8. Attach SC_VacuumGripper to the robot.
26
Smart Components
The last step is to setup I/O connections between the Smart Components and the Virtual
Controller to get a complete simulation. This can be thought of as “virtual wiring” between the
various components in the simulation environment whereas in the real application there would
be physical wiring in place between the actual components.
*Note: Depending upon the exact signal values you start with multiple boxes may be
created when the simulation is started. One option to correct this may be to change the
Rapid code. In the main procedure an I/O is being pulsed in order to create a new box.
The SC_InFeeder is also using a logic gate to create a new part when the sensor is low at
the end of the conveyor.
27
Smart Components
28
Smart Components
29