You are on page 1of 63

COMAU PRO

Tool Explanation

Comau S.p.A.
Powertrain Systems
Via Rivalta, 49
10095 Grugliasco (TO) Italia
Tel. +39 011 0049111
www.comau.com

Sede legale: Via Rivalta, 30


10095 Grugliasco (TO) Italia
Capitale sociale Euro 48.013.959 i.v.
REA Torino 474119
Reg. Impr. Torino, Cod. Fisc. e P. IVA 00952120012
CEE IT00952120012

Comau S.p.A. a socio unico


Direzione e coordinamento
ex art. 2497 c.c. Fiat S.p.A.

COMAU PRO TOOL EXPLANATION: WHAT IS IT?


It's a tool for programming, in graphic form, the work cycle of a controlled axis system, defining
the movements it must make in order to pass from one point in space to another. The end result is
the automatic generation of the relative programs and sub-programs that will be loaded in the
system control unit.

COMAU PRO TOOL EXPLANATION: FIELD OF APPLICATION

The COMAU_PRO tool is used to define the work cycles linked with the assembly, handling and
general spreading processes. After defining the work cycle at graphic level, the programs, subprograms and user libraries (forming the application for the destination system) are generated.
Starting from the diagram itself, the tool is able to generate the application for the following
systems:
Siemens 840D numerical control
configuration:
- from 1 to 6 independent channels
- from 1 to 5 interpolating axes per channel
Siemens 611U axis card
Comau robot C3G - C4G - C5G
configuration:
from 1 to 6 independent arms (the standard maximum configuration is 4 arms)
from 1 to 6 interpolating axes per arm (standard configuration)
from 1 to 8 interpolating axes per arm (C3G) (axes 7 and 8 are optional)
from 1 to 10 interpolating axes per arm (C4G - C5G) (axes 7-10 are optional)
ranges: Smart, Tricept, P-Mast
KUKA robot
configuration:
from 1 to 6 interpolating axes per arm (standard configuration)
from 1 to 12 interpolating axes per arm (axes 7-12 are optional)
ranges: KRxxx anthropomorphic robots
ABB robot
configuration:
from 1 to 6 interpolating axes per arm (standard configuration)
from 1 to 12 interpolating axes per arm (axes 7-12 are optional)
ranges: IRBxxx anthropomorphic robots

COMAU PRO TOOL EXPLANATION: GETTING READY TO WORK


The COMAU_PRO tool is used to define, in graphic form, the movements (known as
connections) that the controlled axis system needs in order to pass from one status in space to
another. The statuses are known as points.
The aim is to name all the necessary points and the movements that the system can make in order
to pass from one status to another.
Sequence of a portal that picks up in position 1 and deposits in position 2

The portal is in its idle position, called


point 0.

The portal is in its pick-up position,


called point 1.

The portal is again in its idle position


(point 0).

The portal is above its deposit position;


this position is called point 3.

The portal is in its deposit position,


called point 2.

The portal is again above its deposit


position (point 3).

The portal is again in its idle position


(point 0).

Apart from the idle position, which must be defined as status 0, all the other points can be
numbered as the programmer prefers during the design phase and, if necessary, renamed at a
later date.
In this case, the points needed by the system are those called status 0,1,2,3.
With Comau_pro, these points can be represented along with the movements that link them. This
is done in the following way:

Where movement 61 links point 0 with point 1, movement 62 links point 1 with point 0, and so on.
From the PLC point of view, the system can be seen as an actuator that receives a command
(output of the destination point number) and must confirm the implementation (input of the
number of the point reached).

Example of a robot cycle created with the Comau_pro tool, with the relative operating surface.

Example of dialogue with PLC

Let's suppose we want to create the cycle shown in the chart below. The dialogue between the
PLC and the control unit of the decentred system will be:

Let's suppose that we're starting from point 0 with the grippers open. The PLC transmits the
number 1 to the system, thereby commanding it to move to position 1 (pick-up).
The system begins the movement, and informs the PLC that it is making connection 61 and, at the
end of the movement, has reached point 1.
In this way, the PLC recognises that the system is in the pick-up position (status 1) and commands
the closure of the grippers.
The PLC transmits the number 2 to the system, commanding it to move directly to position 2
(deposit).
The system begins the movement, and informs the PLC that it is making connection 62 then 63
and 65 and, at the end of the movement, has reached point 2.
In this way, the PLC recognises that the system is in the deposit position (status 2) and commands
the opening of the grippers.
The PLC transmits the number 0 to the system, commanding it to move directly to position 0 (idle).
The system begins the movement, and informs the PLC that it is making connection 66 then 64
and, at the end of the movement, has reached point 0.

COMAU PRO TOOL EXPLANATION: STEP BY STEP PROJECT DEVELOPMENT

Creating a new project


Select New from the File menu, or position the mouse cursor on the new file icon
confirm with the left-hand mouse button.
Select the xxxx control type from the Control menu.

, then

Opening an existing project


Select Open from the File menu, or position the mouse cursor on the open file icon
confirm with the left-hand mouse button.

, then

Select the archive file (CPR or TXT) of the previously saved project.

Saving a new project


Select Save or Save as from the File menu, or position the mouse cursor on the save file icon
then confirm with the left-hand mouse button.
Write the name of the archive file (CPR or TXT) of the project you want to save, and select the
destination drive and directory.

Selecting the current language


Position the mouse cursor on Language from the Tools menu, then select the required language
and confirm with the left-hand mouse button.
NB: the selected language is changed dynamically in the Comau_pro tool, without any need for a
restart operation.

Setting the default properties of the graphic objects


This selection is general and is applied to all the graphic objects. In addition, each graphic object
inserted has its own personalised properties.

Remove any selection area that may be active.

Select Point from the Properties menu (to modify the properties of the points).
Select Connection from the Properties menu (to modify the properties of the connections).
Select Comment from the Properties menu (to modify the properties of the comments).

NB: the properties of the graphic objects are their size and colour. Any modification of the
properties will only take effect on new objects inserted.
Colour:
Drop-down selection box for defining the colour of the graphic object.

Size:
Drop-down selection box for defining the size of the graphic object.
Setting or viewing channel data
Select Channel from the View menu
(to select the channel number).
Select Channel from the Properties menu
(to set or view the channel data).
NB: the channel corresponds to the arm.
Channel properties for the Siemens 611U axis card

