Escolar Documentos
Profissional Documentos
Cultura Documentos
la Robótica
Guía de integración
RDGI0011_H_Guia Integracion Promia SRE_Esp.doc
Guía de integración
Aplicativo Promia 50 – Manutención + Aplicación SRE
Documento ID: RDGI 0011
Revisión: H
Las informaciones contenidas en el presente documento pueden ser modificadas sin previo aviso y
no se deben considerar como un compromiso por parte de ABB France s.a.s. ABB France s.a.s
rechaza cualquier responsabilidad relativa a los eventuales errores que pueda contener este
documento.
ABB France s.a.s no puede ser considerado, en ningún caso, como responsable de los daños que
puedan emanar de la utilización de este documento o de los software o materiales descritos en este
documento.
Se pueden obtener otros ejemplares de este documento ante ABB France s.a.s, al precio actual.
© ABB
Vista general 2
Documentación Promia 2
1 Seguridad 2
2.1 Generalidades...................................................................................................................2
2.2 Lanzamiento de RobotStudio ............................................................................................2
2.3 Creación de un nuevo sistema..........................................................................................2
2.4 Inserción y configuración de la opción software................................................................2
7.1 Generalidades...................................................................................................................2
7.2 Estructura del módulo PRG_MVT.MOD............................................................................2
7.3 Consideraciones a tomar en cuenta en un entorno multi-robot.........................................2
7.3.1 Recordatorio de las funcionalidades «MultiMove»...............................................2
7.3.2 Casos particulares de las trayectorias de Repli y de lanzamiento..........................2
7.4 Aprendizaje de los puntos de Repli y de Rebouclage .......................................................2
7.5 Programas de trabajo........................................................................................................2
7.6 Trayectorias de trabajo .....................................................................................................2
7.7 Programas de servicio ......................................................................................................2
7.8 Gestión EPS y SafeMove..................................................................................................2
7.9 Otras reglas diversas – FAQ .............................................................................................2
7.10 Escritura de programas SRE.............................................................................................2
7.10.1 Utilización de las instrucciones aplicación en las rutinas de trabajo .....................2
7.10.2 Configuración de las solicitudes de servicio .........................................................2
7.10.3 Configuración de los programas de servicio .........................................................2
Instrucción SR_CHG_ELEC - Especificación del tipo de cambio de electrodos............2
Instrucción SR_ROD_ELEC - Especificación del tipo de rodaje....................................2
7.10.4 Programación de las trayectorias de servicio.........................................................2
8 Cambios códigos 2
15.1 Cambios autómata relacionados con los estados y eventos robot ..............................................2
15.2 Cambios autómatas en trayectoria (órdenes - eventos) ............................................................2
15.3 Cronogramas a respetar.......................................................................................................2
16 Índice y anexos 2
Vista general
Las nociones de base, tales como las secuencias, controles dinámicos, puntos de
Repli, Rebouclage, son abordadas en el manual del usuario y las normas Renault
disponibles en el sitio http://www.cnomo.com.
Utilización
Condiciones previas
El lector debe:
Estar familiarizado con la utilización del pupitre del IRC5,
Haber recibido una formación sobre la programación de base de los
robots.
Referencia Documento
Manual Producto, procedimientos IRC5 3HAC 021313-001
Manual Producto, referencias IRC5 3HAC 021313-001
Inicio – IRC5 y RobotStudio Online 3HAC 021564-001
Elemento de la interfaz
In the Open File dialog
usuario, como menú, Negrita
box, click OK
cuadro de diálogo, botón.
To open the help, press
Teclas del teclado Mayúsculas
the F1 key.
Mensajes ordenadores e
Monospace (courrier) MoveJ
instrucción RAPID
Variables en los mensajes Monospace (courrier) PROC
ordi/instrucción RAPID cursiva RoutineName()
See The RobotStudio
Enlaces hipertexto Cursivas en azul Online Operator’s
Manual
Referencias a otros See the RAPID reference
manuales o fuentes de Cursiva manual for further
información information.
10
RDGI 0011 Revisión: H
Vista general
Revisiones
Generalidades
Manuales Hardware
Todo el hardware, robots y armarios de control, es suministrado con un
Manual producto dividido en dos partes:
Manual Producto, procedimientos
Informaciones seguridad
Instalaciones y puesta en marcha (descripciones de la instalación
mecánica, conexiones eléctricas y carga software)
Mantenimiento (descripciones de todos los procedimientos de los
mantenimientos preventivos requeridos, incluyendo la
periodicidad)
Reparación (descripciones de todos los procedimientos de
reparación, incluyendo las piezas sueltas)
Procedimientos adicionales, si procede (calibrado, desinstalación)
Manual Producto, referencias
Referencias (Número de artículo para la documentación citada en
el manual producto, procedimientos, lista de herramientas, normas
de seguridad)
Lista de piezas sueltas
Dibujos o vistas detalladas
Esquemas eléctricos
Manuales RobotWare
Los siguientes manuales describen el software robot en general y contienen
las informaciones de referencias aplicables.
• RAPID Vista general: Vista general del lenguaje de programación
RAPID.
• RAPID Manual de referencia parte 1: Descripción de todas las
instrucciones RAPID.
• RAPID Manual de referencia parte 2: Descripción de todas las funciones
RAPID, así como los tipos de datos.
• Manual de referencia técnico – parámetros sistema: Descripción de los
parámetros sistema y configuración.
Manuales de aplicación
Manuales operador
14
RDGI 0011 Revisión: H
Documentación Promia
Documentación Promia
Generalidades
Promia es una familia de software de aplicación destinada para los sistemas robot
IRC5. Todos estos software tienen una parte común, relacionada con los procesos
de manutención, a la cual se le puede añadir una parte específica a una aplicación,
a un proceso.
1 Seguridad
1.1 A propósito del capítulo Seguridad
Introducción a la Seguridad
Este capítulo describe los principios de seguridad y los procedimientos a utilizar
cuando un robot o un sistema de robot se encuentran en operación.
No cubre ni el diseño ni la instalación de la seguridad del equipamiento. Estos
temas se encuentran el los Manuales Producto entregados con el sistema robot.
Regulación seguridad
Antes de comenzar a trabajar con el robot, asegúrese que conoce las reglas de
seguridad descritas en el Manual Operador – IRC5 con FlexPendant.
Normas de seguridad
Norma Descripción
EN ISO 12100-1 Safety of machinery, terminology
EN ISO 12100-2 Safety of machinery, technical specifications
Safety of machinery, safety related parts of control
EN 954-1
systems
EN 775 Manipulating industrial robots, safety
EN 60204 Electrical equipment of industrial machines
EN 61000-6-4
EMC, generic emission
(opción)
EN 61000-6-2 EMC, generic immunity
Norma Descripción
IEC 204-1 Electrical equipment of industrial machines
IEC 529 Degrees of protection provided by enclosures
Norma Descripción
ISO 10218 Manipulating industrial robots, safety
Manipulating industrial robots, coordinate systems and
ISO 9787
motions
Norma Descripción
ANSI/RIA Safety requirements for industrial robots and robot
15.06/1999 systems
ANSI/UL 1740-1998
Safety standard for robots and robot equipment
(option)
CAN/CSA Z 434-03
Industrial robots and robot systems - General safety
(opción)
18
RDGI 0011 Revisión: H
¡Error! Estilo no definido. ¡Error! Estilo no definido.
Vista general
Esta sección indica todos los tipos de advertencias que pueden aparecer durante las
operaciones descritas en el presente manual. Cada advertencia se explica en su
propia sección con:
Un símbolo por nivel de advertencia (PELIGRO, ADVERTENCIA o
PRECAUCION) y tipo de peligro
Una breve descripción de lo que ocurre si el operador / personal de
servicio no elimina el peligro
Una instrucción que permite eliminar el peligro y realizar la operación
manualmente.
Niveles de peligro
El siguiente cuadro define los símbolos de las advertencias utilizadas en este
manual.
Precaución
Consejo
Observación
20
RDGI 0011 Revisión: H
¡Error! Estilo no definido. ¡Error! Estilo no definido.
2.1 Generalidades
Para que pueda crear un sistema, usted debe haber instalado en su ordenador:
RobotStudio,
La versión del software de base «RobotWare» que utilizará.
Usted debe contar con las claves de licencia suministradas con el armario de
control. Estas claves determinan los modelos de robots y las opciones software
correspondientes a su instalación.
Ver además
El procedimiento descrito a continuación resume las principales líneas de la
creación de un sistema que utiliza el aplicativo PROMIA. Para una lista completa
de funcionalidades de instalación de software en un IRC5, remitirse al Manual de
Utilización de RobotStudio, parte «Generador de sistema».
Lanzamiento de la aplicación
1. Hacer clic en
“Generador de sistema”
para crear un nuevo
sistema de control. Esta
función se encuentra
accesible en la pestaña
“Fuera de línea”.
3. Hacer clic en
“Siguiente”
4. Introducir el nombre
del sistema a crear, la
trayectoria/ruta,
introducir el
directorio en el que se
desee almacenar el
sistema, luego hacer clic
en “Siguiente”
NOTA: el nombre de
estos archivos .kxt se
termina por un número
par.
8. En esta pantalla
verificar que las
opciones mandadas
están marcadas. Hacer
descender el cursor.
Verificar las partes
“RobotWare” y
“DriveModule1” (y
otros módulos
variadores en caso de
sistema multi-robot).
9. En esta misma
pantalla
Verificar / adaptar las
opciones de la
aplicación PROMIA.
NOTA: las opciones
disponibles dependen
de la distribución de
Promia, que depende
del cliente y de sus
procesos tomados en
cuenta.
Hacer clic en
“Terminar”
10. Se ha creado el
sistema, ahora se debe
cargar en el
controlador. Hacer clic
en “Transferir a
controlador”
Entre las etapas 9 y 10, se pueden incorporar parámetros sistema que serán
descargados en el armario al mismo tiempo que el software y el aplicativo. Se
almacenarán en la carpeta SYSPAR del sistema y serán cargados automáticamente
durante el arranque del controlador.
Sinóptico de la salvaguarda
Sinóptico de la salvaguarda
3.3 Restauración
Sinóptico de la restauración
Sinóptico
Esta configuración apunta sobre las carpetas SITE para los módulos
personalizables. Por lo tanto, es necesario que la carga de módulos modificados
offline se realice desde esta carpeta SITE.
En la práctica, esto significa que se puede cargar un módulo desde una unidad
USB, para verificar los eventuales errores de sintaxis o de referencia, pero se debe
a continuación copiar este módulo en la carpeta SITE.
Nota: igualmente que la mayor parte de los módulos personalizables son al mismo
tiempo cargados en la tarea de primer plano (de movimiento) y en la tarea de plano
posterior (supervisión). Su toma en consideración requiere por lo tanto un P-Start.
Nota:
Vista general
El aplicativo se instala con un cierto número de datos preconfigurados, y estos
datos toman fundamentalmente dos formas:
Parámetros, en los campos de entradas / salidas (EIO), procesos (PROC),
armario de control (SYS), movimiento (MOC), y IHM (MMC).
Los parámetros EIO y PROC se deben adaptar a las necesidades del Site.
Principio de base
Durante la carga inicial del aplicativo, el archivo EIO.cfg (parámetros de entradas-
salidas) está encargado en función de la configuración red del sitio (Interbus S,
Profibus, FIPIO o Paralelo).
Se pueden desplazar las entradas / salidas, pero se deben respetar ciertas reglas:
Para cada robot n, las ordenes API, de OR1_n a OR16_n, deben tener
direcciones contiguas y formar el grupo « GoOrdresn ».
Principio
PROMIA no controla de forma individual las señales de órdenes y eventos Util, las
controla en forma de grupos. Es el mismo caso para las órdenes Util en S4CPlus,
pero no para los eventos Util.
En IRC5, las órdenes y eventos Util están predefinidas, de forma contigua, en la
tarjeta simulada Cart_Dial_Outil.
Estas órdenes y eventos se pueden conectar a diversos equipos y las entradas y
salidas correspondientes generalmente no son continuas.
#
EIO_UNIT:
-Name "ImgOutil" -UnitType "Virtual" -Bus "Virtual2"
#
EIO_SIGNAL:
-Name "EVOU1" -SignalType "DI" -Unit "C_OUTIL1" -UnitMap "0"
-Name "EVOU2" -SignalType "DI" -Unit "C_OUTIL1" -UnitMap "12"
-Name "EVOU3" -SignalType "DI" -Unit "C_OUTIL1" -UnitMap "3"
-Name "EVOU4" -SignalType "DI" -Unit "C_OUTIL1" -UnitMap "2"
-Name "EVOU5" -SignalType "DI" -Unit "C_OUTIL1" -UnitMap "7"
...
-Name "ImEVOU1" -SignalType "DO" -Unit "ImgOutil" -UnitMap "0"
-Name "ImEVOU2" -SignalType "DO" -Unit "ImgOutil" -UnitMap "1"
-Name "ImEVOU3" -SignalType "DO" -Unit "ImgOutil" -UnitMap "2"
-Name "ImEVOU4" -SignalType "DO" -Unit "ImgOutil" -UnitMap "3"
-Name "ImEVOU5" -SignalType "DO" -Unit "ImgOutil" -UnitMap "4"
...
-Name "ImgEvOut" -SignalType "GO" -Unit "ImgOutil" -UnitMap "0-15"
#
EIO_CROSS:
-Res "ImEVOU1" -Act1 "EVOU1"
-Res "ImEVOU2" -Act1 "EVOU2"
-Res "ImEVOU3" -Act1 "EVOU3"
-Res "ImEVOU4" -Act1 "EVOU4"
-Res "ImEVOU5" -Act1 "EVOU5"
...
-Res "GiEvOu1" -Act1 "ImgEvOut"
Vista general
La configuración de las tareas RAPID está predefinida. Normalmente no se debe
modificar. En particular, no tiene lugar la creación de tareas suplementarias
respecto a las que ya están definidas.
Vista general
La configuración del proceso SRE se efectúa en los parámetros de entradas /
salidas, de movimiento (para las pinzas) y en las rutinas RAPID de
personalización. Ningún parámetro está definido en el archivo PROC.CFG.
Vista general
El aplicativo se instala con un cierto número de datos preconfigurados, y estos
datos toman fundamentalmente dos formas:
Parámetros, en los campos de entradas / salidas (EIO), procesos (PROC),
control de armario (SYS), movimiento (MOC), y IHM (MMC).
Este capítulo trata la personalización de los módulos RAPID que no contienen las
trayectorias. Las reglas relacionadas con el aprendizaje de las trayectorias son
objeto de capítulos específicos.
En un sistema multi-robots, existe una carpeta Site para cada una de las unidades
mecánicas independientes. Estas carpetas se denominan Site1, para la unidad
mecánica no1, Site2, para la unidad mecánica no2, etc.
Las carpetas Site contienen todos los módulos personalizables de Promia para una
unidad mecánica determinada. Su contenido varía en función de los procesos
instalados en esta unidad mecánica.
Personalización integrador
relacionadas con la supervisión
PERSOARP.SYS PERSOARn.SYS
permanente; cargada en plano
posterior únicamente
Vista general
Además de los módulos citados anteriormente, el aplicativo integra igualmente
otros módulos, específicos al proceso y / o al secuenciador.
Estos módulos sólo se encuentran en las carpetas ‘Site’ de las unidades mecánicas
(robot) que aplican la aplicación SRE.
Están predefinidos en función del tipo de secuenciador utilizado.
Vista general
Vista general
La gestión de los códigos de programa de movimiento corresponde con la
selección del trabajo a realizar por el robot en función del estado de la máquina y
del estado pieza del entorno del robot.
Esta selección se realiza por un sistema externo al armario robot el cual genera una
información denominada "código programa" que será transmitida al armario robot.
(El armario sólo realiza la salida sobre el programa solicitado).
No obstante, algunos números de programas están reservados y controlados por el
aplicativo. Los mismos no se deben utilizar para los programas de trabajo. Estos
códigos corresponden a la solicitud de Repli y a los programas de servicio de 1 a 4.
Personalización
Los valores suministrados por definición están adaptados a la definición realizada
por el cliente final; no obstante es posible utilizar valores específicos para sitios
particulares. En ese caso, contactar con el cliente para definir el conjunto de los
códigos a utilizar. Será suficiente modificar los valores de las constantes
siguientes:
Los otros parámetros permiten identificar los números de los códigos de servicio.
Suministro de base ABB:
Vista general
Los códigos ciclos se toman en cuenta, por definición, únicamente en el punto de
Rebouclage. Los diferentes ciclos deberán entonces comenzar y terminarse en este
punto de Rebouclage, según el esquema denominado “la margarita ». Este
comportamiento se puede modificar.
Personalización
La toma en cuenta o no de los códigos programa fuera del punto de Rebouclage
depende de la variable Code_Au_Reb. Por definición esta variable se suministra
en TRUE, lo que significa que los códigos de programas sólo son aceptados en el
punto de Rebouclage. Para poder terminar un ciclo fuera del punto de Rebouclage,
hay que pasar esta variable a FALSE.
Vista general
El comportamiento por definición de Promia para la liberación y el envío de los
fallos al autómata es el siguiente:
La liberación de los fallos con validación típicamente se realiza en el
armario, luego de la desaparición del fallo.
Se señala un fallo al autómata mientras se encuentre presente
Los modos de explotación de algunos clientes pueden imponer que los fallos sean
liberados en el autómata y no en el robot, o que los fallos sean enviados sobre el
frente ascendente.
Personalización
Dos variables permiten configurar el comportamiento en caso de fallo:
La variable AcqDefautsSurAPI especifica si los fallos son liberados
en el robot (FALSE) o en el autómata ((TRUE). En ese caso, no se
solicita ninguna validación en el armario.
La variable MajDefSurRestart especifica si los fallos se mantienen
mientras se encuentren presentes (FALSE) o si se tratan en el frente
(TRUE). En ese caso, la palabra fallo es temporalmente puesta a cero
durante un nuevo lanzamiento del programa, y permite de esta forma
controlar en frente, lado autómata, la aparición de fallos.
!-------------------------
! Liberación de los fallos en el autómata
!-------------------------
CONST bool AcqDefautsSurAPI:=FALSE;
CONST bool MajDefSurRestart:=FALSE;
Botón
Pictograma Soporte Carpeta predefinida
correspondiente
FlashDisk /hd0a/NomDuSystème/REST_ABB
USB interna
/bd0/Backup_DateCourante
(*)
USB
/bd0/Backup_DateCourante
FlexPendant
Red ninguno
Personalización
La personalización se efectúa modificando los parámetros siguientes, los cuales
definen los caminos de acceso a las carpetas de salvaguarda:
El panel operador, los menús del contenedor y los menús de configuración global
se deben modificar con prudencia. Su personalización necesita de nociones más
complejas no descritas aquí. Si resulta necesario modificar estos menús, contactar
con ABB para que le sirva de guía en esta operación.
Vista general
Las E / S dedicadas a esta función por definición están declaradas en una tarjeta
“MANUT ”
14 entradas generales que se pueden utilizar a elección para los controles de los
accionadores o los controles de presencia pieza (de CTRL1 a CTRL14)
10 salidas de control de los accionadores (de PIL1 a PIL10)
Contenido
Esta parte de la configuración describe el comportamiento general de las
secuencias e incluye:
!#####################################
! Definición del número de garras
!#####################################
! NB_SEQ = Número de secuencias efectivamente programadas (16 como
máximo)
! Tab_Seq_Prog: definición de las secuencias programadas en este
módulo:
! 1er elemento = NB_SEQ,
! luego NB_SEQ elementos con los números de las secuencias
! Ejemplos:
! - ninguna secuencia
! CONST núm NB_SEQ:=0;
! CONST núm Tab_Seq_Prog{NB_SEQ+1}:=[0];
! - 3 secuencias, secuencia 1, secuencia 8 y secuencia 12
! CONST núm NB_SEQ:=3;
! CONST núm Tab_Seq_Prog{NB_SEQ+1}:=[3,1,8,12];
CONST núm NB_SEQ:=0;
CONST núm Tab_Seq_Prog{NB_SEQ+1}:=[0];
! Tempo tecno en puesta a punto en SEQ y CPP
CONST núm TEMPO_DEVERM:=0.5;
! Tempo ante info seguido de espera secuencia
CONST núm TEMPO_SEQ_ATT:=2;
! Cuadro de inhibición de las secuencias en puesta a punto
PERS bool Tab_Inhib_Seq{16}:=[FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
FALSE, FALSE];
Ejemplo de personalización
Observación importante
! Controle:=FALSE;
! ENDPROC
!
!=============================================
! !---------------------------------------
! ! ejemplo 2: secuencia controlada por el API
! !El valor de la variable "SeqAPI_Cmd1 vale:
! ! - 1,3,5,7,...,31 para la casilla DESACTIVATE de las secuencias
1,2,3,4,...,16
! ! -2,40,60,8,...0,32 para la casilla ACTIVADA de las secuencias
1,2,3,4,...,16
! !---------------------------------------
!
! !######################
! ! Activa la secuencia 1
! !######################
! PROC Act_Seq1(
! num etat)
!
! TEST estado
! CASILLA DESACTIVADA:
! DesactiveAct CdeSeqAPI1;
! IF NOT SeqEnregSig() THEN
! SetGO SeqAPI_Cmd1,1;
! WaitTime 1.0;
! SetGO SeqAPI_Cmd1,0;
! ENDIF
! CASILLA ACTIVADA:
! ActiveAct CdeSeqAPI1;
! IF NOT SeqEnregSig() THEN
! SetGO SeqAPI_Cmd1,2;
! WaitTime 1.0;
! SetGO SeqAPI_Cmd1,0;
! ENDIF
! DEFAULT:
! ENDTEST
! ENDPROC
!
! !####################
! ! Prueba la secuencia 1
! !###################
! PROC Tst_Seq1(
! num etat,
! INOUT bool Controle)
!
! InitCtrlSeq;
! TEST estado
! CASILLA DESACTIVADA:
! CtrlSeq RetourSeqAPI1,REPOS;
! Controle:=CtrlSeqOK();
! RETURN;
! CASILLA ACTIVADA:
! CtrlSeq RetourSeqAPI1,ACTIF;
! Controle:=CtrlSeqOK();
! RETURN;
! DEFAULT:
! Controle:=TRUE;
! ENDTEST
! Controle:=FALSE;
! ENDPROC
Ejemplo:
Suministro de base:
!######################
! Activa la secuencia 1
!######################
PROC Act_Seq1(
num etat)
TEST estado
CASILLA DESACTIVADA:
! a definir por el usuario
...
CASILLA ACTIVADA:
! a definir por el usuario
...
DEFAULT:
ENDTEST
ENDPROC
Personalizado:
!######################
! Activa la secuencia 1
!######################
PROC Act_Seq1(
num etat)
TEST estado
CASILLA DESACTIVADA:
! a definir por el usuario ...
DesactiveAct PIL1;
ActiveAct PIL2;
DesactiveAct PIL3;
ActiveAct PIL4;
CASILLA ACTIVADA:
! a definir por el usuario ...
ActiveAct PIL1;
DesactiveAct PIL2;
ActiveAct PIL3;
DesactiveAct PIL4;
DEFAULT:
ENDTEST
ENDPROC
Las rutinas Act_Seq también son llamadas al inicio del controlador en un modo
específico que permite registrar las señales puestas en juego por la secuencia. Las
instrucciones «ActiveAct» y «DesactiveAct» son entonces inactivas. Pero
si la programación de las secuencias debe contener otras instrucciones con un
impacto en el entorno (SetGo, por ejemplo), es necesario inhibir estas acciones
utilizando la función SeqEnregSig (véase más arriba el ejemplo típico de
secuencia controlada por el autómata).
Argumentos
ActiveAct signal
Modo operatorio
Esta instrucción sólo se debe utilizar en una rutina Act_Seqx del módulo
MAN_CONF asociada al robot correspondiente.
Ver además
Instrucción/Función Función
Argumentos
DesactiveAct signal
Modo operatorio
Esta instrucción sólo se debe utilizar en una rutina Act_Seqx del módulo
MAN_CONF asociada al robot correspondiente.
Ver además
Instrucción/Función Función
Control de secuencias
Principio: Cada captador puede ser controlado en el estado «1» o «0». Para el
control de una secuencia un ‘Y’ lógico es operado por el sistema entre los
controles de cada captador correspondiente por esta secuencia.
Si las ecuaciones lógicas de las secuencias son más complejas que este simple ‘y’
lógico, será necesario definir además cross-conexiones en los parámetros de
entradas / salidas, para llevarse a ‘Y’ lógicos en las rutinas de control.
Para ello, el integrador debe programar para los dos estados de control,
«DEACTIVATE» (reposo) y «ACTIVATE» (activo), instrucciones específicas que
permitan el control de los captadores: se trata de la instrucción «CtrlSeq» cuyos
argumentos son el nombre de la entrada a probar (CTRL1, DETECT1, etc.) y el
estado esperado (REPOSO = «0» ó ACTIVO = «1»).
El orden de las señales probadas para verificar los estados reposo (DEACTIVATE)
debe ser idéntico al de las señales probadas para verificar el estado activo
(ACTIVATE). Por ejemplo: CTRL1 luego CTRL2 en ambos casos.
Ejemplo:
Suministro de base:
!####################
! Prueba de la secuencia 1
!####################
PROC Tst_Seq1(
num etat,
INOUT bool Controle)
InitCtrlSeq;
TEST estado
CASILLA DESACTIVADA:
! Prueba de la secuencia 1
! a definir por el usuario ...
Controle:=CtrlSeqOK();
RETURN;
CASILLA ACTIVADA:
! Prueba de la secuencia 1
! a definir por el usuario ...
Controle:=CtrlSeqOK();
RETURN;
DEFAULT:
Controle:=TRUE;
ENDTEST
Controle:=FALSE;
ENDPROC
Programación personalizada:
!####################
! Prueba de la secuencia 1
!####################
PROC Tst_Seq1(
num etat,
INOUT bool Controle)
InitCtrlSeq;
TEST estado
CASILLA DESACTIVADA:
! Prueba de la secuencia 1
! a definir por el usuario ...
CtrlSeq CTRL1,REPOSO;
CtrlSeq CTRL2,ACTIVO;
Controle:=CtrlSeqOK();
RETURN;
CASILLA ACTIVADA:
! Prueba de la secuencia 1
! a definir por el usuario ...
CtrlSeq CTRL1,ACTIVO;
CtrlSeq CTRL2,REPOSO;
Controle:=CtrlSeqOK();
RETURN;
DEFAULT:
Controle:=TRUE;
ENDTEST
Controle:=FALSE;
ENDPROC
Argumentos
CtrlSeq signal estado
Modo operatorio
Esta instrucción sólo se debe utilizar en una rutina Tst_Seqx del módulo
MAN_CONF asociada al robot.
Ver además
Instrucción/Función Función
SEQ Instrucción de control y de prueba de secuencias
!#######################
! Inicialización de los CPP
!#######################
PROC Enreg_Cpp()
! Nombres de las señales hasta 8 diferentes
! a definir por el usuario ...
!DefineCPP 1,CPP1;
!DefineCPP 2,CPP2;
ENDPROC
Para personalizar esta rutina en su sitio, basta con crear tantas llamadas a la
instrucción DefineCPP como sean necesarias.
Argumentos
DefineCPP nCPP signal
Modo operatorio
Esta instrucción sólo se debe utilizar en una rutina Enreg_CPP del módulo
MAN_CONF asociada al robot.
Ver además
Instrucción/Función Función
CPP Instrucción de prueba de presencias pieza
Principio
Para cada robot, las órdenes Util, por una parte, y los eventos Util, por otra parte,
deben en principio ser «contiguos por pedazo» y poder estar agrupados en un
máximo de 4 grupos, de longitud variable.
!######################################
! Inicialización de las Ordenes / Eventos Util
!######################################
PROC EnregOrdEvtOut()
! Definición de los grupos de señales
! para las Ordenes / Eventos Util
! a definir por el usuario ...
DefineOrdOut\Group1:="GoOrOu1"\nbSig1:=16;
DefineEvtOut\Group1:="GiEvOu1"\nbSig1:=16;
ENDPROC
Argumentos
DefineOrdOut [Group1] [nbSig1] [Group2] [nbSig2]
[Group3] [nbSig3] [Group4] [nbSig4]
Ejemplo:
DefineOrdOut\Group1:="GoOrOu1"\nbSig1:=5
\Group2:="GoOrOu2"\nbSig2:=11;
Las órdenes Util están repartidas en dos grupos, GoOrOu1 que incluye 5 señales y
GoOrOu2 que incluye 11.
Límites:
se pueden definir de esta forma como máximo 4 grupos. No obstante, no
es necesario repartir las órdenes Util en 4 grupos.
La suma de todos los números de señales utilizados debe ser inferior o
igual a 16.
La asociación entre las señales y las órdenes Util se memoriza por el aplicativo.
Esta asociación tiene lugar en cada inicio del armario y en cada inicio del
programa RAPID al comienzo.
Modo operatorio
Ver además
Instrucción/Función Función
DefineEvtOut Definición de señales eventos Util
Argumentos
DefineEvtOut [Group1] [nbSig1] [Group2] [nbSig2]
[Group3] [nbSig3] [Group4] [nbSig4]
Ejemplo:
DefineEvtOut\Group1:="GiEvOu1"\nbSig1:=5
\Group2:="GiEvOu2"\nbSig2:=10;
Los eventos Util están repartidos en dos grupos, GiEvOu1 que incluye 5 señales y
GiEvOu2 que incluye 10.
Límites:
se pueden definir de esta forma como máximo 4 grupos. No obstante, no
es necesario repartir los eventos Util en 4 grupos.
La suma de todos los números de señales utilizados debe ser inferior o
igual a 16.
Modo operatorio
Ver además
Instrucción/Función Función
DefineOrdOut Definición de señales órdenes Util
!========
! Ordenes
!========
! Texto de las órdenes: 15 caracteres máx
! "123456789012345"
CONST string ORD01:="ORDRE1 ";
….
CONST string ORD16:="ORDRE16 ";
!===============
! Ordenes Util
!===============
! Texto de las órdenes Util 15 caracteres máx
! "123456789012345"
CONST string ORDOU01:="ORDREOUTIL1 ";
…
CONST string ORDOU16:="ORDREOUTIL16 ";
!============
! Eventos
!============
! Texto de los eventos: 15 caracteres máx
! "123456789012345"
CONST string EVE01:="EVENT1 ";
….
CONST string EVE16:="EVENT16 ";
!===================
! Eventos Util
!===================
! Texto de los eventos Util 15 caracteres máx
! "123456789012345"
CONST string EVEOU01:="EVENTOUTIL1 ";
….
CONST string EVEOU03:="EVENTOUTIL16 ";
!============================
! Controels Presencias Piezas
!============================
! Texto de los CPP: 15 caracteres máx
! "123456789012345 "
CONST string CPP_1:="PRESENCE PIECE1";
…..
CONST string CPP_8:="PRESENCE PIECE8";
Utilización
Los mensajes de información y los mensajes de fallos aparecen en la zona
“MENSAJES Y FALLOS” de la pantalla de producción.
!*****************************************************************
!* MENSAJES USUARIO *
!*****************************************************************
!********************Declaración de los mensajes ******************
!
Número de los mensajes CONST num MESS_reserve1:=1;
CONST num MESS_reserve2:=2;
CONST num DEFT_reserve1:=3;
CONST num DVAL_reserve1:=4;
CONST num DVAL_reserve2:=5;
! Dimensión cuadro de los mensajes
CONST num MAX_MESS_UTIL:=5;
CONST MessData MessUtilisateur{MAX_MESS_UTIL}:=[
[MESS_reserve1,"PUM1: reserve ",MESS_INFO ,AUCUN_DEFAUT, 0],
[MESS_reserve2,"PUM2: reserve ",MESS_INFO ,AUCUN_DEFAUT, 0],
[DEFT_reserve1,"PUS1: reserve ",MESS_DEFAUT,AUCUN_DEFAUT, 0],
[DVAL_reserve1,"PUV1: reserve ",MESS_DEFVAL,AUCUN_DEFAUT, 0],
[DVAL_reserve2,"PUV2: reserve ",MESS_DEFVAL,AUCUN_DEFAUT, 0]
];
! ** Perso usuario **
CONST num nMsgAttDebRot:=1;
Modificar el elemento correspondiente en el cuadro
MessUtilisateur (ver a continuación la definición de la estructura
MessData).
Si los 5 mensajes preconfigurados por defecto no son suficientes y si se deben
crear nuevos mensajes, también se debe modificar el tamaño del cuadro de los
Ejemplo de personalización:
!*****************************************************************
!* MENSAJES USUARIO *
!*****************************************************************
!********************Declaraciones de los mensajes
*****************
! Números de mensajes
CONST núm TEMPO_SEQ_ATT:=1;
CONST num nMsgAttFinRot:=2;
CONST num nDefSurvVitRot:=3;
CONST num nDValSurvRot:=4;
CONST num nDValPresAirTete:=5;
CONST num nDValCollTete:=6;
! Dimensión cuadro de mensajes
CONST num MAX_MESS_UTIL:=6;
CONST MessData MessUtilisateur{MAX_MESS_UTIL}:=[
[nMsgAttDebRot,"PUM1: espera inicio rotación herramienta ",
MESS_INFO ,AUCUN_DEFAUT, 0],
[nMsgAttFinRot," PUM2: espera fin rotación herramienta ",
MESS_INFO ,AUCUN_DEFAUT, 0],
[nDefSurvRot,"PUS1: Defecto supervisión velocidad herramienta ",
MESS_DEFAUT,DEF_DE, 241],
[nDValSurvRot,"PUV1: Defecto crítico supervisión herramienta ",
MESS_DEFAUT, DEF_APP, 240],
[nDValPresAirTete,"PUV2: Ausencia aire en cabezal ",
MESS_DEFVAL,DEF_APP, -241],
[nDValCollTete,"PUV3: Colisión cabezal ",
MESS_DEFVAL,DEF_APP, -246]
];
Para mayor precisión acerca de estos tipos de defecto, ver el capítulo 0, En un sistema multi-robots, una
palabra permite igualmente señalar el robot que causó esta parada.
Un dato digital que define la palabra comentario asociada
o Si el valor utilizado es positivo, el valor de la palabra comentario
enviada al autómata será el valor definido por el mensaje, y esto
cualquiera que sea el parámetro opcional utilizado en la
instrucción AffMessPU.
o Si el valor utilizado es negativo, la palabra comentario
efectivamente enviada al autómata tendrá como valor el valor
absoluto de la palabra comentario definido en el mensaje, al cual
se añadirá el valor del parámetro opcional especificado durante
la ejecución de la instrucción AffMessPU.
Ejemplo:
Con la definición de mensajes:
CONST MessData MessUtilisateur{MAX_MESS_UTIL}:=[
[nMsgAttDebRot,"PUM1: espera inicio rotación herramienta",
MESS_INFO ,AUCUN_DEFAUT, 0],
[nMsgAttFinRot," PUM2: espera fin rotación herramienta ",
MESS_INFO ,AUCUN_DEFAUT, 0],
[nDefSurvRot,"PUS1: Defecto supervisión velocidad herramienta",
MESS_DEFAUT,DEF_DE, 241],
[nDValSurvRot,"PUV1: Defecto crítico supervisión
herramienta ",
MESS_DEFAUT, DEF_APP, 240],
[nDValPresAirTete,"PUV2: Ausencia aire en cabezal ",
MESS_DEFVAL,DEF_APP, -241],
[nDValCollTete,"PUV3: Colisión cabeza ",
MESS_DEFVAL,DEF_APP, -246],
];
Argumentos
AffMessPU numMess [param]
Ejemplo:
AffMessPu nMsgAttDebRot\param :=1;
Modo operatorio
Para una mejor legibilidad de los programas, se aconseja utilizar para los números
de mensajes constantes con un nombre apropiado.
Ver además
Instrucción/Función Función
RazMessPU Eliminación de un mensaje usuario
Argumentos
RazMessPU numMess
Ejemplo:
RazMessPu nMsgAttDebRot;
Modo operatorio
Para una mejor legibilidad de los programas, se aconseja utilizar para los números
de mensajes constantes con un nombre apropiado.
Ver además
Instrucción/Función Función
AffMessPU Visualización de un mensaje usuario
A pesar que estos datos no sean directamente utilizados por el aplicativo y que
aparezca en forma de comentario, el integrador debe completar en el archivo
DEF_SITE.SYS la tarjeta de identidad del robot. Estas informaciones serán
utilizadas por utilitarios fuera de línea específicos de Renault.
Estos datos se encuentran en forma de comentarios al inicio del archivo.
!=====================================
!=========================
! Identificación del robot
!=========================
! Texto identificación robot: 30 caracteres máximo
! "123456789012345678901234567890"
! ROBOT :=" BASTIDOR ROBOT / PORTADOR ";
! LIGNE :=" BASAMENTO ";
! UNIT :=" PISO CENTRAL ";
! ZONE :=" ZONA 3 ";
! DMES :=" fecha de puesta en servicio ";
! NOM :=" nombre integrador ";
! NUMROBOT :=" número del robot ";
! NUMBAIE :=" número del bastidor ";
! MATRICULE:=" matrícula Renault del bastidor ";
! "123456789012345678901234567890"
! NUMOUTIL1:=" número herramienta ";
! NUMOUTIL2:=" ";
! NUMOUTIL3:=" ";
! NUMOUTIL4:=" ";
! CHGOUTIL :=" ¿SI o NO? ";
! "123456789012345678901234567890"
! BUTMECA1N:="valor eje en tope mecá - ?";
! BUTMECA1N:="valor eje en tope mecá + ?";
! BUTMECA1N:="valor eje en tope eléc. - ?";
! BUTMECA1N:="valor eje en tope eléc. + ?";
! BUTMECA2N:=" ";
! BUTMECA2P:=" ";
! BUTELEC2N:=" ";
! BUTELEC2P:=" ";
! BUTMECA3N:=" ";
! BUTMECA3P:=" ";
! BUTELEC3N:=" ";
! BUTELEC3P:=" ";
!===========
La gestión de los cambios de herramienta puede ser efectuada por el robot o por el
autómata.
Vista general
La opción cambiador de herramientas de Promia permite al robot controlar un semi-
cambiador embarcado y hasta 7 herramientas colocadas en muebles diferentes. Cada
herramienta puede contener hasta 4 módulos de entradas/salidas remotas que serán
activadas/desactivadas durante las cogidas/dejadas de la herramienta.
Preconfiguración suministrada
Todas las señales son preconfiguradas en tarjetas virtuales. Por lo tanto será
conveniente reasignar las señales efectivamente utilizadas en las tarjetas físicas
existentes.
Véase 4.1 Configuración de las E/S
# -----------------------------------------------------------
# Tool Stand 1 signals
# -----------------------------------------------------------
# DI signals
-Name "diCov1Closed" -SignalType "DI" -Unit "TCStand1" -
UnitMap 0
-Name "diCov1Opened" -SignalType "DI" -Unit "TCStand1" -
UnitMap 1
-Name "diToolOnStand1" -SignalType "DI" -Unit "TCStand1"
-UnitMap 2 -Invert
# DO signals
-Name "doCloseCov1" -SignalType "DO" -Unit "TCStand1" -
UnitMap 0
-Name "doOpenCov1" -SignalType "DO" -Unit "TCStand1" -
UnitMap 1
# -Name "doToolOnStand1" -SignalType "DO" -Unit "TCStand1"
-UnitMap 2 -store
EIO_CROSS:
-Res "doToolOnStand1" -Act1 "diToolOnStand1"
# -----------------------------------------------------------
# Tool Changer signals
# -----------------------------------------------------------
# DI signals
-Name "diTC_Unlocked" -SignalType "DI" -Unit "TCChanger"
-UnitMap 0
-Name "diTC_Locked" -SignalType "DI" -Unit "TCChanger" -
UnitMap 1
-Name "diTC_ToolOnRobot" -SignalType "DI" -Unit
"TCChanger" -UnitMap 2
-Name "giTC_CurrTool" -SignalType "GI" -Unit "TCChanger"
-UnitMap "3-5"
# DO signals
-Name "doTC_UnLock" -SignalType "DO" -Unit "TCChanger" -
UnitMap 0 -Store
-Name "doTC_Lock" -SignalType "DO" -Unit "TCChanger" -
UnitMap 1 -Store
# -Name "doTC_Locked" -SignalType "DO" -Unit "TCChanger" -
UnitMap 2
# -Name "doTC_LockPos" -SignalType "DO" -Unit "TC_SimBoard"
-UnitMap 0
EIO_CROSS:
-Res "doTC_Locked" -Act1 "diTC_Locked"
# -----------------------------------------------------------
# Other signals
# -----------------------------------------------------------
# DO signals
-Name "doToolOnRobot" -SignalType "DO" -Unit
"TC_SimBoard" -UnitMap 1 -Store
# GO signals
-Name "goTC_CurrTool" -SignalType "GO" -Unit
"TC_SimBoard" -UnitMap "3-5" -Store
Vista general
Todas las personalizaciones de la opción cambiador de herramienta se hacen en el
módulo ToolChgUser.mod.
La configuración de la funcionalidad cambiador de herramientas reside en dos
declaraciones de constantes y 3 rutinas situadas al inicio del módulo.
Estas 3 rutinas se solicitan cuando se enciende el armario y en caso de
reinicialización del programa robot (pp-> Main)
PROC DefineStands()
! Definición de los muebles herramienta
! herramienta y trayectorias asociadas
! ejemplo:
TchDefineStand 1,1,"T_PriseOutil1","T_DeposeOutil1";
TchDefineStand 2,2,"T_PriseOutil2","T_DeposeOutil2";
! definición de las señales correspondientes
! ejemplo:
TchDefineStandSig 1,\closeCoverSignal:=doCloseCov1,
\openCoverSignal:=doOpenCov1,
\coverClosedSignal:=diCov1Closed,
\coverOpenedSignal:=diCov1Opened,
\toolOnStandSignal:=diToolOnStand1;
TchDefineStandSig 2,\closeCoverSignal:=doCloseCov2,
\openCoverSignal:=doOpenCov2,
\coverClosedSignal:=diCov2Closed,
\coverOpenedSignal:=diCov2Opened,
\toolOnStandSignal:=diToolOnStand2;
ENDPROC
PROC DefineTools()
! definición de las herramientas
! mueble asociado, nombre, tipo, módulos devicenet
conectados
TchDefineTool 1,1,"Gripper1",TCH_GRIPPER,
"FESTO1","","","";
TchDefineTool 2,2,"Gripper2",TCH_GRIPPER,
"FESTO2","FESTO3","","";
ENDPROC
Instrucción TchDefineStand
Argumentos
Modo operatorio
Esta instrucción sólo debe utilizarse en la rutina DefineStands del módulo
ToolChgUser.mod.
Ver además
Instrucción/Función Función
TchDefineStandSigs Definición de las señales asociadas a un mueble
TchDefineTool Definición de los parámetros generales de una
herramienta.
Instrucción TchDefineStandSig
Argumentos
TchDefineStandSig StandNo [closeCoverSignal]
[openCoverSignal] [coverClosedSignal]
[coverOpenedSignal] [toolOnStandSignal]
Modo operatorio
Esta instrucción sólo debe utilizarse en la rutina DefineStands del módulo
ToolChgUser.mod.
Ver además
Instrucción/Función Función
TchDefineStand Definición de los parámetros generales de un
mueble.
Instrucción TchDefineTool
Esta instrucción permite definir los parámetros generales vinculados a una
herramienta.
Argumentos
Modo operatorio
Esta instrucción sólo debe utilizarse en la rutina DefineTools del módulo
ToolChgUser.mod.
Ver además
Instrucción/Función Función
TchDefineStand Definición de los parámetros generales de un
mueble.
Instrucción TchDefineToolChanger
Argumentos
TchDefineToolChanger driverName
El nombre del driver es memorizado. Las rutinas del driver nunca se solicitan en
directo. Todas sus rutinas son locales.
Modo operatorio
Esta instrucción sólo debe utilizarse en la rutina DefineToolChanger del
módulo ToolChgUser.mod.
Ver además
Instrucción/Función Función
TchDefineToolCode Definición de las señales del código de la
herramienta embarcada
TchDefineTchSig Definición de las señales relacionadas con el semi-
cambiador embarcado
Instrucción TchDefineToolCode
Esta instrucción permite definir el grupo de entradas o de salidas que permiten leer el
código de la herramienta embarcada.
Argumentos
TchDefineToolCode [InputGroup] [OutputGroup]
Estas señales son memorizadas por el aplicativo. Esta asociación tiene lugar en cada
inicio del armario y en cada inicio del programa RAPID al comienzo.
Se debe definir al menos uno de estos grupos. Si se definen los dos grupos, el grupo
de entrada tiene la prioridad.
Modo operatorio
Esta instrucción sólo debe utilizarse en la rutina DefineToolChanger del
módulo ToolChgUser.mod.
Ver además
Instrucción/Función Función
TchDefineToolChanger Definición del driver utilizado
TchDefineTchSig Definición de las señales relacionadas con el
semi-cambiador embarcado
Instrucción TchDefineTchSig
Argumentos
TchDefineTchSig [lockSignal] [unlockSignal] [lockedSignal]
[unlockedSignal] [toolOnRobotSignal]
[toolOnRobotImage]
Todos los argumentos son opcionales; sólo aquellos utilizados serán tomados en
cuenta por el driver genérico.
Modo operatorio
Esta instrucción sólo debe utilizarse en la rutina DefineToolChanger del
módulo ToolChgUser.mod.
Ver además
Instrucción/Función Función
TchDefineToolChanger Definición del driver utilizado
TchDefineToolCode Definición de las señales del código de la
herramienta embarcada
Estas señales « OUTILn» son declaradas sobre una tarjeta virtual y son
posicionadas en función del código herramienta leído o memorizado a través de las
cross-conexiones.
Tan pronto como una pinza se encuentra presente en el extremo del robot, la señal
« OUTILn » correspondiente es activada y el sistema determina, por el relé, que la
herramienta puede ser activada.
De esta forma no es posible activar por la ventana de pilotaje manual una pinza no
presente en el semi-cambiador. Sólo la pinza «cogida» puede ser activada de esta
manera.
EIO_SIGNAL:
# pinza controlada embarcada o no
-Name "diTC_ToolOnRobot" -SignalType "DI" \
-Unit "TCChanger" -UnitMap 2
# Código de la pinza embarcada
-Name "diCurrToolB1" -SignalType "DI" \
-Unit " TCChanger " -UnitMap 3
-Name "diCurrToolB2" -SignalType "DI" \
-Unit " TCChanger " -UnitMap 4
-Name "diCurrToolB4" -SignalType "DI" \
-Unit " TCChanger " -UnitMap 5
-Name "giTC_CurrTool" -SignalType "GI" \
-Unit "TCChanger" -UnitMap "3-5"
# entradas de activación
-Name "OUTIL1" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "0"
-Name "OUTIL2" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "1"
-Name "OUTIL3" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "2"
-Name "OUTIL4" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "3"
EIO_CROSS:
-Res "OUTIL1" -Act1 "diTC_CurrToolB1" -Oper1 "AND" \
-Act2 "diTC_CurrToolB2" -Act2_invert -Oper2 "AND" \
-Act3 "diTC_CurrToolB4" -Act3_invert
-Res "OUTIL2" -Act1 "diTC_CurrToolB2" -Oper1 "AND" \
-Act2 "diTC_CurrToolB1" -Act2_invert -Oper2 "AND" \
-Act3 "diTC_CurrToolB4" -Act3_invert
-Res "OUTIL3" -Act1 "diTC_CurrToolB1" -Oper1 "AND" \
-Act2 "diTC_CurrToolB2"-Oper2 "AND" \
-Act3 "diTC_CurrToolB4" -Act3_invert
-Res "OUTIL4" -Act1 "diTC_CurrToolB4" -Oper1 "AND" \
-Act2 "diTC_CurrToolB1"-Act2_invert -Oper2 "AND" \
-Act3 "diTC_CurrToolB2" -Act3_invert
EIO_SIGNAL:
# pinza controlada embarcada o no
-Name "doToolOnRobot" -SignalType "DO" \
-Unit "TC_SimBoard" -UnitMap 1 -Store
# No de la pinza embarcada
-Name "doCurrToolB1" -SignalType "DO" \
-Unit "TC_SimBoard" -UnitMap 3
-Name "doCurrToolB2" -SignalType "DO" \
-Unit "TC_SimBoard" -UnitMap 4
-Name "doCurrToolB4" -SignalType "DO" \
-Unit "TC_SimBoard" -UnitMap 5
-Name "goTC_CurrTool" -SignalType "GO" \
-Unit "TC_SimBoard" -UnitMap "3-5" –Store
# entradas de activación
-Name "OUTIL1" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "0"
-Name "OUTIL2" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "1"
-Name "OUTIL3" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "2"
-Name "OUTIL4" -SignalType "DI" -Unit "GunsCode" \
-UnitMap "3"
EIO_CROSS:
-Res "OUTIL1" -Act1 "doTC_CurrToolB1" -Oper1 "AND" \
-Act2 "doTC_CurrToolB2" -Act2_invert -Oper2 "AND" \
-Act3 "doTC_CurrToolB4" -Act3_invert
-Res "OUTIL2" -Act1 "doTC_CurrToolB2" -Oper1 "AND" \
-Act2 "doTC_CurrToolB1" -Act2_invert -Oper2 "AND" \
-Act3 "doTC_CurrToolB4" -Act3_invert
-Res "OUTIL3" -Act1 "doTC_CurrToolB1" -Oper1 "AND" \
-Act2 "doTC_CurrToolB2"-Oper2 "AND" \
-Act3 "doTC_CurrToolB4" -Act3_invert
-Res "OUTIL4" -Act1 "doTC_CurrToolB4" -Oper1 "AND" \
-Act2 "doTC_CurrToolB1"-Act2_invert -Oper2 "AND" \
-Act3 "doTC_CurrToolB2" -Act3_invert
PROC DefineTools()
! definición de las herramientas
! mueble asociado, nombre, tipo, módulos devicenet
conectados
TchDefineTool 1,1,"Pince1",TCH_SERVOTOOL,
"","","","";
TchDefineTool 2,2,"Pince2", TCH_SERVOTOOL,
"","","","";
TchDefineTool 3,3,"Gripper1",TCH_GRIPPER,
"FESTO1","","","";
TchDefineTool 4,4,"Gripper2",TCH_GRIPPER,
"FESTO2","FESTO3","","";
ENDPROC
PROC DefineTools()
! definición de las herramientas
! mueble asociado, nombre, tipo, módulos devicenet
conectados
TchDefineTool 1,1,"Pince1",TCH_SERVOTOOL,
"","","","";
TchDefineTool 2,2,"Pince2", TCH_SERVOTOOL,
"","","","";
ENDPROC
Principio
Dos módulos son consagrados a las personalizaciones del integrador.
Contenido
Además de la declaración de las posiciones p_repli y p_reb_prg, el módulo
contiene las rutinas siguientes:
Rutina Función
El integrador puede añadir como lo desee datos y rutinas en este módulo, pero no
debe en ningún caso modificar los nombres de los datos y rutinas suministradas
por ABB.
Contenido
Este módulo contiene las rutinas siguientes:
Rutina Función
Las rutinas del módulo PERSOARx.SYS son solicitadas por la tarea de fondo!
Vista general
La configuración de la aplicación SRE se hace esencialmente en los archivos
"SRECONF1R1.sys" , "SRECONF2R1.sys" y "SwWrapTimerDAP.sys".
Hasta la versión 50.33 de Promia, las fresas de rodaje, para las pinzas en el suelo,
eran controladas por secuencias de manutención dedicadas. Los eventuales
cambiadores de electrodos automáticos serán igualmente controlados a través de
secuencias y de órdenes/eventos Util específicos.
!--------------------------------
! G L O B A L D A T A F L O W
!--------------------------------
! El Filtro durante el plazo de no Control Presencia Agua
! en automático / manual en estándar es 3 seg y 5 seg.
CONST num nFLOWFILTER_AUTO{MAX_NOF_FLOW}:=[3,3,3];
CONST num nFLOWFILTER_MANU{MAX_NOF_FLOW}:=[5,5,5];
! El Tiempo de espera de la estabilidad del AGUA después
del
! reset de la salida Corte Agua está en estándar de 2 seg.
CONST num nFLOW_TIME_STAB{MAX_NOF_FLOW}:=[2,2,2];
!Flag Debug Flow
CONST bool DEBUG_FLOW{MAX_NOF_FLOW}:=[ FALSE,FALSE,FALSE];
CONST bool INHIB_WATCH_FLOW{MAX_NOF_FLOW}:=
[FALSE,FALSE,FALSE];
!Flag Stop del agua en el lanzamiento luego relance el agua
CONST bool bSTOP_FLOWALL_INPROD:=TRUE;
Un pinza falsa permite soldar varios electrodos con la misma pinza física. Un caso
típico de utilización de pinza falsa está vinculado con problemas de accesibilidad.
En este caso, la pinza física no suelda directamente la pieza, pero se cierra en una
«pinza falsa» constituida de brazos, cerrados por un mando neumático, que
conducirán la corriente de soldadura hasta la pieza.
Cada juego de electrodos es visto por la aplicación como una pinza completa
(como si se hubiese utilizado un cambiador de pinza) pero la declaración de una
«pinza falsa» inhibe ciertos controles de coherencia de programación.
Vista general
A partir de la versión 50.34, la gestión de las fresas está integrada en la aplicación
PROMIA cuando, durante la definición del sistema robot en RobotStudio, se
define una pinza en el suelo.
#
# SeqSR2
#
-Res "CAvSR2" -Act1 "EVAvSR2" -Oper1 "AND" -Act2
"EVReSR2" -Act2_invert
Después de esta carga, se aconseja efectuar una salvaguarda, a través del menú
Backup del aplicativo.
Vista general
Los armarios IRC5 destinados en el proceso de soldadura por resistencia están
precableados para la integración de las pinzas.
Modo operatorio
Transferir los archivos de configuración a instalar, ya sea en una llave USB, ya sea
en el flashdisk por FTP o RobotStudio.
Calibrado falso
Para cada una de las pinzas:
forzar el grupo de entradas o de salidas que reflejen el código herramienta
en el valor correspondiente a esta pinza (1 para la pinza 1, 2 para la pinza
2, etc.)
Cogida de la pinza
Para forzar la desactivación de las pinzas, (una activación produciría un error):
Forzar a 0 el grupo de entradas o de salidas que reflejan el código
herramienta.
Activar el modo de ejecución sin movimiento: seleccionar "Panel de
control" en el menú , luego seleccionar Supervisión y marcar
«Activado»
Cogida de la pinza:
Cuando el cursor está en la línea « LancePromia », detener la
ejecución. Desactivar el modo de ejecución sin movimiento. Lanzar la
trayectoria de cogida herramienta (Editor de programa / Depurar / PP
hacia Rutina).
Después del bloqueo de la pinza, la acción SR_CHGOUTIL generará un
error. Proceder entonces como para una pinza fija (nuevo calibrado).
NOTA: Si se produce un error durante las acciones manuales (en función
del primer calibrado falso, la posición de cierre pinza puede no ser
alcanzada) repetir las fases de calibrado y de sincronización pinza hasta
poder cerrar la pinza (la carrera progresa aproximadamente 5 mm cada
vez).
Vista general
Este capítulo detalla la activación y la integración de la opción del descalibrado
por el (SoftEqualize): cómo se deben realizar las trayectorias, las obligaciones de
programación que se deben respetar y los errores a evitar.
Condiciones previas
El integrador deberá previamente determinar lo más preciso posible el referencial
herramienta de estas pinzas, electrodos nuevos. Estos valores deben asignarse a la
vez en la herramienta Tool_Pincex, que será actualizada durante los rodajes y
cambio de electrodos y será utilizada en las trayectorias, y la herramienta
ref_Tool_Pincex, que nunca se modificó y sirve de referencia. Estos datos
son declarados en el módulo PRG_MVT (donde x corresponde al número de pinza).
Vista general
Todos los parámetros de una pinza específicos a la opción SoftEqualize se deben
informar en el dato de tipo gundata relacionado a esta pinza.
Principio
Cualquiera que sea el tipo de pinza motorizada empleada en soldadura, los brazos
de la misma se deforman durante la fase de aumento en esfuerzo.
Para compensar esta flexión, el robot debe conocer las características.
La compensación de la flexión por el robot se hará actuando sobre la posición del
electrodo fijo, pero la medición de flexión debe comprender la flexión total de los
brazos de la pinza.
La flexión de los brazos de la pinza es proporcional a la fuerza aplicada.
Los valores de flexión a informar son suministrados por el constructor de pinzas.
Una vez que todos los parámetros fueron informados, es conveniente validar la
opción SoftEqualize poniendo en TRUE el parámetro softw_eq.
Principio
El módulo PRG_MVT contiene rutinas específicas que son solicitadas para
actualizar los referenciales ‘herramienta’ en caso de rodaje (rutina
UpdateTCPTipsWearx) o de cambio de electrodos (rutina
UpdateTCPTipsChgx).
Estas rutinas son típicamente solicitadas durante los movimientos de calibración
pinza, programadas (a través de las acciones SR_INIT_PINCE o
SR_INIT_MVT), o solicitadas por las acciones manuales « ManCalib ».
!-------------------------
! Trayectorias Soft Equalize
!-------------------------
PROC UpdateTCPTipsChg1()
! Rutina Solicitada por la Instrucción SR_INIT_PINCE después CHEL
! *** Retirar los comentarios siguientes si Opción SoftEqualize
ReCalcTCP 1\Reference, ref_Tool_Pince1;
ReCalcTCP 1\TipChange, Tool_Pince1;
ENDPROC
PROC UpdateTCPTipsWear1()
! Rutina Solicitada por la Instrucción SR_INIT_PINCE después
Rodaje
! *** Retirar los comentarios siguientes si Opción SoftEqualize
ReCalcTCP 1\TipWear, Tool_Pince1;
ENDPROC
Después de haber realizado las etapas 6.5.1 a 6.5.4, para finalizar la puesta en
servicio de SoftEqualize, se debe ejecutar para cada pinza la trayectoria de cambio
de los electrodos para actualizar le herramienta de referencia y la herramienta que
se utilizará para efectuar los puntos de soldadura.
Los puntos de soldadura deberán ser tomados con el electrodo fijo contra la chapa.
Vista general
El módulo PRG_MVT contiene los programas y las trayectorias del robot. Un
“programa”, que corresponde al conjunto de las tareas a realizar para un código
programado, está constituido de un encadenamiento de trayectorias. Las
trayectorias son rutinas de tipo "PROC".
Todas las trayectorias y todos los datos de movimiento deben a priori encontrarse
en este módulo PRG_MVT. La creación de un nuevo módulo sólo puede
efectuarse con el acuerdo del cliente.
Todo este trabajo puede hacerse directamente en el pupitre, sin pasar por un PC.
Rutina «Main»
La rutina “Main” del módulo PRG_MVT contiene la solicitud en el punto de
entrada de Promia.
Es posible la adición de las instrucciones antes de esta solicitud. Las mismas se
ejecutarán tan pronto como se lance el programa.
La adición de las instrucciones después de esta solicitud es sin efecto (la rutina
LancePromia nunca responde).
PROC MAIN()
!******************************
!* ATENCION!!!!! *
!* RUTINA A NO MODIFICAR *
!* Y A NO SUPRIMIR !! *
NO MODIFICAR
LancePromia;
ENDPROC
Rutina «Programa»
Esta rutina es solicitada para cada nuevo trabajo a efectuar. La misma tiene la
forma de una desconexión en función del número de programa recibido. Los
encadenamientos de las trayectorias que constituyen los programas de trabajo
serán informados en esta rutina.
PROC Programme(
num prog)
Rutina «Servicios»
Esta rutina es solicitada por la rutina «Programa» en el caso en que el número de
programa recibido no corresponda a un programa de trabajo. Entonces se trata de
un código de solicitud de servicio (en el sentido amplio). Los trabajos a ejecutar
para las solicitudes de servicio de 1 a 4 se deben informar en esta rutina. El
tratamiento de las solicitudes de Repli y de la ejecución de la trayectoria de
lanzamiento son tratadas por la rutina «Servicios», no modificable.
T_Serv4;
Etat_Serv4:=SV_PAS_DEMANDE;
DEFAULT:
! añadir por un ERRWRITE
! Si resulta necesario
ENDTEST
ENDPROC
Una tarea movimiento está asociada a cada una de las unidades mecánicas
declaradas. Por defecto, estas tareas se ejecutan de forma totalmente asíncrona.
Instrucciones específicas permiten no obstante crear puntos de citas, o
movimientos sincronizados.
Puntos de citas
Es posible crear puntos de citas entre dos o varias tareas movimiento: cada uno de
estos puntos de cita posee un identificante propio y las tareas movimiento se
esperan mutualmente en una instrucción particular, WaitSyncTask. Cuando
todas las tareas correspondientes alcanzan esta instrucción, las mismas reanudan su
ejecución en secuencia.
Esta instrucción tiene como argumentos la identificación del punto de cita y la lista
de tareas correspondientes.
El identificante relativo a un punto de cita particular debe ser único y debe ser
declarado en cada una de las tareas implicadas.
Movimientos sincronizados
Para mayor información, ver estas instrucciones, así como para las instrucciones
de movimiento en el Manual de Referencia RAPID.
Implementación
Vista general
Las trayectorias T_Lance, T_Repli y T_Repli_Direct son pre-informadas
en el suministro de base ABB. Las mismas aplican dos puntos particulares, el
punto de Repli y el punto de Rebouclage.
Estos dos puntos particulares son pre-declarados en el aplicativo pero sus
coordenadas por defecto no corresponden a las necesidades del sitio. Como las
trayectorias T_Repli o T_Repli_Direct, luego T_Lance son solicitadas
desde el lanzamiento del programa robot, se comenzará por informar estos dos
puntos particulares.
Estos puntos deben imperativamente ser tomados con el referencial objeto de base
wobj0 y la herramienta Tool_defaut. Deben estar igualmente separados de al
menos 20 mm.
La herramienta Tool_defaut es una variable de tipo tooldata, definida con
el CDO a 0 (en el flasco) y con la carga nominal de la herramienta embarcada. La
misma será el objeto de una identificación de carga particular. En el caso de la
utilización de un cambiador de herramienta, pertenece al integrador crear tantas
herramientas como sea necesario y actualizar esta variable en función de la
herramienta efectivamente embarcada.
Modo operatorio
Principio
Para cada programa de trabajo es conveniente informar en la rutina «Programa»,
en función del número de programa que corresponde al código enviado por el
autómata, el encadenamiento de las trayectorias a ejecutar. El integrador debe
igualmente informar el nombre del programa, tal como aparecerá en la pantalla de
producción, a través de una instrucción Aff_Prog.
Si, a priori, nada impide la utilización de instrucciones lógicas (tales como IF,
FOR, WHILE) en la rutina «Programa», esta utilización no es aconsejada. En
caso de desvío (selección entre dos trayectorias), se preferirá el direccionamiento a
través de la prueba de eventos. Véase el capítulo 9.3.1.
Convención
El nombre de las trayectorias de trabajo debe comenzar por la letra T.
Ejemplo
Los principios expuestos aquí son válidos para cualquier tipo de aplicación,
manutención y otras aplicaciones.
No obstante, si el aplicativo tronco común manutención no utiliza en su suministro
de base de solicitud de servicio dedicado, ciertos programas de servicio pueden en
cambio ser reservados por las aplicaciones (ejemplo, solicitudes de servicio 1 –
cambio de electrodos - y 2 – solicitud de rodaje - para la aplicación SRE).
Valor Significado
No hay solicitud de servicio o solicitud de
SV_PAS_DEMANDE
servicio correctamente validada.
Problema al efectuar la trayectoria de servicio,
SV_ABANDONNE la solicitud de servicio no fue correctamente
terminada.
Solicitud de servicio procedente de una
solicitud interna de la aplicación, como
SV_DDE_INTERNE
resultado por ejemplo de la superación de un
umbral del contador de ciclo.
SV_DDE_EXTERNE Solicitud externa, por ejemplo por BP.
Solicitud de servicio en curso (trayectoria de
SV_EN_COURS
servicio en curso)
Función de servicio realizada pero programa de
SV_EFFECTIF
servicio no terminado
Para el sistema, todos los valores que no sean SV_PAS_DEMANDE son tratados
de la misma manera. La diferenciación de estos valores permite únicamente
facilitar la puesta a punto de la aplicación.
T_Repli : trayectoria solicitada por el programa Repli. Esta trayectoria parte del
punto de Rebouclage de los programas hacia el punto de Repli según una
trayectoria aprendida.
Vista general
A partir de la versión Promia 50.36 la gestión de las trayectorias específicas en las
opciones de seguridad EPS (Electronic Position Switch) y SafeMove está pre-
integrada en el módulo PRG_MVT.
Estas dos opciones necesitan un mecanismo de control de la sincronización entre el
armario y el procesador de seguridad, a través de un captador externo o un control
visual (por un operador se seguridad). La opción SafeMove puede además solicitar
un control cíclico de los frenos.
!*********************************************
! Retirar comentario si OPCION EPS-SAFEMOVE
!*********************************************
!IF SynchroRequest THEN
!AutoriseTraj;
!T_SyncSC;
!ENDIF
!IF BrakeRequest THEN
!AutoriseTraj;
!T_CheckBrake;
!ENDIF
Trayectoria de sincronización
La rutina T_SyncSC figura al final del módulo PRG_MVT.
!-------------
PROC T_SyncSC()
CONST jointtarget pPSync:=[[9E+009,0,0,0,0,0],
[9E+009,9E+009,9E+009,9E+009,9E+009,9E+009]];
Aff_Traj "TrajSYNC";
AntiReboucle;
!
MoveJ p_reb_prg,V_moyen,Z_arret,Tool_defaut;
! Puntos de la tray
MoveAbsJ pPSync,V_moyen,Z_arret,Tool_defaut;
!Eliminar el comentario si sincronización por captador externo
!CHECK_EPS\WaitSync:=1;
!Eliminar el comentario si sincronización software
!CHECK_SYNC;
! Move...
ENDPROC
PROC T_CheckBrake()
CONST jointtarget pPBrake:=[[9E+009,0,0,0,0,0],
[9E+009,9E+009,9E+009,9E+009,9E+009,9E+009]];
Aff_Traj "TrajBRAKE";
AntiReboucle;
!
MoveJ p_reb_prg,V_moyen,Z_arret,Tool_defaut;
! Puntos de la tray
MoveAbsJ pPBrake,V_moyen,Z_arret,Tool_defaut;
!Eliminar el comentario para efectuar el control de los frenos
!CHECK_BRAKE;
! Move...
ENDPROC
!------------------------
! Speeddata
!------------------------
CONST speeddata V_lent:=v100;
CONST speeddata V_moyen:=v500;
CONST speeddata V_rapide:=v2500;
!------------------------
! Zonedata
!------------------------
CONST zonedata Z_arret:=fine;
CONST zonedata Z_petit:=z5;
CONST zonedata Z_moyen:=z20;
CONST zonedata Z_large:=z50;
CONST zonedata Z_Xlarge:=z200;
No se aconseja crear una función que contenga una sola instrucción RETURN. Si
la función no necesita otra instrucción, entonces se aconseja insertar una línea de
comentario antes de la instrucción RETURN.
Trayectorias circulares
Vista general
Lo esencial del trabajo a realizar por el integrador para la aplicación SRE se sitúa
en el módulo PRG_MVT.MOD:
Vista general
Los puntos de soldadura son realizados por la acción SR_SOUDER que une el
movimiento hacia el punto y la acción de soldadura propiamente dicho.
Además, una actualización del desgaste de la pinza debe efectuarse regularmente
por la utilización de la acción SR_INIT_PINCE o de la acción SR_INIT_MVT.
Una buena práctica consiste en utilizar estas acciones al efectuar el retorno hacia el
punto de conexión por bucle.
ENDPROC
Vista general
Existen 4 programas de servicio T_Serv1 à T_Serv4.
Los dos primeros programas de servicio son predefinidos por el estándar SRE para
controlar respectivamente los cambios de electrodos y los rodajes; los programas
de servicio 3 y 4 son libres para el integrador.
Principio
Todas las solicitudes de servicios pueden ser controlados por códigos externos (ver
el capítulo 8.3), por botones táctiles en la pantalla del panel operador o por botones
pulsadores conectados a entradas predefinidas.
Los programas de servicios T_Serv1 y T_Serv2 pueden igualmente ser
desenclavados por el secuenciador de soldadura cuando controla los contadores de
puntos soldados y de rodajes, o en interno por el aplicativo. Estos programas ya
están definidos en el módulo PRG_MVT.MOD. Es suficiente con que el
integrador informe el tipo de servicio e inserte los puntos y las acciones en las
trayectorias correspondientes.
Cuando una solicitud de servicio es solicitada por el botón pulsador externo o por
la pantalla de botones, los mensajes de información del servicio son visualizados
en la pantalla de producción. Estos mensajes son dedicados a la aplicación SRE y
permiten identificar las trayectorias de servicio solicitadas.
Los mensajes que pueden ser visualizados son para la aplicación SRE:
«SREM21: Demande Changt Electro. n » (solicitud de
servicio 1 en curso para la pinza n)
«SREM20: Demande Rodage n »(solicitud de servicio 2 en curso
para la pinza n)
Las solicitudes por pantalla son tomadas en cuenta tan pronto como el botón sea
activado (indicador luminoso encendido). Si el robot se encuentra en el punto de
Rebouclage, la solicitud es efectuada inmediatamente.
Si un ciclo programa, está en curso, la solicitud será tomada en cuenta después del
retorno al punto de Rebouclage, durante la espera código.
Las solicitudes por botón pulsador externo se pueden configurar en los parámetros
E/S.
Para tomar en cuenta las solicitudes por estos botones, se debe desplazar las
entradas BP_SERV1_R1, BP_SERV2_R1, BP_SERV3_R1 o BP_SERV4_R1
(declaradas en la tarjeta virtual SIMBRD hacia una tarjeta física a la cual se
conectan los botones externos.
De esta forma durante la pulsación de un botón externo que activa la entrada
BP_SERV…, las solicitudes serán tomadas en cuenta.
El funcionamiento es idéntico al de los botones por la pantalla (virtual).
Ejemplo
En las E/S, las entradas predefinidas para las solicitudes externas se deben
desplazar hacia una tarjeta física por el integrador.
Por ejemplo, la solicitud de servicio 1 del robot 1 debe hacerse por botón externo.
Declarar la línea siguiente en negritas en una tarjeta física en el emplazamiento
donde se conecta el botón externo.
# Robot 1
-Name "BP_SERV1_R1" -SignalType "DI" -Unit "SIMBRD" -UnitMap "34"
# Robot 1
-Name "BP_SERV1_R1" -SignalType "DI" -Unit "CarteClient" -UnitMap "5"
!-------------------------
! Programas de Servicio
!-------------------------
PROC T_Serv1()
! Acción parám. del cambio electrodos
SR_CHG_ELEC \SANS_CHG_1\CHG_DISSOCIE;
! ACTION CHGT ELECTRODES
SR_APPEL_SERV1;
FOR i FROM 1 TO NbEquipt{noThisTask} DO
IF SR_APPEL_AUTO(i)=1 OR SR_APPEL_AUTO(i)=2 THEN
%"T_Chela"+ValToStr(swInRunServ1{noThisTask})%;
IF SR_APPEL_AUTO(i)=2 THEN
SR_FIN_SERV1;
RETURN;
ENDIF
ENDIF
IF SR_APPEL_MANU(i)=1 OR SR_APPEL_MANU(i)=2 THEN
%"T_Chelm"+ValToStr(swInRunServ1{noThisTask})%;
IF SR_APPEL_MANU(i)=2 THEN
SR_FIN_SERV1;
RETURN;
ENDIF
ENDIF
ENDFOR
SR_FIN_SERV1;
ERROR
IF ERRNO=ERR_CALLPROC OR ERRNO=ERR_REFUNKPRC THEN
SkipWarn;
TRYNEXT;
ENDIF
ENDPROC
Argumentos
SR_CHG_ELEC [AVEC_CHG_1] | [SANS_CHG_1]
[AVEC_CHG_2] | [SANS_CHG_2]
[CHG_ASSOCIE] | [CHG_DISSOCIE]
Modo operatorio
La programación de las órdenes a emitir se hace en la ventana “Editor de
programa”.
Ver además
Instrucción/Función Función
SR_ROD_ELEC Especificación del tipo de rodaje
El programa de rodaje T_Serv2 puede ser solicitado por un código externo (cuyo
valor es definido por el parámetro CP_DemServ2 del módulo CEL_CONF.sys).
Es el caso, en particular, si la solicitud de cambio de electrodos de un robot es
generalizada por el autómata en todos los robots de una misma célula o de un
mismo islote para limitar las pérdidas de tiempo de producción.
Igualmente puede ser desenclavado por el secuenciador, cuando se alcanza la
cantidad máxima de puntos de soldadura.
La solicitud de rodaje puede igualmente ser forzada por el operador por medio de
un botón pulsador físico o virtual
!-------------
PROC T_Serv2()
! Acción parám del RODAJE
SR_ROD_ELEC\AVEC_ROD_1\ROD_DISSOCIE;
! ACTION RODAGE
SR_APPEL_SERV2;
FOR i FROM 1 TO NbEquipt{noThisTask} DO
IF SR_APPEL_DRESS(i)=1 OR SR_APPEL_DRESS(i)=2 THEN
%"T_ROD_"+ValToStr(swInRunServ2{noThisTask})%;
IF SR_APPEL_DRESS(i)=2 THEN
SR_FIN_SERV2;
RETURN;
ENDIF
ENDIF
ENDFOR
SR_FIN_SERV2;
ERROR
IF ERRNO=ERR_CALLPROC OR ERRNO=ERR_REFUNKPRC THEN
SkipWarn;
TRYNEXT;
ENDIF
ENDPROC
Argumentos
SR_ROD_ELEC [AVEC_ROD_1] [AVEC_ROD_2]
[ROD_ASSOCIE] | [ROD_DISSOCIE]
Modo operatorio
La programación de las órdenes a emitir se hace en la ventana “Editor de
programa”.
Ver además
Instrucción/Función Función
SR_CHG_ELEC Especificación del tipo de cambio de electrodos
La instrucción SR_CEAU es utilizada para cortar el agua antes del cambio de los
electrodos y restablecerla después del cambio.
Durante la ejecución de la acción "SR_CHELMAN", el robot es parado y se
visualiza el mensaje siguiente:
!------------
PROC T_Chelm1()
Aff_Traj "T_Chelm1";
AntiReboucle;
!
! Tray cambio manu secuenciador 1 Pinza 1
MoveJ p_reb_prg,V_moyen,Z_arret,Tool_defaut;
SR_CEAU 1;
! Trayectoria aproximación
SR_CHELMAN 1;
SR_CEAU 0;
! trayectoria liberación
SR_INIT_PINCE 1;
SR_SOUDER p_reb_prg,V_moyen,1,31,Tool_defaut,wobj0;
ENDPROC
Rodaje
Una trayectoria de rodaje típica contendrá:
PROC T_ROD_1()
Aff_Traj "T_ROD_1";
AntiReboucle;
! Tray rodaje Secuenciador 1 pinza 1
MoveJ p_reb_prg,V_moyen,Z_arret,tool_PinceJ;
! Trayectoria aproximación
SR_RODER 1,1;
! Trayectoria retorno
MoveJ p_reb_prg,V_moyen,Z_arret,tool_PinceJ;
! trayectoria liberación
SR_INIT_PINCE 1;
SR_SOUDER p_reb_prg, V_moyen, 1,31, Tool_defaut, wobj0;
ENDPROC
8 Cambios códigos
8.1 Prioridad de los cambios códigos
Existen varios tipos de solicitudes de trabajo. Estos diferentes tipos de códigos son
jerarquizados a nivel de la prioridad de su toma en cuenta.
Solicitud de Repli,
Solicitudes de servicios,
Código interno (controlado por la rutina “Code_Interne”),
Códigos externos.
Por defecto, la rutina retorna a “ 0 ” dejando así la prioridad a los códigos externos.
Ejemplo de utilización:
Las solicitudes de servicio son efectuadas por el botón pulsador, por medio de la
rutina “Código_Interno”, o por código externo. Son controladas
(memorización y prioridad de la ejecución) en la tarea de segundo plano.
La solicitud de ejecución de un programa de servicio de prioridad superior anula la
solicitud de ejecución de un programa de servicio de prioridad inferior.
Cada ejecución de un programa de servicio se efectúa cuando el robot está en su
punto de Rebouclage.
Programa de servicio 1
Programa de servicio 2
Programa de servicio 3
Programa de servicio 4
Durante una utilización por código interno, el código programa a retornar por la
rutina “Código_Interno” es el definido en el módulo CEL_CONF.
Véase 5.4 Configuración del módulo CEL_CONF.SYS.
Autorizar la lectura por el robot del código presente, evitar los errores de
lectura debidos a la no estabilización de las salidas código programa del
sistema externo.
Es el rol de la información "Control Validación Código en 1" (CVC_1)
Generalidades
Argumentos
ORDEN [Delai] [O1] [O2] [O3] [O4] [O5] [O6] [O7] [O8]
[\O9][\O10][\O11][\O12][\O13][\O14][\O15][\O16]
Por lo tanto es necesario repetir las órdenes previamente posicionadas que se desea
mantener en 1.
La acción ORDEN sin argumento pone en cero todas las órdenes.
Modo operatorio
La programación de las órdenes a emitir se hace en la ventana “Editor de
programa”.
Ver además
Instrucción/Función Función
Move_Ordre Emisión de las órdenes en punto de paso
ORD_OUTIL Emisión de las órdenes herramienta en punto de parada
Argumentos
Move_Ordre [L] ToPoint [Id] [O1] [O2] [O3] [O4] [O5]
[O6] [O7] [O8] [O9] [O10] [O11] [O12] [O13]
[\O15][\O16] speed zone tool wobj
L
Tipo de dato: switch
Especifica que el movimiento es un desplazamiento lineal (articular por defecto)
Modo operatorio
Ver además
Instrucción/Función Función
ORDEN Emisión de las órdenes en punto de parada
Move_Ord_Outil Emisión de las órdenes herramienta en punto de paso
Argumentos
ORD_OUTIL [Delai] [O1][O2][O3][O4][O5][O6][O7][O8]
[\O9][\O10][\O11][\O12][\O13][\O14][\O15][\O16]
Modo operatorio
La programación de las órdenes a emitir se hace en la ventana “Editor de
programa”.
Ver además
Instrucción/Función Función
Move_Ord_Outil Emisión de las órdenes herramienta en punto de paso
ORDEN Emisión de las órdenes autómata en punto de parada
Argumentos
Move_Ord_Outil [L] ToPoint [Id] [O1] [O2] [O3] [O4]
[O5] [O6] [O7] [O8] [O9] [O10] [O11]
[O12] [O13] [O14] [O15] [O16] speed zone
tool wobj
L
Tipo de dato: switch
Especifica que el movimiento es un desplazamiento lineal (articular por defecto)
Modo operatorio
Ver además
Instrucción/Función Función
ORD_OUTIL Emisión de las órdenes herramienta en punto de parada
Move_Ordre Emisión de las órdenes autómata en punto de paso
Sólo los eventos declarados en la acción son esperados (en 1), los otros son
ignorados. Si el control dinámico de los eventos está activo, sólo los eventos
esperados serán controlados regularmente.
Argumentos
EVENT [E1] [E2] [E3] [E4] [E5] [E6] [E7] [E8]
[E9] [E10] [E11] [E12] [E13] [E14] [E15] [E16]
La acción EVENT controla en 1 los eventos especificados e ignora los otros. Por lo
tanto es necesario repetir los eventos previamente posicionados que se desea
continuar controlando.
La acción EVENT sin argumento pone en cero todos los controles de eventos.
Mensajes asociados:
El mensaje “ EVM01: Espera Evento: n ” aparece en la pantalla de producción,
precisando el evento esperado no presente. Los eventos esperados y no presentes
son identificados por un signo rojo en la pantalla dedicada.
Si el control dinámico está activado y que una de estas entradas no está conforme
con la programación, el mensaje “ EVS01: Pérdida Evento: n ” aparece en la
pantalla principal. Los eventos controlados y no presentes son identificados por un
signo rojo en la pantalla dedicada.
Modo operatorio
Colocar el cursor en la línea donde se desea programar los eventos, insertar la
instrucción “ EVENT” de la lista PROMIA. Luego documentar los argumentos
opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
EVT_OUTIL Control de los eventos Util en punto de parada
Move_Event Control de los eventos autómata en punto de paso
Argumentos
Move_Event [L] ToPoint [E1] [E2] [E3] [E4] [E5] [E6]
[E7] [E8] [E9] [E10] [E11] [E12] [E13]
[E14] [E15] [E16] speed zone tool wobj
La acción Move_Event sin argumento \Ex pone en cero todos los controles de
eventos.
Mensajes asociados:
El mensaje “ EVM02: Esp. Act en Movimiento: n ” aparece en la pantalla de
producción, precisando el evento esperado no presente. Los eventos esperados y
no presentes son identificados por un signo rojo en la pantalla dedicada.
Si el control dinámico está activado y que una de estas entradas no está conforme
con la programación, el mensaje “ EVS01: Pérdida Evento: n ” aparece en la
pantalla principal. Los eventos controlados y no presentes son identificados por un
signo rojo en la pantalla dedicada.
Modo operatorio
Colocar el cursor en la línea donde se desea programar los eventos, insertar la
instrucción “ Move_Event” de la lista PROMIA. Luego documentar los
argumentos clásicos de las instrucciones de movimiento y los argumentos
opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
EVENT Control de los eventos autómata en punto de parada
Move_Evt_Out Control de los eventos herramienta en punto de paso
Sólo los eventos Util declarados en la acción son esperados (en 1), los otros son
ignorados. Si el control dinámico de los eventos Util está activo, sólo los eventos
Util esperados serán controlados regularmente.
Argumentos
EVT_OUTIL [E1] [E2] [E3] [E4] [E5] [E6] [E7] [E8] E9]
[E10] [E11] [E12] [E13] [E14] [E15] [E16]
La acción EVT_OUTIL sin argumento pone en cero todos los controles de eventos
Util.
Mensajes asociados:
El mensaje “ EOM01: Espera Act Herramienta: n ” aparece en la pantalla de
producción, precisando el evento herramienta esperado no presente. Los eventos
Util esperados y no presentes son identificados por un signo rojo en la pantalla
dedicada.
Si el control dinámico está activado y que una de estas entradas no está conforme
con la programación, el mensaje “ EOS01: Pérdida Act Herramienta: n ”
aparece en la pantalla principal. Los eventos Util controlados y no presentes son
identificados por un signo rojo en la pantalla dedicada.
Modo operatorio
Colocar el cursor en la línea donde se desea programar los eventos, insertar la
instrucción "EVT_OUTIL" de la lista PROMIA. Luego documentar os argumentos
opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
EVENT Control de los eventos autómata en punto de parada
Move_Evt_Out Control de los eventos autómata en punto de paso
Argumentos
Move_Evt_Outil [L] ToPoint [E1] [E2] [E3] [E4] [E5]
[E6] [E7] [E8] [E9] [E10] [E11] [E12]
[E13] [E14] [E15] [E16] speed zone tool
Wobj
Mensajes asociados:
El mensaje “ EOS02: Esp. Act Herramienta Mov.: n ” aparece en la pantalla de
producción, precisando el evento herramienta esperado no presente. Los eventos
Si el control dinámico está activado y que una de estas entradas no está conforme
con la programación, el mensaje “ EOS01: Pérdida Act Herramienta: n ”
aparece en la pantalla principal. Los eventos Util controlados y no presentes son
identificados por un signo rojo en la pantalla dedicada.
Modo operatorio
Colocar el cursor en la línea donde se desea programar los eventos, insertar la
instrucción “ Move_Evt_Outil” de la lista PROMIA. Luego documentar los
argumentos clásicos de las instrucciones de movimiento y los argumentos
opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
EVT_OUT Control de los eventos Util en punto de parada
Move_Event Control de los eventos autómata en punto de paso
Principio
Esta programación permite seleccionar entre 2 trayectorias para un mismo código
ciclo, en función de dos eventos autómata distintos. Esta programación no es
utilizada en una trayectoria sino en dirección arriba, en la rutina «Programa».
Los eventos son inter-bloqueados (ver ejemplo).
Ejemplo tipo
Selección de la trayectoria 1 ó 2 para el programa 4, en función de los eventos 3 y
4.
CASE 4
AffAttAiguillage;
WaitUntil DInput(EV3)<>DInput(EV4);
RazAttAiguillage;
IF DInput(EV3)=1 THEN
AutoriseTraj;
Traj1;
ELSE
AutoriseTraj;
Traj2;
ENDIF
Argumentos
La selección de los pilotajes de las secuencias se hace por medio de los
argumentos siguientes:
Todas las secuencias deben ser activadas o desactivadas. Para evitar que ciertas
secuencias estén en un mismo estado, y por lo tanto no supervisadas, se aconseja
activarlas todas al menos una vez, por ejemplo en la trayectoria “ T_Lance ”.
Mensajes asociados
En caso de espera, el mensaje “ SQM01: Espera secuencia: n” aparecerá en la
pantalla de producción. Se puede visualizar las secuencias en defecto en la pantalla
dedicada.
Modo operatorio
Colocar el cursor en la línea donde se desea programar las secuencias de
manutención, insertar la instrucción “SEQ” de la lista PROMIA. Luego
documentar os argumentos opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
CPP Control de las presencias pieza
Argumentos
CPP [CPP1_1] | [CPP1_0] [CPP2_1] | [CPP2_0]
[CPP3_1] | [CPP3_0] [CPP4_1] | [CPP4_0]
[CPP5_1] | [CPP5_0] [CPP6_1] | [CPP6_0]
[CPP7_1] | [CPP7_0] [CPP8_1] | [CPP8_0]
Mensajes asociados:
Durante la ejecución de la acción CPP, mientras que la entrada dedicada en el
control presencia pieza ‘n’ no está bien posicionada, el mensaje “ CPM01: Espera
presencia pieza: n ” aparece en la pantalla de producción.
Si el control dinámico está activado y que una de estas entradas no está conforme
con la programación, el mensaje “ CPS01: Pérdida presencia pieza: n ” aparece
en la pantalla.
Modo operatorio
Colocar el cursor en la línea donde se desea programar las secuencias de
manutención, insertar la instrucción “CPP” de la lista PROMIA. Luego
documentar os argumentos opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
SEQ Pilotaje y control de las secuencias de manutención
Argumentos
Ejemplos
Modo operatorio
Colocar el cursor en la línea donde se desea programar las secuencias de
manutención, insertar la instrucción “CTRL_DYN ” de la lista PROMIA. Luego
documentar os argumentos opcionales, como se indica en el párrafo 9.1.2.
Ver además
Instrucción/Función Función
SEQ Pilotaje y control de las secuencias de manutención
CPP Control de las presencias pieza
EVENT Prueba de los eventos autómata
EVT_OUTIL Prueba de los eventos Util
Move_Event Prueba de los eventos autómata en movimiento
Move_Evt_Out Prueba de los eventos Util en movimiento
PROC T_PriseOutil1()
VAR num standNo:=1;
VAR num toolNo:=1;
!move
OpenCover standNo;
! ! apertura en tiempo oculto
! OpenCover standNo\NoCheck;
! !move
! OpenCover standNo\CheckOnly;
!move
PrepareToolForPick;
!move
LockTool toolNo;
!move
CheckStandEmpty standNo;
CheckToolCarried toolNo;
!move
EnableIONodes toolNo\timeOut:=TimeTool;
CloseCover standNo;
! ! Cierre en tiempo oculto
! CloseCover standNo\NoCheck;
! !move
! CloseCover standNo\CheckOnly;
!move
ENDPROC
PROC T_PrisePréhenseur1()
PROC T_DeposeOutil1()
VAR num standNo:=1;
VAR num toolNo:=1;
Aff_Traj "Tray dejada herramienta 1";
AntiReboucle;
!move
CPP;
SEQ;
PrepareToolForDrop;
!move
OpenCover standNo;
! ! apertura en tiempo oculto
! OpenCover standNo\NoCheck;
! !move
! OpenCover standNo\CheckOnly;
!move
UnlockTool toolNo;
!move
CheckStandFilled standNo;
CheckToolEmpty;
!move
DisableIONodes toolNo\timeOut:=TimeTool;
CloseCover standNo;
! ! Cierre en tiempo oculto
! CloseCover standNo\NoCheck;
! !move
! CloseCover standNo\CheckOnly;
!move
ENDPROC
Instrucción CheckStandEmpty
Esta instrucción permite verificar que ninguna herramienta se encuentra presente
en el mueble.
Argumentos
CheckStandEmpty standNo
standNo Tipo de dato: num
Número del mueble (de 1 a 7)
Modo operatorio
Esta instrucción es típicamente utilizada sólo en las trayectorias de cogida o de
dejada de herramienta para verificar que el mueble está vacío antes de desmontar
una herramienta, o que la herramienta haya sido correctamente cogida y no esté
más en el mueble.
Ver además
Instrucción/Función Función
Instrucción CheckStandFilled
Esta instrucción permite verificar que ninguna herramienta se encuentra presente
en el mueble.
Argumentos
CheckStandFilled standNo
standNo Tipo de dato: num
Número del mueble a controlar (de 1 a 7)
Modo operatorio
Esta instrucción es típicamente utilizada sólo en las rutinas de cogida o de dejada
de herramienta para verificar que el mueble está vacío antes de coger una
herramienta, o que la herramienta haya sido correctamente desmontada y se
encuentre en el mueble.
Ver además
Instrucción/Función Función
Instrucción OpenCover
Argumentos
OpenCover standNo [NoCheck] [CheckOnly]
standNo Tipo de dato: num
Nombre del mueble correspondiente (de 1 a 7)
Con el objetivo de realizar esta operación en tiempo oculto, la apertura puede ser
accionada en punto de paso utilizando el argumento opcional NoCheck; el
resultado será controlado más tarde en la trayectoria utilizando una instrucción
OpenCover con el argumento opcional CheckOnly, en punto de parada
Modo operatorio
Esta instrucción es típicamente utilizada en la trayectoria de aproximación antes de
la cogida o la dejada de una herramienta.
Ver además
Instrucción/Función Función
Instrucción CloseCover
Argumentos
CloseCover standNo [NoCheck] [CheckOnly]
standNo Tipo de dato: num
Nombre del mueble correspondiente.
Con el objetivo de realizar esta operación en tiempo oculto, el cierre puede ser
accionado en punto de paso utilizando el argumento opcional NoCheck; el
resultado será controlado más tarde en la trayectoria utilizando una instrucción
OpenCover con el argumento opcional CheckOnly.
Modo operatorio
Esta instrucción es típicamente utilizada en la trayectoria de liberación que sigue la
cogida o la dejada de una herramienta.
Ver además
Instrucción/Función Función
Instrucción CheckToolEmpty
Esta instrucción permite verificar que ninguna herramienta está embarcada por el
robot.
Argumentos
CheckToolEmpty
(Sin argumento)
Modo operatorio
Esta instrucción es típicamente utilizada sólo en las rutinas de cogida o de dejada
de herramienta para verificar que el semi-cambiador embarcado está vacío antes de
coger una herramienta, o que la herramienta haya sido correctamente desmontada
en un mueble.
Ver además
Instrucción/Función Función
Instrucción CheckToolCarried
Esta instrucción permite verificar que una herramienta dada está embarcada por el
robot.
Argumentos
CheckToolCarried toolNo
toolNo Tipo de dato: num
Número de la herramienta esperada (de 1 a 7)
Modo operatorio
Esta instrucción es típicamente utilizada sólo en las rutinas de cogida o de dejada
de herramienta para verificar que la herramienta fue correctamente cogida o que
una herramienta está presente en el semi-cambiador antes de realizar una dejada.
Ver además
Instrucción/Función Función
Instrucción PrepareToolForPick
Esta instrucción permite verificar las condiciones de cogida herramienta y abrir el
semi-cambiador antes de coger una herramienta.
Argumentos
PrepareToolForPick
(Sin argumento)
Modo operatorio
Esta instrucción es típicamente utilizada en la trayectoria de aproximación antes de
la cogida de una herramienta.
Ver además
Instrucción/Función Función
Instrucción PrepareToolForDrop
Esta instrucción permite verificar las condiciones antes de desmontar una
herramienta.
Argumentos
PrepareToolForDrop
(Sin argumento)
Modo operatorio
Esta instrucción es típicamente utilizada en la trayectoria de aproximación antes de
la dejada de una herramienta.
Ver además
Instrucción/Función Función
Instrucción LockTool
Argumentos
LockTool toolNo [timeOut]
toolNo Tipo de dato: num
Número de la herramienta a bloquear (de 1 a 7)
Modo operatorio
Esta instrucción es típicamente utilizada para efectuar la cogida de la herramienta.
La misma debe programarse en punto de parada.
Ver además
Instrucción/Función Función
Instrucción UnlockTool
Argumentos
UnlockTool toolNo [TimeOut]
toolNo Tipo de dato: num
Número de la herramienta a desbloquear (de 1 a 7)
Modo operatorio
Esta instrucción es típicamente utilizada para efectuar la dejada de la herramienta.
La misma debe programarse en punto de parada.
Ver además
Instrucción/Función Función
Instrucción EnableIONodes
Argumentos
EnableIONodes toolNo [TimeOut]
toolNo Tipo de dato: num
Número de la herramienta correspondiente (de 1 a 7)
La instrucción verifica que los módulos están activos antes del timeout
especificado para cada uno de los módulos (por defecto 2s, si no se utiliza el
argumento opcional timeOut). Si no es el caso, se visualiza un mensaje y la
instrucción repite la prueba hasta la obtención de un informe correcto.
Modo operatorio
Esta instrucción es típicamente utilizada para efectuar la cogida de la herramienta.
La misma debe programarse en punto de parada.
Ver además
Instrucción/Función Función
Instrucción DisableIONodes
Argumentos
DisableIONodes toolNo [TimeOut]
toolNo Tipo de dato: num
Número de la herramienta correspondiente (de 1 a 7)
La instrucción verifica que los módulos están desactivados antes del timeout
especificado para cada uno de los módulos (por defecto 2s, si no se utiliza el
argumento opcional timeOut). Si no es el caso, se visualiza un mensaje y la
instrucción repite la prueba hasta la obtención de un informe correcto.
Modo operatorio
Esta instrucción es típicamente utilizada después de la dejada de la herramienta. La
misma debe programarse en punto de parada.
Ver además
Instrucción/Función Función
Instrucción RequestTool
Argumentos
RequestTool toolNo
toolNo Tipo de dato: num
Número de la herramienta solicitada (de 0 a 7)
Un valor 0 solicita la dejada de la herramienta actual.
Modo operatorio
Esta instrucción es típicamente utilizada en la rutina "Programme" antes de la
solicitud de cada trayectoria. Debe estar precedida de una instrucción
AutoriseTraj.
AutoriseTraj;
RequestTool ToolGeom1; ! cogida de la herramienta 1 en el
mueble
AutoriseTraj;
T_DeposeMontage1; ! dejada herramienta 1 en el montaje
AutoriseTraj;
RequestTool ToolGeom2; ! cogida de la herramienta 2
AutoriseTraj;
T_DeposeMontage2; ! dejada herramienta 2 en el montaje
Ordre \On;
Event \En;
AutoriseTraj;
RequestTool ToolSG1; ! cogida de la herramienta proceso
AutoriseTraj;
T_Work1; ! trayectoria de trabajo
...
AutoriseTraj;
RequestTool 0; ! dejada de la herramienta proceso
Ordre \Om;
Event \Em;
AutoriseTraj;
T_PriseMontage2; ! cogida de la herramienta 2 en el
montaje
AutoriseTraj;
RequestTool 0; ! dejada herramienta 2 en el mueble
AutoriseTraj;
T_PriseMontage1; ! cogida de la herramienta 1 en el
montaje
AutoriseTraj;
RequestTool 0; ! dejada herramienta 1 en el mueble
Tipo de
Título Descripción
mensaje
Tipo de
Título Descripción
mensaje
Origen/Causa:
a/ en una instrucción RequestTool,
la herramienta actual o la herramienta solicitada
está asociada a un mueble cuyo número es <1 ó
>7.
TCHM09: No de
mueble b/ en una instrucción CheckStandEmpty,
incorrecto: n CheckStandFilled, OpenCover ou
CloseCover,
el número de mueble especificado es <1 ó >7
Verificación/Corrección: Verificar la
configuración (a) o la programación (b).
Tipo de
Título Descripción
mensaje
Tipo de
Título Descripción
mensaje
Secuencia tipo
La trayectoria típica de una pinza de soldadura controlada es similar a la de la
cogida de una garra, con las especificidades siguientes:
La utilización de una instrucción LockTool debe programarse, incluso
si el cambiador es pilotado por el autómata, para memorizar la pinza por
el robot, esto para poder reactivar automáticamente la pinza en caso de
reinicialización del armario robot.
La pinza es a continuación activada por una instrucción
SR_CHGOUTIL\Act que activa la pinza, efectúa una calibración y
restablece el agua.
PROC T_PrisePince1()
VAR num standNo:=1;
VAR num toolNo:=1;
PROC T_PrisePince1()
VAR num toolNo:=1;
SR_CHGOUTIL\Act,toolNo;
Por:
SR_CHGOUTIL\ActNoChgOutil,toolNo;
SR_INIT_MVT *, toolNo\ChgOutil,...
Secuencia tipo
La trayectoria típica de dejada de una pinza de soldadura controlada es similar a la
de la dejada de una garra, con las especificidades siguientes:
Durante el movimiento de aproximación se efectúa una medición del
desgaste de los electrodos por una instrucción SR_INIT_PINCE o
SR_INIT_MVT,
Durante el movimiento de aproximación, es posible anticipar el corte del
agua,
PROC T_ DéposePince1 ()
VAR num standNo:=1;
VAR num toolNo:=1;
Aff_Traj "Tray dejada herramienta 1";
AntiReboucle;
!move
PrepareToolForDrop;
!move
! medición desgaste electrodos
SR_INIT_MVT *,1, ...
OpenCover standNo;
!move
! desactivación de la pinza
SR_CHGOUTIL\Desact,toolNo;
UnlockTool toolNo;
!move
CheckStandFilled standNo;
CheckToolEmpty;
!move
CloseCover standNo;
!move
ENDPROC
PROC T_DéposePince1()
VAR num toolNo:=1;
Argumentos
SR_ChgOutil [Act] [ActNoChgOutil] [Desact]
no_pince [TimeWait]
Act Tipo de dato: switch
Activación de la pinza con movimiento de inicialización, instalación del agua y
supervisión de la temperatura del motor.
Durante una activación de la pinza por esta instrucción con el argumento Act, la
pinza se activa y se efectúa un movimiento de inicialización. Entonces el desgaste
de los electrodos es recalculado para esta pinza. El agua es puesta en el circuito de
enfriamiento de la pinza.
Una vez efectuada todas estas operaciones la trayectoria puede ejecutarse
normalmente con esta nueva pinza.
Modo operatorio
Esta instrucción sólo debe utilizarse en las rutinas de cogida y dejada del módulo
ToolChgUser.mod.
Ver además
Instrucción/Función Función
SR_INIT_PINCE Inicialización de la pinza en punto de parada
SR_Init_Mvt Inicialización de la pinza en movimiento
Vista general
La división en programas de trabajo y en trayectorias depende de la complejidad
de la instalación.
Para la gestión de las solicitudes de rodaje relacionadas con las pinzas de
soldadura, la aplicación pone a disposición una instrucción SR_SERVICE que
permite realizar una trayectoria de rodaje en el interior del ciclo de trabajo y ofrece
así una gran flexibilidad de utilización pero necesita tomar ciertas precauciones.
!------------
!Retirar los comentarios para la opción Cambiar Herramienta
! PROC T_Chelm1()
! SR_SERVICE 1\AppelTraj:="T_CHELM_P1";
! SR_SERVICE 2\AppelTraj:="T_CHELM_P2";
! SR_SERVICE 3\AppelTraj:="T_CHELM_P3";
! SR_SERVICE 4\AppelTraj:="T_CHELM_P4";
! ENDPROC
!------------
!Poner en comentarios la rutina para la opción Cambiador
Herramienta
PROC T_Chelm1()
Aff_Traj "T_Chelm1";
AntiReboucle;
! Tray cambio manu secuenciador 1 Pinza 1
MoveJ p_reb_prg,V_moyen,Z_arret,Tool_defaut;
! Trayectoria aproximación
SR_CHELMAN 1;
! trayectoria liberación
SR_INIT_PINCE 1;
SR_SOUDER p_reb_prg,V_moyen,1,31,Tool_defaut,wobj0;
ENDPROC
Después:
!------------
!Retirar los comentarios para la opción Cambiar Herramienta
PROC T_ROD_1()
SR_SERVICE 1\AppelTraj:="T_ROD_P1";
SR_SERVICE 2\AppelTraj:="T_ROD_P2";
SR_SERVICE 3\AppelTraj:="T_ROD_P3";
SR_SERVICE 4\AppelTraj:="T_ROD_P4";
ENDPROC
!------------
!Retirar los comentarios para la opción Cambiar Herramienta
PROC T_Chelm1()
SR_SERVICE 1\AppelTraj:="T_CHELM_P1";
SR_SERVICE 2\AppelTraj:="T_CHELM_P2";
SR_SERVICE 3\AppelTraj:="T_CHELM_P3";
SR_SERVICE 4\AppelTraj:="T_CHELM_P4";
ENDPROC
!------------
!Poner en comentarios la rutina para la opción Cambiador
Herramienta
! PROC T_Chelm1()
! Aff_Traj "T_Chelm1";
! AntiReboucle;
! ! Tray cambio manu secuenciador 1 Pinza 1
! MoveJ p_reb_prg,V_moyen,Z_arret,Tool_defaut;
! ! Trayectoria aproximación
! SR_CHELMAN 1;
! ! trayectoria liberación
! SR_INIT_PINCE 1;
! SR_SOUDER p_reb_prg,V_moyen,1,31,Tool_defaut,wobj0;
! ENDPROC
NOTA:: en el caso en que el cambiador sea controlado por el autómata, se trata del
caso cogida/dejada herramienta a la iniciativa del aplicativo. Mientras que la
solicitud de servicio esté activa, el autómata deberá aceptar y realizar todas las
solicitudes de cogida y de dejada herramienta.
PROC T_RODCYCLE_P1()
Aff_Traj "T_RODCYCLE_P1";
AntiReboucle;
! Tray rodaje Secuenciador 1 pinza 1 a partir del ciclo
! insertar aquí los cambios autómata de puesta en
seguridad
! respecto al entorno
SR_RODER 1,1;
! trayectoria liberación
SR_INIT_PINCE 1;
!SR_SOUDER p_Cycle, V_moyen, 1,151, Tool_defaut, wobj0;
!Retorno hacia el ciclo abandonado
ENDPROC
Instrucción SR_Service
Esta instrucción permite el direccionamiento de las solicitudes de servicio hacia las
trayectorias definidas por el integrador.
Argumentos
SR_Service Pince [AppelTraj] [TestRod] [ChgElect]
PROC T_ROD_1()
SR_SERVICE 1\AppelTraj:="T_ROD_P1";
SR_SERVICE 2\AppelTraj:="T_ROD_P2";
SR_SERVICE 3\AppelTraj:="T_ROD_P3";
ENDPROC
PROC T_Chelm1()
SR_SERVICE 1\AppelTraj:="T_CHELM_P1";
SR_SERVICE 2\AppelTraj:="T_CHELM_P2";
SR_SERVICE 3\AppelTraj:="T_CHELM_P3";
ENDPROC
En este caso (ver los ejemplos anteriores) al efectuar una solicitud de servicio cada
pinza será probada sucesivamente para determinar la o las pinzas correspondientes.
Si una pinza es efectivamente en espera de servicio y que esta última no es la pinza
actual, se solicita la trayectoria de dejada de la herramienta actual, así como la
trayectoria de cogida de la herramienta correspondiente.
Una vez que el tobot está equipado con la pinza en solicitud de servicio, se ejecuta
la trayectoria pasada en argumento (AppelTraj).
Esta secuencia es renovada para cada una de las pinzas en espera de servicio.
PROC Traj1()
VAR bool bStatus;
Acción SR_SOUDER
Principio
Esta instrucción es la instrucción de base de la aplicación de soldadura por puntos;
la misma es utilizada en todas las trayectorias de soldadura, así como en fin de
trayectoria o de cambio de electrodos.
Integra el desplazamiento hacia un punto de parada y un acción de soldadura en
este punto.
Esta acción de soldadura puede efectuarse, en paralelo, en dos pinzas conectadas
cada una a un secuenciador de soldadura.
Argumentos
SR_SOUDER [\J] ToPoint speed no_pince prg_soud
[\QuickRelease] outil objet [\inpos]
J Tipo de dato: switch
Parámetro opcional que define que el movimiento será articular (por defecto, el
desplazamiento es de tipo lineal).
ToPoint Tipo de dato: robtarget
Posición apuntada por la instrucción.
speed Tipo de dato: speeddata
Velocidad programada del desplazamiento hacia el punto.
no_pince Tipo de dato: num
Número de la pinza utilizada para el punto de soldadura.
prg_soud Tipo de dato: num
Número del programa de soldadura a ejecutar en el secuenciador.
QuickRelease Tipo de dato: tooldata
Parámetro opcional utilizado cuando la opción SoftEqualize está presente para
eliminar el movimiento de liberación del electrodo fijo después de la soldadura y
permitir así ganar tiempo en las soldaduras aproximadas, típicamente utilizado en
las trayectorias de costura.
outil Tipo de dato: tooldata
Referencial herramienta utilizado para el movimiento.
objet Tipo de dato: wobjdata
Referencial objeto utilizado para el movimiento.
inpos Tipo de dato: switch
La presencia de este argumento invalida la anticipación del cierre de la pinza
(utilizado en particular con las pinzas neumáticas).
Modo operatorio
Colocar el cursor en la línea donde se desee programar punto de soldadura, poner
el robot en posición y pilotar la pinza para alcanzar una distancia razonable de las
chapas, insertar la instrucción "SR_SOUDER" de la lista de instrucciones
PROCESO.
Acción SR_INIT_PINCE
Argumentos
SR_INIT_PINCE no_pince
Modo operatorio
Colocar el cursor en la línea donde se desee programar la calibración de la pinza,
insertar la instrucción "SR_INIT_PINCE" de la lista de instrucciones PROCESO.
Ver además
Instrucción/Función Función
SR_INIT_MVT Calibración de la pinza en punto de paso
Acción SR_INIT_MVT
SR_INIT_MVT realiza un movimiento de calibración de la pinza, robot en
movimiento, para tomar en cuenta el desgaste de los electrodos.
Esta instrucción es típicamente utilizada durante el retorno hacia el punto de
Rebouclage, al final de cada ciclo de trabajo o en fin de trayectoria de rodaje o de
cambio de electrodos. En estos dos últimos casos, valida la solicitud de servicio
respecto al autómata.
Argumentos
SR_INIT_MVT [J] ToPoint no_pince
[ChgOutil] vitesse zone outil objet
Modo operatorio
Colocar el cursor en la línea donde se desee programar la calibración de la pinza,
insertar la instrucción "SR_INIT_MVT" de la lista de instrucciones PROCESO.
Ver además
Instrucción/Función Función
Argumentos
SR_RODER no_pince prg_rod [Force1]
no_pince Tipo de dato: num
Número de la pinza correspondiente por el rodaje.
Si el programa de rodaje utilizado fue definido para otra pinza que no sea la
especificada por la acción SR_RODER, se visualiza el mensaje siguiente:
Modo operatorio
Colocar el cursor en la línea donde se desee programar el rodaje, insertar la
instrucción "SR_RODER" de la lista de instrucciones PROCESO.
Acción "Abattant1"
Argumentos
Abattant1 [Avance] | [Recul]
Avance Tipo de dato: switch
Mando de avance de la fresa.
Modo operatorio
La programación a partir del movimiento de la fresa se hace en la ventana “Editor
de programa”.
Ver además
Instrucción/Función Función
SeqSR2 Pilotaje de un segundo brazo vinculado al proceso SRE
Acción "SeqSR2"
Argumentos
SeqSR2 [Avance] | [Recul]
Avance Tipo de dato: switch
Mando de avance del brazo.
Modo operatorio
La programación del movimiento del brazo se hace en la ventana “Editor de
programa”.
Ver además
Instrucción/Función Función
Abattant1 Pilotaje de la fresa
Argumentos
SR_CEAU etat_voulu
Modo operatorio
Colocar el cursor en la línea donde se desee programar el pilotaje de la
electroválvula de agua, insertar la instrucción "SR_CEAU" de la lista de
instrucciones PROCESO.
Acción "SR_SERRER"
Argumentos
SR_SERRER no_pince effort epaisseur [ErrEpais]
[Temps]
Modo operatorio
Colocar el cursor en la línea donde se desee programar el apriete de la pinza,
insertar la instrucción "SR_SERRER" de la lista de instrucciones PROCESO.
Acción "SR_CHELAUTO"
Argumentos
SR_CHELAUTO no_pince [NoCtrlElec]
Modo operatorio
Colocar el cursor en la línea donde se desee programar el cambio de los electrodos
de la pinza, insertar la instrucción "SR_CHELAUTO" de la lista de instrucciones
PROCESO.
Argumentos
SR_ CHELMAN no_pince
Modo operatorio
Colocar el cursor en la línea donde se desee programar el cambio de los electrodos
de la pinza, insertar la instrucción "SR_CHELMAN" de la lista de instrucciones
PROCESO.
Argumentos
SR_CHELAUTO_MVT [J] [NoCtrlElec] ToPoint no_pince
vitesse zone outil objet
Modo operatorio
Colocar el cursor en la línea donde se desee programar el cambio de los electrodos
de la pinza, insertar la instrucción "SR_CHELAUTO_MVT" " de la lista de
instrucciones PROCESO.
Principio
Los módulos usuario a salvaguardar durante la salvaguarda simplificada son
preconfigurados por la aplicación en función de la aplicación instalado. Si el
integrador crea nuevos módulos usuario, el mismo podrá añadirlos a la salvaguarda
simplificada respetando ciertas reglas simples.
La sección “comportamiento”
Esta sección está constituida por 2 flags, « ShowCheck »et « AutoCheck », que
definen el modo de funcionamiento de la pantalla de salvaguarda.
<Behaviour>
<ShowCheck>TRUE</ShowCheck>
<AutoCheck>FALSE</AutoCheck>
<Reserve></Reserve>
</Behaviour>
ShowCheck
valores FALSE TRUE
Modo Verificación
FALSE Modo Sin Verificación
AutoCheck separada
Modo Verificación
TRUE (*)
integrada
(*) Cuando los dos flags están en TRUE, se tiene a la vez una verificación
separada e integrada, lo que no ofrece ningún interés.
La sección Módulos
La sección Módulos está constituida por la cantidad de definición de módulos que
sea necesario.
Cada módulo es definido de la forma siguiente:
<Module>
<Name>PRG_MVT</Name>
<Task>T_ROB1</Task>
<System>TRUE</System>
<Home>FALSE</Home>
<Media></Media>
<Directory>SITE</Directory>
</Module>
Campo Descripción
Nombre del módulo a salvaguardar, tal como se define en
Name
el encabezado del módulo
Nombre de la tarea a la cual pertenece el módulo.
Si esta información es dejada en blanco, se buscará el
Task módulo en todas las tareas definidas en el sistema. Será
asignado a la primera tarea encontrada (en el orden del
archivo SYS.CFG)
TRUE o FALSE; si TRUE, estipula que el camino
System precisado en «Directory»es relativo al directorio del
sistema robot.
TRUE o FALSE; si TRUE, estipula que el camino
Home precisado en «Directory»es relativo al directorio
«Home»del sistema robot.
Nombre eventual del periférico donde se encuentra el
Media
directorio «Directory»
Directorio relativo al sistema robot, al directorio HOME o
Directory
al media estipulado.
Otros ejemplos:
<Module>
<Name>DEF_SIT3</Name>
<Task></Task>
<System>TRUE</System>
<Home>FALSE</Home>
<Media></Media>
<Directory>SITE3</Directory>
</Module>
<Module>
<Name>SWDATASH</Name>
<Task>T_ROB1</Task>
<System>FALSE</System>
<Home>TRUE</Home>
<Media></Media>
<Directory>SWIT</Directory>
</Module>
<Module>
<Name>PRG_MVT</Name>
<Task>T_ROB1</Task>
<System>FALSE</System>
<Home>FALSE</Home>
<Media>bd0</Media>
<Directory>76-55714</Directory>
</Module>
<Module>
<Name>PRG_MVT</Name>
<Task>T_ROB1</Task>
<System>TRUE</System>
<Home>FALSE</Home>
<Media></Media>
<Directory>REST_ABB/RAPID/TASK1/PROGMOD</Directory>
</Module>
13.1 Generalidades
El sistema es configurado automáticamente con las tarjetas E/S según las opciones
instaladas.
Las diferentes causas de parada de la producción son señaladas al autómata de línea en forma de una palabra
de estado y de un comentario.
En un sistema multi-robots, una palabra permite igualmente señalar el robot que causó esta parada.
Palabra
de Abreviatura de Significado
estado
HPR Fuera de Producción Fuera de Producción
Es un defecto que acciona una intervención
operador (Ejemplos: Rearme local del
APP Parada por Avería.
armario, validación de un defecto en el
armario,...).
El robot es parado debido a una solicitud
operador (Ejemplos: STOP local, Robot en
APE Parada por Explotación.
Repli o está llegando a la posición de
Repli...).
El robot es parado, ya que le falta una
información lógica de la parte del autómata
AI Parada Inducida.
(Ejemplos: Espera del código de ciclo,
espera evento del autómata...).
El robot funciona, pero hace algo más que
APF Parada Funcional. la producción (Ejemplo: programa de
servicio en curso).
El robot señala un problema que no lo
detiene obligatoriamente (Ejemplo: Defecto
Presencia Pieza...). Nota: si el problema
dura, es el autómata que cuenta los tiempos
DE Deriva. de ciclo de los componentes de
automatismo, y señala al seguimiento
central (al cabo de un cierto tiempo) que el
robot es parado por “sobrepaso de tiempo
de ciclo”.
El proceso robot señala una alarma que se
traduce a menudo por una solicitud de
AOP Solicitud Operador.
intervención del operador (Ejemplo: Alerta
el cambio de constituyente)
15 Reglas a respetar
15.1 Cambios autómata relacionados con los estados y eventos robot
#
SYSSIG_OUT:
#
SYSSIG_IN:
#
EIO_CROSS:
Para mayor información acerca de las entradas & salidas sistema o en las cross
conexiones, ver la Guía Usuario de los armarios ABB, $ Parámetros Sistema.
Además, por software, las ecuaciones siguientes son igualmente generadas
(indicadas aquí en el mismo formato que las cross conexiones):
-Res RCReady -Act1 "xAutoOn" –Oper1 "AND" –Act2 "xRunChOk"
-Res "AUTO" –Act1 "xAutoOn"
-Res "MANU" –Act1 "xAutoOn" –Act1_Invert
Reglas a respetar
La salida autómata “solicita la Puesta en potencia Robot” conectada a DMSP debe
tomar en cuenta el hecho que:
El robot está en modo auto. y cadena se seguridad correcta (RCReady=1)
El armario está fuera de potencia (xMotorOn=0)
La salida autómata “comienzo ciclo” conectada a la entrada DCCY debe tomar en
cuenta que:
El robot está en modo auto. y cadena se seguridad correcta (RCReady=1)
El armario está fuera de potencia (xMotorOn=1)
Las salidas autómata “Autorización de evolución robot” conectadas a AEVRB y
“robot en el flujo de producción” se deben programar en función de las
especificidades del sitio.
Para la gestión de las interfaces robot, las órdenes emitidas por un robot deben ser
reflejadas por el autómata en los eventos emitidos por los otros robots.
La salida RcReady indica que el armario está listo para tomar los mandos del
autómata. Se posiciona cuando la cadena de seguridad es correcta, y que el armario
está en modo automático.
GS (iR)
ES (iR)
AS (iR)
Auto (R‐>A)
Liberación Auto
en PMA (AOR)
RcReady (R‐>A)
Enpro (A->R)
RcReady (R->A)
DMSP 1s
(A->R)
xMotorOn (R->A)
Enpro (A->R)
RcReady (R->A)
XMotorOn (R->A)
1s
DDCY
(A->R)
xCycleOn (R->A)
XMotorOn (R‐>A)
1
XCycleOn (R‐>A)
Repliegue (R‐>A)
DDCY
(A‐>R)
Reb_prg (R‐>A)
Robot en movimiento hacia el punto de
conexión en bucle
Palabra comentario
44 43 21
XMotorOn (R‐>A)
1
XCycleOn (R‐>A)
Envío código
Ciclo 63 (véase envío código)
Reb_prg (R‐>A)
Repli (R‐>A)
Trayectoria
Fin del ciclo en curso
de repliegue
Código Autómata
Paridad (CPC0)
CVC_1
CVC_0
1 s
Robot
Orden X
El autómata puede presentar
El robot está en Batido el código siguiente desde el
Código listo / Ejecución del código
espera de código código momento en que lo conoce
El control de la paridad del código sólo tiene lugar en Promia si la señal CPCO es
definida en el cuadro de cambios con el autómata.
Esta señal es opcional cuando los cambios entre el robot y el autómata se hacen
por un bus de terreno. En cambio es obligatorio cuando estos intercambios se
hacen por un enlace hilo a hilo.
Cant. Cant.
bits del bits del
Código CPC0 código CPC0
código en código en
1 1
0 0 1 32 1 0
1 1 0 33 2 1
2 1 0 34 2 1
3 2 1 35 3 0
4 1 0 36 2 1
5 2 1 37 3 0
6 2 1 38 3 0
7 3 0 39 4 1
8 1 0 40 2 1
9 2 1 41 3 0
10 2 1 42 3 0
11 3 0 43 4 1
12 2 1 44 3 0
13 3 0 45 4 1
14 3 0 46 4 1
15 4 1 47 5 0
16 1 0 48 2 1
17 2 1 49 3 0
18 2 1 50 3 0
19 3 0 51 4 1
20 2 1 52 3 0
21 3 0 53 4 1
22 3 0 54 4 1
23 4 1 55 5 0
24 2 1 56 3 0
25 3 0 57 4 1
26 3 0 58 4 1
27 4 1 59 5 0
28 3 0 60 4 1
29 4 1 61 5 0
30 4 1 62 5 0
31 5 0 63 6 1
Solicitud de
acceso (IA)
cvc_1 Bloqueo del código ciclo
(A‐>R)
Reb_Prg
Robot en curso de trabajo
(R‐>A)
Autorización de
acceso (IA)
Apertura puerta (IA)
AS (iR)
(*)
XMotorOn (R‐>A)
(**)
XCycleOn (R‐>A)
(*) Véase cronograma puesta en potencia (**) Véase cronograma puesta en ejecución
Para la gestión de las interfaces robot, las órdenes emitidas por un robot deben ser
reflejadas por el autómata en los eventos emitidos por los otros robots.
16 Índice y anexos
16.1 Índice
Cambiador de herramientas
A Configuración del cambiador ................................. 81
Eventos y órdenes autómata
Controles dinámicos
Acción en trayectoria
Acción en trayectoria
Instrucción EVENT.......................................... 149
Instrucción CTRL_DYN.................................. 162
Instrucción Move_Event .................................. 151
Instrucción OREN............................................ 143 Controles dinámicos
Acción en trayectoria
Configuración
Instrucción Move_Ordre .................................. 144
Valores predefinidos .......................................... 73
Eventos utilizados para direccionamiento............. 157
Controles presencia pieza
Eventos y órdenes herramienta
Configuración
Acción en trayectoria
Instrucción DefineCPP....................................... 60
Instrucción ORD_OUTIL ................................ 146 Rutina Enreg_CPP ............................................. 59
Acción en trayectoria
Controles presencia pieza
Instrucción EVT_OUTIL ................................. 153
Instrucción Move_Evt_Outil............................ 155 Acción en trayectoria
Instrucción Move_Ord_Outil ........................... 147 Instrucción CPP ............................................... 160
C E
Cambiador de herramienta Eventos y órdenes autómata
Acción en trayectoria Configuración
Instrucción RequestTool .................................. 180 Limitantes sobre las E/S.................................... 36
Configuración
Eventos y órdenes herramienta
Instrucción TchDefineStand............................... 82
Instrucción TchDefineStandSig ......................... 83 Configuración
Instrucción TchDefineTchSig ............................ 87 Limitante sobre las E/S ...................................... 36
Instrucción TchDefineTool ................................ 84 Instrucción DefineOrdOut.................................. 62
Instrucción TchDefineToolChanger................... 85 Rutina EnregOrdEvtOut..................................... 61
Instrucción TchDefineToolCode ........................ 86
Configuración de las herramientas ......................... 80
M
Configuración de los muebles................................. 80
SRE Mensajes usuario
Instrucción SR_ChgOutil ................................. 188 Acción en trayectoria
Instrucción SR_Service .................................... 192 Instrucción AffMessPU...................................... 70
Cogida/Dejada herramienta Instrucción RazMessPU..................................... 72
Instrucción CheckStandEmpty ......................... 168 Configuración
Instrucción CheckStandFilled .......................... 169 Personalización .................................................. 67
Instrucción CheckToolCarried ......................... 173
Instrucción CheckToolEmpty........................... 172 Modules personnalisables
Instrucción CloseCover .................................... 171
Tronco común ........................................................ 42
Instrucción DisableIONodes ............................ 179
Instrucción EnableIONodes ............................. 178
Instrucción LockTool ....................................... 176 N
Instrucción OpenCover .................................... 170
Instrucción PrepareToolForDrop ..................... 175 Nivles de peligro ............................................... 19
Instrucción PrepareToolForPick....................... 174
Instrucción UnlockTool.................................... 177