C-Gate Carola Requirements EN
C-Gate Carola Requirements EN
requirements
2024.2.0-DEV
Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2
1 Introduction
For some C-Gate functions, it is necessary for information to be passed to C-Gate from the Carola program. Please refer to
the relevant sections for the necessary blocks and instructions for the appropriate functionality.
If you use the ReadVar data structure or OPCUAVAR command in another context, ensure that the areas used do not
overlap. Please note in addition that the index used in the Carola program is not the same index as on the web interface.
The values are passed to C-Gate by the ReadVar data structure. In the controller, the first index is 1 and the last is 100.
In C-Gate, the first index is 0 and the last one 99. A value that is stored in the controller under index 50 can be accessed in
C-Gate under index 49.
Please note that the Carola code examples explained below might already be stored in full or in part in the master program.
Please compare the sections and adapt them if necessary. A duplication of functions and variables is detected as an error
by the Carola interpreter.
Note: Changes to the QIROX WriteVar variables can influence the Carola program flow.
Note: Please use Adobe Acrobat Reader to open this file if you want to copy the Carola programme code.
The following program sections must be stored in the master and component programs respectively to determine the actual
and OK quantities. It is important that the following procedures have exclusive use of index range 94 to 100, and it can not
be used for other purposes. The range might be extended in the future.
The first lines are necessary so that variables can be imported from other programs and written. They are placed immedi-
ately after the RESTART instruction.
RESTART
! VARIABLE DECLARATION
VAR SEL, ERG
STRING VAR COMPSTAT, COMPQUAL
PUBLIC STRING VAR COMPTYPE,COMPVARI,COMPSERI,COMPSTEP,COMPSEAM
This block defines a procedure that passes to C-Gate the information that a component is starting. The variables used below
must first be set in the component program.
3
STRHND (0,COMPTYPE,'NODATA',ERG)
IF ERG=1 THEN BEGIN
LOPCUA1:
WRITE ('DO NOT WRITE VARIABLE >COMPTYPE< YET.')
WAITM(500)
PAUSE
JUMP LOPCUA1
END
COMPSTAT := 'START'
COMPQUAL := 'IN_PROGRESS'
COMPSEAM := ''
OPCUAVAR(0,100,COMPTYPE,'COMPTYPE')
OPCUAVAR(0,99, COMPVARI,'COMPVARIANT')
OPCUAVAR(0,98, COMPSERI,'COMPSERNO')
OPCUAVAR(0,97, COMPSTEP,'COMPSTEPNAME')
OPCUAVAR(0,96, COMPSTAT,'COMPSTATUS')
OPCUAVAR(0,95, COMPQUAL,'COMPQUALITY')
OPCUAVAR(0,94, COMPSEAM,'COMPSEAMNAME')
ENDP
This block defines a procedure that passes to C-Gate the information that a component has ended.
COMPTYPE := ''
COMPVARI := ''
COMPSERI := ''
COMPSTEP := ''
COMPSTAT := ''
COMPQUAL := ''
COMPSEAM := ''
OPCUAVAR(0,100,COMPTYPE,'COMPTYPE')
OPCUAVAR(0,99, COMPVARI,'COMPVARIANT')
OPCUAVAR(0,98, COMPSERI,'COMPSERNO')
OPCUAVAR(0,97, COMPSTEP,'COMPSTEPNAME')
OPCUAVAR(0,96, COMPSTAT,'COMPSTATUS')
OPCUAVAR(0,95, COMPQUAL,'COMPQUALITY')
OPCUAVAR(0,94, COMPSEAM,'COMPSEAMNAME')
WAITM(100)
4
ENDP
This block defines a function that passes to C-Gate the information that a new seam is starting. The name of the seam must
be written to the COMPSEAM variable before the procedure is called.
! SEAM START
PUBLIC PROC SEAMSTRT
OPCUAVAR(0,94, COMPSEAM,'COMPSEAMNAME')
WAITM(100)
ENDP
This block defines a function that passes to C-Gate the information that the current seam has ended.
! SEAM END
PUBLIC PROC SEAMEND
COMPSEAM := ''
OPCUAVAR(0,94, COMPSEAM,'COMPSEAMNAME')
WAITM(100)
ENDP
This block defines a function that asks on the teach pendant whether the component is OK or not. The check is based on a vi-
sual inspection by the worker, and blocks subsequent program flow until something is entered. Wording IS THE COMPONENT OK=1
can be changed to how you want it.
This block defines a function that automatically (without prompting) sets the component quality to OK. This function can be
used if you do not want to record the quality of the OEE dynamically, but still want to have the overall OEE metric calculated
correctly.
Please import the variables and procedures from the master program.
5
• COMPTYPE : Type of component.
• COMPVARI : Variant of the component.
• COMPSERI Serial number of the component. If no value is set, C-Gate automatically creates a serial number based
on a time stamp.
• COMPSTEP : Name of the production step. The value is important if the component is processed at several stations.
• COMPSEAM : Name of the seam. A seam can consist of several web segments.
Please import the variables and procedures from the master program.
RESTART
MAIN
In the programme flow, set at least the mandatory fields and, if necessary, also the optional fields. As soon as all fields are
set, call the procedure COMPSTART . If you have purchased the module C-Gate.QM, you can additionally define seams
and structure the component record more finely. To do this, use the procedures SEAMSTRT and SEAMEND . As soon as
the part is finished and you want to set part quality from the Carola programme, call either COMPQAUT or COMPQMAN to
transfer the quality data. If you have purchased the module C-Gate.QM, the part quality is automatically determined with
the help of the QIROX SD monitoring. Calling the procedure COMPQAUT or COMPQMAN has no effect on the component
protocol.
To finish the component, call the procedure COMPEND . The order of the calls is important.
Please note that up to one second must elapse between calling COMPEND and restarting a component with COMPSTART ,
as otherwise the end signal may be lost due to a data synchronisation in the controller. It is planned that this limitation will
be removed in one of the upcoming software versions for the robot controller.
! OPTIONAL
! COMPVARI := 'XL'
! OPTIONAL
! COMPSERI := '1234567890'
! OPTIONAL
! COMPSTEP := 'FLOOR'
6
! START OF THE COMPONENT
CALL COMPSTART
! ***************
! COMPONENT PROGRAM
! ***************
! ***************
! PROGRAMME FILLET WELD 1. FOR EXAMPLE, VARIOUS GC MOVEMENTS.
! ***************
! ***************
! PROGRAMME FILLET WELD 2. FOR EXAMPLE, VARIOUS GC MOVEMENTS.
! ***************
CALL SEAMEND
The following Carola programme creates a component with two production steps. The production steps can either be
welded sequentially on one robot or in parallel on several. The prerequisite for this is that the steps are combined in a
protocol:
• Type, variant and serial number must be set the same on all robots.
• The corresponding component template must have the correct minimum number of production steps set. In this
case, two production steps are welded, so the number must be set to at least the value two.
7
RESTART
EXTERNAL STRING VAR COMPTYPE,COMPVARI,COMPSERI,COMPSTEP,COMPSEAM FROM MASTER
EXTERNAL PROC COMPSTART,COMPEND,COMPQMAN,COMPQAUT,SEAMSTRT,SEAMEND FROM MASTER
MAIN
! ***************
! PRODUCTION STEP 1
! ***************
COMPTYPE := 'BOILER'
COMPVARI := '80KW'
COMPSERI := '0042012342'
COMPSTEP := 'FLOOR'
CALL COMPSTART
CALL SEAMEND
CALL COMPQAUT
CALL COMPEND
! ***************
! PRODUCTION STEP 2
! ***************
COMPTYPE := 'BOILER'
COMPVARI := '80KW'
COMPSERI := '0042012342'
COMPSTEP := 'COVER'
CALL COMPSTART
8
CALL SEAMSTRT
! PROGRAMME FILLET WELD 4. FOR EXAMPLE, VARIOUS GC MOVEMENTS.
CALL SEAMEND
CALL COMPQAUT
CALL COMPEND
END
3 Instructions
If you are or have been a PDM or UMS customer and one of the two options is activated in the controller configuration, the
following note must be imperatively be observed! If one of the two options is activated without the robot controller being
connected to the corresponding PC application, this will lead to gaps in the data stream that may last for up to 5 seconds
and falsify the component protocol significantly. Please either connect the robot controller to the PC application or have
the corresponding option removed from the configuration.
If you are working on the same component with multiple robots and would like to merge all data in one component log in
the C-Gate.QM module, please contact CLOOS Service for more information. Otherwise please leave the COMPSERI field
empty or else undesired side effects can occur in the OEE calculation.
4 Variables
You have the option of attaching variables to the component protocol from the Carola programme. To do this, use the
command OPCUAVAR (see example). If the name (last parameter) has the prefix ’COMPVAR_’, the variable is attached to
the component. If the name has the prefix ’STEPVAR_’, the variable is attached to the component step. If the name has the
prefix ’SEAMVAR_’, the variable is attached to the current seam. Only one value can be stored for each selected name. The
last value that was last set with the respective name is stored in the log. The prefix of the name is not stored. The value must
be reset before the seam, step or component is completed. If this is not done, the value is also appended to the following
element. Integers, comma numbers and texts can be saved.
CALL SEAMSTRT
OPCUAVAR(0,1, 'EXAMPLE-VALUE','COMPVAR_SEAM_MEASURE_A')
OPCUAVAR(0,1, '','')
CALL SEAMEND