Number of axes:
Drop-down selection box for indicating the number of axes associated with the channel.
NB: the axis names must correspond to the indication in the machine data.
Name:
Name of the axis (up to 4 characters).

Channel properties for the Siemens 840D control

Number of axes:
Drop-down selection box for selecting the number of axes associated with the channel.
(The axis names are indicated in the machine data).
Name:
Name of the axis (up to 4 characters).
No. of positions set:
The number of positions enabled.
If the point positions vary according to the type of piece to be worked, you can set up to 3
elements. In this way, 3 names can be specified for each single point, in order to obtain 3 different
sets of positions on the basis of the type of element. The positions can then be modified in a clear
manner for the various types.
NB: if there are some cycle points that don't need to be assigned different positions, just assign
the same name to all the similar positions via the properties of the single points (chapter 2.9
Setting or modifying a point).
Position set comment:
A comment on the set of positions is a mnemonic text relating to the type of element.
Multi-type:

Selection of the types of element for special point recalculation needs (usage of interlocking
portals in the field of processing centres and transfers).
Enabling:
ECHO to PLC
If the ECHO (numerical control) is enabled, then when there is a request for a new destination
point, it informs the PLC of the current set of positions and the number of the destination status to
be reached.
Tip: only enable the ECHO during the test phase, as it has a considerable effect on the work cycle
execution time.
Joints
If this is enabled, the paths consisting of several movements will be executed by the numerical
control in a continuous manner (without interruptions between one movement and the next). The
joint value (mm) between points can be set by setting the individual connections (chapter 2.10
Setting or modifying a connection).
Fast H functions
Normal suppression
The auxiliary functions with normal suppression are transferred in the interconnections of the
standard PLC program at the start of the OB1, and are validated by a strobe signal. The
suppression only occurs when the PLC has performed a full OB1 cycle.
Fast suppression
The auxiliary functions with fast suppression are transferred in the interconnections of the
standard PLC program at the start of the OB1, and suppression occurs straight away via the
standard PLC program (OB40).
Tip: the emission of the fast H functions may be handy in the case of consecutive movements that
are very close to each other and with an execution time less than the PLC scanning time. In this
case, the next movement begins even if the OB1 hasn't performed a full cycle; this avoids any
slow-down between one movement and the next.
PLC -> NC interface:
DPR start
Text box for defining the numerical value of the address,
equivalent to the start of the DPR area dedicated to data exchange between the PLC and the NC.
DPR end
Read-only box that shows the programmer the address of the end of the DPR area reserved for
the selected channel.
Setting the default DPR for multiple selections:
Text box for defining the address of the specific DPR area for selecting the types of element for
special point recalculation needs (usage of interlocking portals in the field of processing centres
and transfers).

Channel properties for COMAU, ABB, KUKA robot control

No. of positions set:


The number of positions enabled.
If the point positions vary according to the type of piece to be worked, you can set up to 3
elements. In this way, 3 names can be specified for each single point, in order to obtain 3 different
sets of positions on the basis of the type of element. The positions can then be modified in a clear
manner for the various types.
NB: if there are some cycle points that don't need to be assigned different positions, just assign
the same name to all the similar positions via the properties of the single points (chapter 2.9
Setting or modifying a point).
Position set comment:
The comment on the set of positions is inserted as a heading to the points section in the Pointtaking program.
Settings:
(**)Tool (for all robot controls):
text box for indicating the number of the active Tool for the arm (channel) to which all the
program point positions will refer.
(**)Frame (Comau C3G C4G C5G control):
text box for indicating the number of the active Frame for the arm (channel) to which all the
program point positions will refer.
(**)Wobj (ABB S4C control):

text box for indicating the number of the active Wobj for the arm (channel) to which all the
program point positions will refer.

(**)Base (Kuka KRC2 control):


text box for indicating the number of the active Base for the arm (channel) to which all the
program point positions will refer.
(**)..valid on the basis of the selected control type
NB: by modifying the properties of the individual points (chapter 2.9 Setting or modifying a
point), other Tool and Frame/Wobj/Base values will be made available for each point.
Cycle restart with axes out of position:
If the "return to idle with the axes out of position" function is enabled, you can request point 0
(idle position) even after moving the robot in manual mode (programming) or when the position
of the axes at the time of the cycle restart doesn't correspond to the stopping position.
Tip: the enabling of the "return to idle with the axes out of position" function requires a
repositioning sub-program. It's a good idea to enable this function only for Cartesian robots.
ECHO to PLC
If the ECHO (robot control) is enabled, then when there is a request for a new destination point, it
informs the PLC of the echo of the number of the destination status to be reached.
NB: this function is only active for KUKA and ABB robot controls.
Inserting a new point
Select Point from the Insert menu, or position the mouse cursor on the icon
with the left-hand mouse button.

, then confirm

You will see a new, light blue point on the screen.


Position the mouse cursor on the selected point.
Press the left-hand mouse button and keep it pressed to move the selected point.
To disable the selection, click outside the point.
NB: you will still see the point and relative number in blue on the screen. You can change the
colour of the point by selecting the Style page of Point properties.
Tip: to view the complete list of currently planned points, divided on the basis of position set and
channel, select Point list from the View menu.
Inserting a new connection
Select Connection from the Insert menu, or position the mouse cursor on the icon
confirm with the left-hand mouse button.
Position the mouse cursor on the connection start point.
Click with the left-hand mouse button.

, then

Position the mouse cursor on the connection end point.


Click with the left-hand mouse button.
Setting or modifying a point
Position the mouse cursor on the point you want to modify.
Click with the left-hand mouse button to select the point.
Select Point from the Properties menu, or make a double click with the left-hand mouse button on
the selected point.

Properties page for the SIEMENS 611U axis card point

Number of the point:


Drop-down selection box for renumbering an existing point.
If you select the number of an existing point, a warning message will remind the programmer that
the selected point is already used. By confirming this with OK, the two points will be swapped
over.

Properties page for the SIEMENS 840D control point

Position set names:


Name to be given to the point (up to 21
characters) for each position set enabled.
NB: the system automatically adds the
prefix and nature of the point.

Variables recalculated:
Enabling the recalculation
When the recalculation is enabled, the indication of the position recalculation sub-program (just
one for all the points) is automatically inserted.
For each point on which recalculation is enabled, the system assigns the positional variable of the
machine axis with a calculation parameter R in order to avoid modifying the physical point. Of
course, the programmer must write the logic and shift values in the position recalculation subprogram.

Each machine axis is associated with a recalculation parameter with fixed addressing.
The recalculation sub-program doesn't have a recall code and can't be activated from the PLC. This
sub-program is recalled automatically every time there is a request for a new destination position.

NB: if a status is defined with recalculated positions, and the system has to work with 2 different
sets of positions, the same name is automatically assigned to both positions (so as to work with
one single name). Position recalculation is used, in fact, to pick up parts from interlocks that are
always in fixed positions, regardless of the type of piece in the station.
1 Mgud
Active by default for supporting - on R variables - the positions needed for recalculation,
associating them with unique Mgud variables relating to each machine axis indicated on the
channel.
Mgud vector (multi-type)
Can be selected to support - on R variables - the positions needed for recalculation, associating
them with matrices of Mgud variables of dimensions linked to the pre-set multi-type selection
(chapter 2.6.2 Channel properties for Siemens 840d control), for each machine axis indicated on
the channel.

Number of the point:


Drop-down selection box for renumbering an existing point.
If you select the number of an existing point, a warning message will remind the programmer that
the selected point is already used. By confirming this with OK, the two points will be swapped
over.

Properties page for the COMAU, ABB, KUKA robot point

Point names (positional variables):


Name to be given to the point (up to 21 characters) for each position set enabled.
NB: the system automatically adds the prefix and nature of the point.
(**)Tool (for all robot controls):
text box for indicating the active Tool for the selected point only
(**)Frame (Comau C3G - C4G - C5G control):
text box for indicating the active Frame for the selected point only
(**)Wobj(ABB S4C control):
text box for indicating the active Wobj for the selected point only
(**)Base (Kuka KRC2 control):
text box for indicating the active Base for the selected point only
(**)..valid on the basis of the selected control type
NB: By default, the Tools and Frame/Wobj/Base of the selected points are set with the general
channel values if they were set before the point was inserted (chapter 2.6 Setting or viewing
channel data).

Recalculated point:
When the recalculation is enabled, the indication of the position recalculation sub-program (just
one for all the points) is automatically inserted.
For each point on which recalculation is enabled, the system creates a temporary support variable
in order to avoid modifying the physical point. Of course, the programmer must write the logic and
shift values in the position recalculation sub-program.
The recalculation sub-program doesn't have a recall code and can't be activated from the PLC. This
sub-program is recalled automatically every time there is a request for a new destination position.
The support variable adopts the same name as the physical point, but with the prefix lp rather
than vp.

NB: if a status is defined with recalculated positions, and the system has to work with 2 different
sets of positions, the same name is automatically assigned to both positions (so as to work with
one single name). Position recalculation is used, in fact, to pick up parts from interlocks that are
always in fixed positions, regardless of the type of piece in the station.

(**)Tool (for all robot controls):


text box for indicating the active Tool for the recalculated point only
(**)Frame (Comau C3G - C4G - C5G control):
text box for indicating the active Frame for the recalculated point only
(**)Wobj(ABB S4C control):
text box for indicating the active Wobj for the recalculated point only
(**)Base (Kuka KRC2 control):
text box for indicating the active Base for the recalculated point only
(**)..valid on the basis of the selected control type
NB: during the execution of the recalculated points (lp_...), the Tool and Frame/Wobj/Base may be
changed by the recalculation program - if indicated in the previous sections - without losing the
original values assigned to the non-recalculated point (vp_...). For example, for special pick-up
needs on multiple disconnected interlocks.
Type of point:

Selection box for defining the nature of the point in a unique manner.
NB: this selection is only available if the robot is Comau C3G C4G C5G.
Point:
Drop-down selection box for renumbering an existing point.
If you select the number of an existing point, a warning message will remind the programmer that
the selected point is already used. By confirming this with OK, the numbering of the two points
will be swapped over.
Properties page for Style
This selection is valid specifically for the selected point and is the same for all the controls used by
Comau_pro.

Colour:
drop-down selection box for defining the colour of the graphic object that represents the point.
Size:
drop-down selection box for defining the size of the graphic object that represents the point.
Comment inside the program:
text box for inserting a comment in the program.
Tip: to view the complete list of currently planned points, divided on the basis of position set and
channel, select Point list from the View menu.

Setting or modifying a connection


Position the mouse cursor on the number of the connection you want to modify.
Click with the left-hand mouse button to select the connection.
Select Connection from the Properties menu, or make a double click with the left-hand mouse
button on the selected connection.
Properties page for the SIEMENS 611U axis card connection

Speed [%]:
Used to set the percentage of the axis deceleration speed. The maximum movement speed is preset as a machine data item of the Siemens axis card.
NB: this setting can only be made after a minimum axis braking distance has been set
Braking [mm]:
Used to indicate the distance between the start of axis braking and the stopping point on the
position being executed.
Connection number:
Drop-down selection box for renumbering an existing connection.
If you select the number of an existing connection, a warning message will remind the
programmer that the selected connection is already used. By confirming this with OK, the
numbering of the two connections will be swapped over.
Axis:

Used to select the axis involved in the movement of the connection in question, on the basis of the
number of axes indicated on the channel (chapter 2.6.1 Channel properties for the Siemens 611U
axis card).
Enabling the recalculation:
The recalculation of the positions is performed entirely by the PLC, as the positions of the axis card
are transferred each time for movement purposes. When recalculation is enabled, a bit is
indicated so that the PLC can recognise the connections to be recalculated.

Properties page for the SIEMENS 840D control connection

Speed:
Drop-down selection box for selecting the advance speed for all the axes involved in the work
sequence.
As a rule, the advance speed is the result of all the speed components of the individual geometric
axes involved in the movement.

Joint:
Drop-down selection box for selecting the joint value between two movements.
The paths consisting of several movements will be executed by the numerical control in a
continuous manner (without interruptions between one movement and the next).

For each movement, you can select the joint speed (expressed in mm).

NB: if the shift from one movement to the next requires a change of speed, the speed is varied
gradually along the connecting section. This holds true even if there is no change of direction
between the two movements.

Acceleration:
Drop-down selection box for selecting the percentage of the movement acceleration/deceleration
profile.
NB: with an acceleration percentage of 100%, you obtain the maximum acceleration/deceleration
ramp.
Connection number:
Drop-down selection box for renumbering an existing connection.
If you select the number of an existing connection, a warning message will remind the
programmer that the selected connection is already used. By confirming this with OK, the two
connections will be swapped over.

Properties page for the COMAU C3G - C4G - C5G robot connection

Speed:
Drop-down selection box for selecting the movement speed percentage.
NB: a modification to the speed percentage will have no effect on acceleration/deceleration.
Fly:
Drop-down selection box for selecting the delay percentage on joint start and end between one
movement and the next.
The paths consisting of several movements will be executed by the robot in a continuous manner
(without interruptions between one movement and the next).

NB: with a fly percentage of 100%, the joint begins at the start of natural movement deceleration
and concludes at the end of the acceleration of the next movement. If you select a fly percentage
of 75%, the joint begins after the execution of a value equal to 25% of deceleration, and ends at
75% of the acceleration phase of the next movement.

Acceleration:
Drop-down selection box for selecting the percentage of the movement acceleration/deceleration
profile.
NB: with an acceleration percentage of 100%, you obtain the maximum acceleration/deceleration
ramp.
Connection:
Drop-down selection box for renumbering an existing connection.
If you select the number of an existing connection, a warning message will remind the
programmer that the selected connection is already used. By confirming this with OK, the two
connections will be swapped over.
Termination:
Selection box for identifying the movement termination manner, according to how close the arm
must be to its destination in order to consider the movement terminated.
The termination values are the predefined system constants:
NOSETTLE
The movement is considered terminated when the path generator has generated the last position.
The true arm position is not considered.
COARSE
The movement is considered terminated when the TCP is back within the tolerance area defined
by the value of the $TOL_COARSE variable.
FINE
The movement is considered terminated when the TCP is back within the tolerance area defined
by the value of the $TOL_FINE variable.
JNT_COARSE
The movement is considered terminated when the joints are back within the joint tolerance field
defined by the value of the $TOL_JNT variable.
JNT_FINE
The movement is considered terminated when the joints are back within the joint tolerance field
defined by the value of the $TOL_JNT variable.
NB: the COARSE and FINE termination constants express the value, in millimetres, of the radius of
the sphere within which the arm must end its movement. JNT_COARSE and JNT_FINE express the
tolerance, in degrees, for each joint.
The JNT_COARSE and JNT_FINE constants consist of a class of two-dimensional real array data,
where the first dimension is used when the termination is JNT_FINE; the second is used when the
termination is JNT_COARSE.
If the destination machine is a TRICEPT, the termination can only be of the JNT_COARSE or
JNT_FINE type.

Enabling (PLC confirmation):


Selection box for subjecting the execution of the program block for the next movement to PLC
consent. This function allows the development of optimum paths in conditions of the maximum
safety, and synchronisation with the equipment of the station where the robot is working.
Tip: to make the system as reactive as possible, you are advised to remove the default setting
from all connections between points that don't interact with station equipment.
Movement:
Selection box for defining the type of path. The path of each movement can be specified as JOINT
or LINEAR.
NB: by specifying a JOINT type path, all the arm axes begin and end their movement at the same
time. If a LINEAR path is specified, the TCP (tool centre point) of the arm moves from its initial
position to its end position by following a straight line.
Properties page for the C4G - C5G robot options

Software collision control sensitivity:


Used to select the sensitivity level of the SW anti-collision control for each specific connection, in
order to optimise the sensitivity threshold on the basis of the various application phases. To use
the collision options, the Tool set on the relative connection must be >=1.
NB: the Soft Collision software on the C4G - C5G robot control is optional.
Properties page for the KUKA KRC2 robot connection

Speed:
Drop-down selection box for selecting the movement speed percentage.
NB: a modification to the speed percentage will have no effect on acceleration/deceleration.
Fly:
Drop-down selection box for selecting the delay percentage on joint start and end between one
movement and the next.
The paths consisting of several movements will be executed by the robot in a continuous manner
(without interruptions between one movement and the next).

NB: with a fly percentage of 100%, the joint begins at the start of natural movement deceleration
and concludes at the end of the acceleration of the next movement. If you select a fly percentage
of 75%, the joint begins after the execution of a value equal to 25% of deceleration, and ends at
75% of the acceleration phase of the next movement.

Acceleration:
Drop-down selection box for selecting the percentage of the movement acceleration/deceleration
profile.
NB: with an acceleration percentage of 100%, you obtain the maximum acceleration/deceleration
ramp.
Enabling (PLC confirmation):
Drop-down selection box for subjecting the execution of the program block for the next
movement to PLC consent. This function allows the development of optimum paths in conditions
of the maximum safety, and synchronisation with the equipment of the station where the robot is
working.
Tip: to make the system as reactive as possible, you are advised to remove the default setting
from all connections between points that don't interact with station equipment.
Movement:
Selection boxes for defining the type of path. The path of each movement can be specified as PTP
or LIN.
NB: by specifying a PTP type path, all the arm axes begin and end their movement at the same
time. If a LIN path is specified, the TCP (tool centre point) of the arm moves from its initial position
to its end position by following a straight line.
Connection:
Drop-down selection box for renumbering an existing connection.
If you select the number of an existing connection, a warning message will remind the
programmer that the selected connection is already used. By confirming this with OK, the two
connections will be swapped over.

Properties page for the ABB S4C robot connection

Speed:
Drop-down selection box for selecting the movement speed percentage.
NB: the selection of the values for the box in question is bound by pre-set constants defined by the
ABB S4C control system.
Fly:
Drop-down selection box for selecting the delay percentage on joint start and end between one
movement and the next.
The paths consisting of several movements will be executed by the robot in a continuous manner
(without interruptions between one movement and the next).

NB: the selection of the values for the box in question is bound by pre-set constants defined by the
ABB S4C control system.

Acceleration:
Drop-down selection box for selecting the percentage of the movement acceleration/deceleration
profile.
NB: the selection of the values for the box in question is bound by pre-set constants defined by the
ABB S4C control system.
Enabling (PLC confirmation):
Drop-down selection box for subjecting the execution of the program block for the next
movement to PLC consent. This function allows the development of optimum paths in conditions
of the maximum safety, and synchronisation with the equipment of the station where the robot is
working.
Tip: to make the system as reactive as possible, you are advised to remove the default setting
from all connections between points that don't interact with station equipment.
Movement:
Selection boxes for defining the type of path. The path of each movement can be specified as
JOINT or LINEAR.
NB: by specifying a JOINT type path, all the arm axes begin and end their movement at the same
time. If a LINEAR path is specified, the TCP (tool centre point) of the arm moves from its initial
position to its end position by following a straight line.
Connection:
Drop-down selection box for renumbering an existing connection.
If you select the number of an existing connection, a warning message will remind the
programmer that the selected connection is already used. By confirming this with OK, the two
connections will be swapped over.

Inserting or modifying a comment text


To insert a new comment
Select Comment from the Insert menu, or position the mouse cursor on the icon
confirm with the left-hand mouse button.
To modify an existing comment
Position the mouse cursor on the comment you want to modify.
Click with the left-hand mouse button to select the comment.
Select Comment from the Properties menu.

Colour:
Drop-down selection box for defining the colour of the text.
Size:
Drop-down selection box for defining the size of the text.
Comment text:
Text box for inserting a comment note on the screen.

, then

Inserting or modifying a sub-program


To insert a new sub-program
Select Sub-program from the Insert menu, or position the mouse cursor on the icon
confirm with the left-hand mouse button.
Write the name you want to assign to the sub-program in the FileName box.
Confirm with OK.

, then

To modify an existing sub-program


Position the mouse cursor on the rectangle that identifies the sub-program you want to modify.
Click with the left-hand mouse button to select the sub-program.
Double click or select Sub-program from the Properties menu.
Click with the left-hand mouse button on the Edit button.
The sub-program edit will open, with the pre-compiled structure and the sections to be
personalised.

NB: this function won't be available if the control being used is the Siemens 611U axis card.

FileName:
The name you want to assign to the sub-program.
Recall code:
Drop-down selection box for defining the recall condition or code of the sub-program.
The recall conditions are as follows:
NEVER The sub-program resides in the system, but is never recalled.
START The sub-program is recalled every time the main program is activated.
ALWAYS
position.

The sub-program is recalled every time there is a request for a new destination

CONNECTION The sub-program is automatically recalled at the start of the movement


corresponding to the connection number that the sub-program is associated with. At the end of
the sub-program execution, the movement (connection) is made to reach the end position. In this
case, the sub-program recall is automatic (i.e. not associated with a PLC request).
The recall codes are as follows:
From 100 to 160,
sub-program.

they correspond to the code used by the PLC to request the execution of the

NB: if the recall code corresponds to a destination point, the sub-program is recalled before
beginning the movement towards the destination status.
Start position:
Drop-down selection box for defining the point where the sub-program is executed.
Conditions:
NO
The sub-program is executed immediately when the request is made by the PLC. The PLC's
execution request is associated with the recall code.
From 0 to 60 The sub-program is executed when the point is reached.
End position:
Drop-down selection box for defining the number of the point where the system is positioned at
the end of the sub-program.

Recall conditions:
NO
This condition is only valid if a start point has not been defined. No point is returned.
From 0 to 60 Number of the point to be returned at the end of the sub-program. The last
movement made in the sub-program must correspond to the selected point.
Connection:
Drop-down selection box for defining the connection that the automatic sub-program recall is
associated with.
Summary of the recall conditions:
Code
Start
End
Connection
position position
Never
No
No
No
Always
No
No
No
Start
Connection

No
No

No
No

No
61..250

100..160
100..160

No
0..60

No
0..60

No
No

100..160

No

0..60

No

Sub-program execution
Never executed
With every request for a new destination
position
Every time the main program is activated
Executed automatically at the start of the
movement corresponding to the
connection number associated with the
sub-program.
Immediate (cannot contain movements)
Executed when the start point is reached.
The end point number is returned at the
end of the sub-program
Immediate. The end point number is
returned at the end of the sub-program

Edit:
Activates the sub-program edit, with the pre-compiled structure and the sections to be
personalised.
Import:
Used to directly import an external program generated in text format (ASCII), in order to simplify
the copy/paste operations (e.g. the program generated with Comau_track for spreading
applications).
Tip: to view the properties and call order of the sub-programs, remove any selected sub-program
and select Sub-program from the Properties menu.
Refer also to chapter 2.13 Inserting or modifying a position recalculation sub-program

Inserting or modifying a position recalculation sub-program


The position recalculation sub-program is automatically inserted when you specify - in the point
properties - that the point can be recalculated. There is one position recalculation sub-program for
all the points that can be recalculated.
Position the mouse cursor on the rectangle that identifies the sub-program you want to
recalculate.
Click with the left-hand mouse button to select the sub-program.
Double click or select Sub-program from the Properties menu.
Click with the left-hand mouse button on the Edit button.
The sub-program edit will open, with the pre-compiled structure and the sections to be
personalised.

FileName:
The name you want to assign to the sub-program.
Recall code:
The recalculation sub-program is recalled every time there is a request for a new destination
position.
Recalculation info:
Activates the edit of a sub-program with the position recalculation example (that refers to pick-up
from a multi-track interlock with 5+5 tracks arranged over 2 different levels.

Tip: in the first section of the example, the physical positional variables are inserted together with
their association with the temporary recalculation variables relating to the current project. These
variables can be copied and pasted in the real recalculation sub-program.
Point association:
In the main program(recommended)
This allows the automatic association of the physical points with those recalculated in the main
program, thereby making it easier for the programmer to write the recalculation sub-program.
In the recalculation program
The programmer has to associate the physical points with those recalculated in the recalculation
sub-program, for particularly complex cases of recalculation requiring irregular point associations.
Edit:
Activates the sub-program edit, with the pre-compiled structure and the sections to be
personalised.
Import:
Used to directly import an external program generated in text format (ASCII), in order to simplify
the copy/paste operations (e.g. the program generated with Comau_track for spreading
applications).
Example:
Portal with 2 axes (X-Z) managed by a C3G robot that picks up a piece in position 1 (palletised) and
deposits it in position 2 (fixed).
The representation with COMAU_PRO will be as follows:

For example, let's suppose that the pick-up can be made in 3 different positions. The position is
received by C3G with the $WORD[30] variable, and the 3 positions are arranged in the following
way:

The new status 4 appears, with the high_pick-up name used to bring the robot to its vertical
position above the pick-up point.
It is necessary to specify in COMAU_PRO that status 1 and status 4 are associated with
recalculated positions (i.e. that the position of these points in space may vary according to the
appropriate calculation operations to be written in the position recalculation sub-program).
To make the movements, the PLC will always command the robot to position 1, then position 2
and finally position 0. Before commanding it to position 1 however, it must provide the system
with the information needed to perform the position recalculation: in fact the path connecting
status 0 with 1 involves statuses with recalculated positions.
In the position recalculation file, the physical points must be associated with the temporary
recalculation variables.
When the recalculation is enabled, the indication of the position recalculation sub-program (just
one for all the points) is automatically inserted.
For each point on which recalculation is enabled, the system assigns the associated positional
variable lp in order to avoid modifying the physical point.
----------- recalculation sub-program ----------------------IF ($WORD[30] = 1) THEN
-- Associations of physical points -> recalculated points (user program)
lp_1_pick-up:= vp_1_pick-up -- point 1
lp_4_high_pick-up:= vp_4_high_pick-up -- point 4
ENDIF
IF ($WORD[30] = 2) THEN
lp_1_pick-up:= vp_1_pick-up -- point 1
lp_4_high_pick-up:= vp_4_high_pick-up -- point 4
lp_1_pick-up.x := lp_1_pick-up.x + 100
lp_4_high_pick-up.x := lp_4_high_pick-up.x + 100

ENDIF
IF ($WORD[30] = 3) THEN
lp_1_pick-up:= vp_1_pick-up -- point 1
lp_4_high_pick-up:= vp_4_high_pick-up -- point 4
lp_1_pick-up.x := lp_1_pick-up.x + 150
lp_1_pick-up.z := lp_1_pick-up.z + 30
lp_4_high_pick-up.x := lp_4_high_pick-up.x + 150
lp_4_high_pick-up.z := lp_4_high_pick-up.z + 30
ENDIF
--------------- sub-program end ---------------------------During the point acquisition phase, only the positions relating to pick-up 1 are set. The positions
for the subsequent pick-ups will be calculated automatically on the basis of the PLC request.
Inserting or modifying the auto sequence
The auto sequence allows the system to make a pre-search and fill in the matrix of the movements
that the manipulator must make in order to reach the new destination point (according to the
automatic cycle).
This pre-search means the system is already ready and can therefore begin the movement more
quickly when the PLC requests the new destination status. If the PLC requests a point other than
the pre-calculated one (for a condition other than the normal automatic cycle), the search will be
made again and the movement matrix will be filled in again.
To insert the automatic sequence
Select Auto sequence from the Insert menu.
The name is attributed automatically and cannot be modified.
To modify the automatic sequence
Position the mouse cursor on the rectangle that identifies the auto sequence.
Click with the left-hand mouse button to select the auto sequence.
Double click or select Auto sequence from the Properties menu.
Write - in sequence and separated by commas - the numbers of the points that the manipulator
must reach in order to perform the automatic cycle.

Inserting or modifying the point sequence


The point sequence (only valid for Comau, Kuka and ABB controls) allows the programmer to
define the order in which the points must be inserted in the Point-taking file.
The Point-taking file is only used during the commissioning of the station, in order to speed up
the learning of the positional variables and points used in the technological program Main* .
In any case, the operator must remember that if the point sequence is not inserted, or some
positional variables are omitted, the points indicated in the project will be inserted at the end of
the Point-taking file, only once and in rising order.
To insert the point sequence
Select Point-taking seq. from the Insert menu.
The name is attributed automatically and cannot be modified.
To modify the point sequence
Position the mouse cursor on the rectangle that identifies the point sequence.
Click with the left-hand mouse button to select the point sequence.
Double click or select Point-taking seq. from the Properties menu.
Write - in sequence and separated by commas - the numbers of the points to be inserted in the
Point-taking program.

Personalising the gripper texts


The movement of the actuators on the robot gripper is a utility for speeding up the point
acquisition phase.
The gripper texts are shown on the programming terminal, and used for the manual movement of
the grippers (by means of buttons U1 and U2 of the PT). These commands are only enabled during
the point-taking phase, with the guards open.
NB: for gripper movement with the guards open, it is necessary to enable both the software (PLC)
and the hardware.
To personalise the gripper texts
Select Gripper texts from the Properties menu.

For the Comau C5G control


from ComauPro version
10.06, refer to the next
paragraph!

Grippers:
Drop-down selection box for selecting the number of grippers in the unit.
Gripper unit:
Text box for inserting the name you want to give the gripper unit.
Work movement:
Text box for inserting the text you want to assign to the gripper work movement.
Idle movement:
Text box for inserting the text you want to assign to the gripper idle movement.
NB: the gripper texts can be personalised for all robot controls apart from the SIEMENS ones.
Personalisation of gripper texts for Comau C5G controls and ComauPro version 10.06
Starting from ComauPro version 10.06, up to 8 gripper units (with 8 grippers per unit) can be set
for moving the gripper actuators of the Comau C5G controls. As with the previous versions, this
utility can only be used with the control in programming mode for the point-taking phase.
To personalise the gripper texts
Select Gripper texts from the Properties menu.

Set the number of units

Set the number of


grippers in the unit

No. of units: combo box for setting the number of gripper units on the machine.
Groups 1->8: text boxes for setting the names of the gripper units.
No. of grippers: combo box for setting the number of grippers for each unit.
Grippers 1->8: text boxes for setting the names of the grippers in the unit.

Once the unit/gripper texts have been personalised and the program is generated, the Grp_Man
routine will be inserted in the output of the files generated. Once this routine has been executed,
it creates a window on the robot TP consisting of two combo boxes - one for selecting the unit and
the other for selecting the gripper. There are also two buttons - Work and Rest - for executing
the command.
Snapshot of Grp_Man:

NB: for gripper movement with the guards open, it is necessary to enable both the software (PLC)
and the hardware.

Robot gripper Input/Output remoting (for C3G only)


In order to use Comau_pro on existing systems (re-equipping) that have an on-board robot
directly wired to I/O cards inside the control, the I/Os can be remoted to the PLC that controls the
station by supporting the signals on a SW interface via field BUS (Profibus, InterBus, etc.).
NB: the I/O remoting function is currently only active for the C3G control of the COMAU robot. It
can be extended to the other robot controls managed by Comau_pro).
To remote gripper inputs and outputs
Select I/O from the Properties menu.
3.16.2 Remoting the Inputs

IOM card gripper INPUTs:


Info box with the physical address of the Inputs that will be automatically associated with the
$WORD selected.
Activate $DIN copy on $WORD:
Box for activating the copying of the logic status of the C3G Inputs on the relative associated
$WORD.
$WORD:
Selection box for choosing the $WORDs of the C3G-PLC interface. They can be dedicated to the
association of the C3G control inputs with the PLC inputs.

Word description (signals from the PLC):


A reminder for the programmer when selecting the $WORDs to be used.
3.16.3 Remoting the Outputs

$WORD:
Selection box for choosing the $WORDs of the C3G-PLC interface. They can be dedicated to the
association of the PLC outputs with the C3G control outputs.
Activate $WORD copy on $DOUT:
Box for activating the copying of the logic status of the $WORD on the relative associated C3G
outputs.
IOM card gripper OUTPUTs:
Info box with the physical address of the Outputs that will be automatically associated with the
$WORD selected.
Word description (signals from the PLC):
A reminder for the programmer when selecting the $WORDs to be used.
Generating programs
Once the graphic project has been written, or after every modification, the main program, point
program and any sub-programs (divided by channel) must be generated and loaded in the current
control.

NB: any subsequent modifications must always be executed via Comau_pro (not directly in the
files generated).
Select Generate from the File menu, or position the mouse cursor on the icon
with the left-hand mouse button.

, then confirm

Program generation page for the SIEMENS 611U axis card

Selecting the channels:


Selection box for choosing the channel(s) that you want to generate programs for.
Output directory:
Selection box for choosing the destination drive and directory for generating the programs. Use
the Browse button

DB data block:
For each channel, write the number of the data block (DB) used in the PLC program.

Program generation page for the SIEMENS 840D control

Selecting the channels:


Selection box for choosing the channel(s) that you want to generate programs for.
Output file:
Selection box for choosing the program or group of programs to be generated.
Output directory:
Selection box for choosing the destination drive and directory for generating the programs. Use
the Browse button

Name of the main program:


For each channel, write the name to be given to the main program.
Name of the point program:
The name of the point program is inserted automatically when you select the Siemens 840D
control. There is one point program for all the channels.
The name is defined by the system, and cannot be modified.
DB number for the point program:
The standard Siemens data block (DB) number for managing point self-learning (GUD) via the
hand-held programming terminal.
NB: the generation of the data block (DB) for point self-learning is subject to the selection of the
Point prog. for HH from the Output file window.

Program generation page for the COMAU C3G/C4G/C5G robot

Selecting the channels:


Selection box for choosing the channel(s) that you want to generate programs for.
Output file:
Selection box for choosing the program or group of programs to be generated.
Output directory:
Selection box for choosing the destination drive and directory for generating the programs. Use
the Browse button

Name of the main program:


For each channel, write the name to be given to the main program.
Name of the point program:
For each channel, write the name to be given to the point-taking program.
C4G system SW:
Select the version of the system SW installed on the C4G to ensure the correct generation of the
variables used for managing the $TOOLs and $FRAMEs.

Program generation page for the ABB, KUKA robot

Selecting the channels:


Selection box for choosing the channel(s) that you want to generate programs for.
Output file:
Selection box for choosing the program or group of programs to be generated.
Output directory:
Selection box for choosing the destination drive and directory for generating the programs. Use
the Browse button

Name of the main program:


For each channel, write the name to be given to the main program.
Name of the point program:
For each channel, write the name to be given to the point-taking program.

Viewing the planned path


Viewing the calculated path
The possibility to view the calculated path allows the programmer to check the path that the
system follows when executing the work cycle.
It's an extremely powerful and handy tool, as it means the work path can be checked already in
the project phase. If the calculated path is different from the one being planned, the programmer
can intervene ahead of the commissioning phase.
To insert the point sequence
Click with the left-hand mouse button on the Start button
Click with the left-hand mouse button on the starting point or connection for viewing the
calculated path.
Click with the left-hand mouse button on the End button
Click with the left-hand mouse button on the end point.
The connections between the starting point/connection and the end point will be highlighted in
red.
Click with the left-hand mouse button on the Off button
NB: as an alternative to the buttons on the toolbar, you can select Path from the View menu.

View the double paths


In fairly complicated projects with different cycle conditions, the system sometimes calculates
more than one path to arrive at the same end position.
The path calculation is made on the basis of the fewest number of points that the system must
pass through in order to reach the end position. If the system comes up with several paths (with
the same number of points) for arriving at the end position, the choice will fall on the first
connection (from the starting point) with the lower number.
Example:

Starting from point 0 to reach point 2, the system finds two paths with the same number of
points. The calculated path will be the one that passes through status 1, as the first connection
from point 0 towards point 2 with the lower number is the one joining status 0 with status 1.
To view the double paths
Click with the left-hand mouse button on the
button.
If there are no double paths, this button is disabled.

Example of a diagram.
Example of a graphic cycle produced with Comau_pro.

Interface with the PLC


Exchange data - SIEMENS (840D) numerical control and PLC
With regards communication between the CNC and PLC, each channel has been
assigned 3 bytes of the Dual Port Ram (DPR) with standard functions and 7 bytes for
specific management.
To ensure compatibility between the management of the work cycle created with
Comau_pro and other NC applications on different channels (e.g. processing modules
with standard PLC/CNC interface), there is the possibility to set an independent DPR
area for each channel at the start. This address is set on the Setting the channel data
page. By default, the values are 0 for channel 1, 10 for channel 2, 20 for channel 3, etc.
The data received on the DPRs are subsequently transferred to local variables (R
parameters of the CNC) as the latter can be managed more quickly. In addition, if the
PLC is not yet ready for writing the DPR data, the test of the CNC program can be made
by setting the R variables locally.
Mapping the CNC - PLC exchange signals
CNC DPR (Input)

DESCRIPTION

PLC (Output)

$A_DBB[0] --R0
$A_DBB[1] --R1

Current point/connection channel 1


Type of element - channel 1

$A_DBB[2] --R2

Destination point - channel 1

DB81.DBB50 work cycle


DB81.DBB60 dry cycle
DB81.DBB51 work cycle
DB81.DBB61 dry cycle
DB81.DBB52 work cycle
DB81.DBB62 dry cycle

$A_DBB[3]...[9]

Available - channel 1

$A_DBB[10] --R0
$A_DBB[11] --R1

Current point/connection channel 2


Type of element - channel 2

$A_DBB[12] --R2

Destination point - channel 2

$A_DBB[13]...[19]

Available - channel 2

DB82.DBB50 work cycle


DB82.DBB60 dry cycle
DB82.DBB51 work cycle
DB82.DBB61 dry cycle
DB82.DBB52 work cycle
DB82.DBB62 dry cycle

Unlike the PLC/NC dialogue for data exchange via the DPR, the CNC informs the PLC of
the value of the point/connection via the H1 auxiliary function because these variables
are written very quickly. The value of the point/connection is memorised by the PLC on
a support DB, and decoded in order to manage the movements of the functional
group. This value is then transferred back to the CNC on the DPR, so that the system
can calculate the cycle resumption path following a CNC reset.
Exchange data - COMAU robot (C3G/C4G) and PLC
Within the overall PLC software standardisation project, also the communication
between the C3G/C4G and the PLC was standardised, dedicating 1 word to each
channel and 3 words for specific management. If the application has only one ARM,
the words dedicated to the additional arms can be used as you prefer for specific
management.
Mapping the C3G/C4G - PLC exchange signals
C3G/*C4G (Output)

DESCRIPTION

PLC (Input)

WORD[17] /*[100]

System signals

EW62

WORD[18] /*[101]

Current point/connection/position set - ARM1 EW64

WORD[19] /*[102]

Current point/connection/position set - ARM2 EW66

WORD[20] /*[103]

Current point/connection/position set - ARM3 EW68

WORD[21] /*[104]

Current point/connection/position set - ARM4 EW70

WORD[22..23]
/*[105..106]

Application available

EW72..74

WORD[24] /*[107]

Gripper command

EW76

C3G/*C4G (Input)

DESCRIPTION

PLC (Output)

WORD[25] /*[108]

System signals

AW62

WORD[26] /*[109]

Request for current destination point and


position set - ARM2

AW64

WORD[27] /*[110]

Request for current destination point and


position set - ARM2

AW66

WORD[28] /*[111]

Request for current destination point and


position set - ARM3

AW68

WORD[29] /*[112]

Request for current destination point and


position set - ARM4

AW70

WORD[30-31] /*[113-114]
WORD[32] /*[115]

Application available

General override

AW72-74
AW76

NB: the interface WORDs used by the C3G are reserved (not available) with the C4G.

Exchange data - COMAU robot (C5G) and PLC


The exchange signals between a C5G type control and the PLC are passed via
$FMI/$FMO ports. These correspond to the inputs and outputs of the C5G.
**Mapping the C5G - PLC exchange signals
C5G (Output)
DESCRIPTION
Word (16 bits)

PLC (Input)

$FMO[1]

System signals

EW62

$FMO[2]

Current point/connection/position set - ARM1

EW64

$FMO[3]

Current point/connection/position set - ARM2

EW66

$FMO[4]

Current point/connection/position set - ARM3

EW68

$FMO[5]

Current point/connection/position set - ARM4

EW70

$FMO[6..7]

Application available

EW72..74

$FMO[8]

Gripper command

EW76

C5G (Input)
Word (16 bits)

DESCRIPTION

PLC (Output)

$FMI[1]

System signals

AW62

$FMI[2]

Request for current destination point and


position set - ARM2

AW64

$FMI[3]

Request for current destination point and


position set - ARM2

AW66

$FMI[4]

Request for current destination point and


position set - ARM3

AW68

$FMI[5]

Request for current destination point and


position set - ARM4

AW70

$FMI[6-7]

Application available

AW72-74

$FMI[8]
General override
AW76
**NB : the initial physical addresses of the $FMIs and $FMOs, as well as those of the
PLC I/Os, must correspond to the fieldbus configuration and the channel property
settings.
Exchange data - KUKA robot (KRC2) and PLC
Within the overall PLC software standardisation project, also the communication
between the KRC2 and the PLC was standardised, dedicating 64 Outputs / 64 Inputs
(4+4 word) to the interface.
Mapping the KRC2 - PLC exchange signals
KRC2 (Output)

DESCRIPTION

PLC (Input)

OUT[1-8]

System signals

EB116

OUT[9-16]

Gripper command management

EB117

OUT[17-32]

Current point/connection/position set - arm

EB128-129

OUT[33-40]

PLC echo request for end destination

EB130

OUT[41-64]

Application available

EB131-132-133

KRC2 (Input)

DESCRIPTION

PLC (Output)

INPUT[1-8]

System signals

AB116

INPUT[9-16]

General override

AB117

INPUT[17-32]

Request for end destination/position set - arm

AW128

INPUT[33-64]

Application available

AW130-132

Exchange data - ABB robot (S4C) and PLC


Within the overall PLC software standardisation project, also the communication
between the S4C control and the PLC was standardised, dedicating 128 Outputs / 128
Inputs (8+8 word) to the interface.
Mapping the S4C - PLC exchange signals
S4C (Output)

DESCRIPTION

OUT[1-16]

System signals

OUT[17-32]

Current point/connection/position set - arm

OUT[33-40]

PLC echo request for end destination

OUT[41-48]

Gripper command management

OUT[49-52]

Work area management

OUT[53-128]

Application available

S4C (Input)

DESCRIPTION

INPUT[1-16]

System signals

INPUT[17-32]

Request for end destination/position set - arm

INPUT[33-39]

General override

INPUT[40]

Robot automatic mode

INPUT[41-128]

Application available

Exchange data - SIEMENS (611U) axis card and PLC

PLC (Input)

PLC (Output)

NB: as the Siemens 611U axis card is integrated with the PLC, there is no need for
further exchange data.

Summary of PLC-Manipulator dialogue


PLC-Manipulator

Manipulator-PLC

61
1
62
63
65
2
66
64
0

The interface between the PLC and the decentred system control unit may be of the
PROFIBUS, PROFINET, INTERBUS or RIO type.

You might also like