Está en la página 1de 33

09.

- Programación del sistema de control con Unity


Pro XL V3.0.
0. Introducción

Unity Pro que es un software común de programación, puesta a punto y


explotación de los autómatas, de gama media-alta de Telemacanique de la
familia de plataformas Modicon, M340, Premium, Quantum y coprocesadores
Atrium. El software IEC 61131-3, Unity Pro surge de la experiencia en los
software PL7 y Concept. Además abre las puertas de un conjunto completo de
nuevas funcionalidades para obtener una mayor productividad:
- Un elevado diseño funcional.
- Una óptima estandarización para la reutilización de los desarrollos.
- Numerosas herramientas de diagnóstico de programas y mejora en la
explotación de los sistemas.
- Nuevos servicios de diagnóstico integrados.

En este apartado se describen todos los elementos usados en la programación


con Unity. Se explicará el funcionamiento de todos los bloques usados en el
programa así como la configuración del equipo.

09.1
1. Creación y configuración de un proyecto

La creación de un proyecto siempre empieza por la selección del procesador al


cual va asignado dicho proyecto. Partiendo de que el software UNITY está
abierto, hay dos posibilidades, haciendo clic en Menú Fichero Æ Nuevo, o
eligiendo el icono en la barra de herramientas. Seguidamente, se abre una
ventana donde se ha de definir el procesador. En este caso se tiene el Modicon
M340 como se muestra a continuación:

A continuación se configurará el PLC. El directorio Configuración del proyecto


permite acceder a la configuración de hardware y a la parametrización de los
módulos: bus, bastidor, módulo. Para ello se selecciona el bastidor dentro del
Explorador de proyectos y en la configuración gráfica del bastidor se podrán ir
introduciendo los módulos que contenga el PLC del sistema.

El primer módulo es la fuente de alimentación del autómata y el segundo es el


procesador que se había elegido anteriormente. Estos dos módulos siempre
aparecen en esta disposición.

El tercer módulo se pondrá el de las entradas digitales BMX DDI 6402K. Este
módulo posee 64 entradas digitales de 24Vcc común positivo.

El cuarto módulo será el de las salidas digitales BMX DDO 6402K. Este módulo
posee 64 salidas digitales transistor común negativo.

09.2
La configuración final del autómata queda de la forma siguiente:

09.3
2. Tabla de símbolos

A continuación se muestran las variables elementales usadas en el proyecto.


Para la asignación de señales se usa la notación siguiente:

%<tipo de intercambio><r>.<m>.<c>

r Bastidor
m Slot del
módulo
c Canal

- Las entradas digitales: %Ir.m.c


- Las salidas digitales: %Qr.m.c

Nombre Dirección Tipo Comentario


Condición de transición. A uno
cuando se pulsa el botón
AUTOMATICO BOOL
automático y no se pulsa el de
manual
AUX_K1 %I0.1.25 EBOOL
AUX_K2 %I0.1.26 EBOOL
AUX_K3 %I0.1.27 EBOOL
AUX_K4 %I0.1.28 EBOOL
AUX_K5 %I0.1.29 EBOOL
AUX_K51 %I0.1.30 EBOOL
BANDEJAS_TOTALES UINT Bandejas totales en el sistema
C_CINTA_0 UINT Cantidad de piezas en la cinta 0
C_CINTA_1 UINT Cantidad de piezas en la cinta 1
C_CINTA_2 UINT Cantidad de piezas en la cinta 2
C_CINTA_3 UINT Cantidad de piezas en la cinta 3
C_CINTA_4 UINT Cantidad de piezas en la cinta 4
C_CINTA_5 UINT Cantidad de piezas en la cinta 5
CICLOS_DE_FABRICACION UINT Contador de ciclos de fabricación
ARRAY[1..11] Vector con los tipos de piezas que
CINTA_0
OF INT hay en la cinta 0
ARRAY[1..11] Vector con los tipos de piezas que
CINTA_1
OF INT hay en la cinta 1
ARRAY[1..11] Vector con los tipos de piezas que
CINTA_2
OF INT hay en la cinta 2
ARRAY[1..11] Vector con los tipos de piezas que
CINTA_3
OF INT hay en la cinta 3
ARRAY[1..11] Vector con los tipos de piezas que
CINTA_4
OF INT hay en la cinta 4
ARRAY[1..11] Vector con los tipos de piezas que
CINTA_5
OF INT hay en la cinta 5
Cuando se activa se pueden
CONTAR_BANDEJAS BOOL
contar las bandejas del sistema
ENT_ALM_0 %Q0.2.32 EBOOL Entrada 0 del almacén
ENT_ALM_1 %Q0.2.33 EBOOL Entrada 1 del almacén
ENT_ALM_2 %Q0.2.34 EBOOL Entrada 2 del almacén

09.4
ENT_ALM_3 %Q0.2.35 EBOOL Entrada 3 del almacén
A uno la bandeja irá a la estación
ENTRAR_STA BOOL
A
Condición de transición. A uno
FALLO_GRAVE BOOL cuando se produce un fallo grave
en el sistema
Condición de transición. A uno
FALLO_LEVE BOOL cuando se produce un fallo leve en
el sistema
Condición de transición. A uno
cuando se finaliza el ciclo de
FIN_DE_CICLO EBOOL
producción después de haber sido
solicitado
i UINT
Variable para la inicialización
INI_FC EBOOL
después de fin de ciclo
Variable para inicializar la acción
INI_PREP_SIST EBOOL
de preparar el sistema
ip1 UINT
ip2 UINT
ip3 UINT
j UINT
K1 %Q0.2.16 EBOOL Activa el motor 1
K1_MANUAL EBOOL Activa el motor 1 en modo manual
K2 %Q0.2.17 EBOOL Activa el motor 2
K2_MANUAL EBOOL Activa el motor 2 en modo manual
K3 %Q0.2.18 EBOOL Activa el motor 3
K3_MANUAL EBOOL Activa el motor 3 en modo manual
K4 %Q0.2.19 EBOOL Activa el motor 4
K4_MANUAL EBOOL Activa el motor 4 en modo manual
Activa el motor 5 con sentido hacia
K5 %Q0.2.20 EBOOL
la cinta
Activa el motor 5 con sentido hacia
K5_MANUAL EBOOL
la cinta en modo manual
Activa el motor 5 con sentido hacia
K51 %Q0.2.21 EBOOL
la estación
Activa el motor 5 con sentido hacia
K51_MANUAL EBOOL
la estación en modo manual
Bit 0 del lector de códigos de
LECTOR_B0 %I0.1.40 EBOOL
barras
Bit 1 del lector de códigos de
LECTOR_B1 %I0.1.41 EBOOL
barras
Bit 2 del lector de códigos de
LECTOR_B2 %I0.1.42 EBOOL
barras
Bit 3 del lector de códigos de
LECTOR_B3 %I0.1.43 EBOOL
barras
Señal de dato listo del lector de
LECTOR_RDY %I0.1.44 EBOOL
códigos de barras
LONG_CINTA_CORTA REAL Longitud de la cinta corta (m)
LONG_CINTA_LARGA REAL Longitud de la cinta larga (m)
Luz de automático en modo
LUZ_A_MANUAL EBOOL
manual
LUZ_M_MANUAL EBOOL Luz de manual en modo manual
LUZ_MODO_AUTOMATICO %Q0.2.24 EBOOL Luz modo automático
LUZ_MODO_MANUAL %Q0.2.22 EBOOL Luz modo manual

09.5
Luz de paro motores en modo
LUZ_P_MANUAL EBOOL
manual
LUZ_PARO_MOTORES %Q0.2.23 EBOOL Luz de paro de motores
Condición de transición. A uno
MANUAL BOOL cuando se pulsa el botón manual y
no se pulsa el de automático
MODO_AUTOMATICO %I0.1.22 EBOOL Botón de modo automático
MODO_MANUAL %I0.1.21 EBOOL Botón de modo manual
P_MANUAL_P1 BOOL Prioridad de la pieza 1 manual
P_MANUAL_P2 BOOL Prioridad de la pieza 2 manual
P_MANUAL_P3 BOOL Prioridad de la pieza 3 manual
A uno permite a las bandejas
PASAR_DESVIO_1 BOOL
pasar este desvío
A uno permite a las bandejas
PASAR_DESVIO_2 BOOL
pasar este desvío
A uno permite a las bandejas
PASAR_DESVIO_3 BOOL
pasar este desvío
A uno permite a las bandejas
PASAR_DESVIO_4 BOOL
pasar este desvío
Última pieza leída por el lector de
PIEZA_ANTERIOR INT
códigos de barras
Pieza leída por el lector de códigos
PIEZA_LEIDA INT
de barras
VECTOR CON EL ORDEN DE
ARRAY[1..11]
PIEZAS_ENTRADA ENTRADA DE PIEZAS EN EL
OF INT
ALMACÉN
VECTOR CON EL ORDEN DE
ARRAY[1..11]
PIEZAS_SALIDA SALIDA DE PIEZAS DEL
OF INT
ALMACÉN
Piezas totales a fabricar en cada
PIEZAS_TOTALES UINT
ciclo
Condición de transición. A uno
REARME BOOL cuando se pulsa el botón manual y
automático
S1 %I0.1.1 EBOOL Sensor S1
S2 %I0.1.2 EBOOL Sensor S2
S3 %I0.1.3 EBOOL Sensor S3
S4 %I0.1.4 EBOOL Sensor S4
S5W %I0.1.5 EBOOL Sensor S5 - wiper
S6 %I0.1.6 EBOOL Sensor S6
S7 %I0.1.7 EBOOL Sensor S7
S8 %I0.1.8 EBOOL Sensor S8
S9 %I0.1.9 EBOOL Sensor S9
S10W %I0.1.10 EBOOL Sensor S10 - wiper
S11 %I0.1.11 EBOOL Sensor S11
S12 %I0.1.12 EBOOL Sensor S12
S13W %I0.1.13 EBOOL Sensor S13 - wiper
S14 %I0.1.14 EBOOL Sensor S14
S15 %I0.1.15 EBOOL Sensor S15
S16 %I0.1.16 EBOOL Sensor S16
S17 %I0.1.17 EBOOL Sensor S17
S18 %I0.1.18 EBOOL Sensor S18
S19 %I0.1.19 EBOOL Sensor S19
S20 %I0.1.20 EBOOL Sensor S20

09.6
SAL_ALM_0 %I0.1.32 EBOOL Salida 0 proveniente del almacén
SAL_ALM_1 %I0.1.33 EBOOL Salida 1 proveniente del almacén
SAL_ALM_2 %I0.1.34 EBOOL Salida 2 proveniente del almacén
SAL_ALM_3 %I0.1.35 EBOOL Salida 3 proveniente del almacén
A uno esta activada la salida de
SALIR_STA BOOL
material de la estación A
SETA %I0.1.23 EBOOL SETA DE EMERGENCIA
Condición de transición. A uno el
SISTEMA_LISTO BOOL sistema esta listo para producir
normalmente
Tiempo que tarda en pasar una
T_CINTA_CORTA TIME
bandeja la cinta corta
Tiempo que tarda en pasar una
T_CINTA_LARGA TIME
bandeja la cinta larga
A uno se saca material de la cinta
VACIAR_CINTA_5 BOOL
5
VELOC_CINTA REAL Velocidad lineal de las cintas
Y0 %Q0.2.0 EBOOL Válvula general de aire a presión
Válvula general de aire a presión
Y0_MANUAL EBOOL
en modo manual
Y1 %Q0.2.1 EBOOL Válvula Y1
Y1_MANUAL EBOOL Válvula Y1 en modo manual
Y2 %Q0.2.2 EBOOL Válvula Y2
Y2_MANUAL EBOOL Válvula Y2 en modo manual
Y3 %Q0.2.3 EBOOL Válvula Y3
Y3_MANUAL EBOOL Válvula Y3 en modo manual
Y4 %Q0.2.4 EBOOL Válvula Y4
Y4_MANUAL EBOOL Válvula Y4 en modo manual
Y5 %Q0.2.5 EBOOL Válvula Y5
Y5_MANUAL EBOOL Válvula Y5 en modo manual
Y6 %Q0.2.6 EBOOL Válvula Y6
Y6_MANUAL EBOOL Válvula Y6 en modo manual
Y7 %Q0.2.7 EBOOL Válvula Y7
Y7_MANUAL EBOOL Válvula Y7 en modo manual
Y8 %Q0.2.8 EBOOL Válvula Y8
Y8_MANUAL EBOOL Válvula Y8 en modo manual
Y9 %Q0.2.9 EBOOL Válvula Y9
Y9_MANUAL EBOOL Válvula Y9 en modo manual
Y10 %Q0.2.10 EBOOL Válvula Y10
Y10_MANUAL EBOOL Válvula Y10 en modo manual
Y11 %Q0.2.11 EBOOL Válvula Y11
Y11_MANUAL EBOOL Válvula Y11 en modo manual
Y12 %Q0.2.12 EBOOL Válvula Y12
Y12_MANUAL EBOOL Válvula Y12 en modo manual
Y13 %Q0.2.13 EBOOL Válvula Y13
Y13_MANUAL EBOOL Válvula Y13 en modo manual
Y14 %Q0.2.14 EBOOL Válvula Y14
Y14_MANUAL EBOOL Válvula Y14 en modo manual

09.7
3. Estructura de datos derivados

Son estructuras que pueden ser definidas por el usuario. Para el proyecto se
han usado las que se detallan a continuación.

3.1. Cantidad
Estructura que se usará dentro de la estructura pieza que contendrá tanto la
cantidad inicial a fabricar de ese tipo de pieza como la cantidad de piezas
que quedan por fabricar.

3.2. oST
Esta estructura que se usará también dentro de la estructura pieza
contendrá los parámetros de las estaciones de trabajo que hay en el
sistema. Se definirá una variable para indicar si en la estación de trabajo se
le realizará alguna operación a la pieza en cuestión y de ser así el tiempo
que durará dicha operación.

3.3. Pieza
Estructura usada para los distintos tipos de piezas. Esta estructura
contendrá los parámetros necesarios para la fabricación de la pieza, como
son la cantidad, las operaciones que se le realizaran a la pieza y la prioridad
de esta con respecto a las demás piezas.

En la imagen siguiente se muestran los tipos de datos derivados ya


comentados.

09.8
4. Bloques de funciones del usuario (DFB)

Un DFB es un bloque de programa que se ha escrito con el fin de responder a


las características específicas de la aplicación. Los bloques de función
permiten estructurar y mejorar la aplicación.

Incluye:
• una o varias secciones escritas en lenguaje de contactos (LD), en lista
de instrucciones (IL), en literal estructurado (ST) o en lenguaje de
bloques funcionales (FBD),
• parámetros de entradas/salidas y
• variables internas públicas o privadas.

Los bloques de funciones del usuario usados en este proyecto se describen a


continuación.

4.1. CAMBIOS_CINTAS

Este bloque gestiona el traspaso de material en las intersecciones de 2 cintas.


Estas intersecciones pueden ser de dos tipos, según se tenga el sensor del
elevador tipo wiper o no. Ambos tipos de configuraciones se muestran a
continuación:

Sensor del elevador normal Sensor del elevador tipo wiper

El funcionamiento de este bloque es el siguiente:


- Si llega una bandeja al sensor de entrada y la intersección no esta
ocupada, la bandeja pasa al elevador y se pasa el estado de la
intersección a ocupado. Para ello se usará la variable EO. Si la
intersección esta ocupada la bandeja esperará a la entrada de esta a
que este libre.
- Una vez el sensor del elevador detecte la bandeja actuará de forma que
la bandeja continúe hacia la cinta siguiente. Esto es en el caso de que el
sensor no sea tipo wiper el elevador subirá mientras que si el sensor es
tipo wiper el elevador bajará.
- Una vez la bandeja salga de la intersección esta pasará a estar libre. En
el caso de que el sensor del elevador sea normal se liberará la
intersección al pasar la bandeja por el sensor de salida. Si el sensor del
elevador es tipo wiper la intersección quedará libre al ponerse el sensor
del elevador a nivel alto (que es su estado normal).

09.9
La estructura de este bloque se muestra en la imagen siguiente:

El código que resuelve las especificaciones antes comentadas se verá en la


parte de “Código de programas del Unity Pro” de este proyecto.

4.2. CAMBIOS_CINTAS_D

Este bloque gestiona el paso de bandejas en intersecciones de 3 cintas. Dos


de estas cintas están al mismo nivel mientras que la tercera esta a una cota
superior que las dos anteriores. Esta configuración puede observarse en la
imagen siguiente:

Aquí cuando llega una bandeja a la entrada de la intersección se comprueba si


a la pieza que contiene hay que realizarle alguna operación en la estación A. Si
se le tiene que realizar alguna operación y en la cinta no hay ninguna bandeja
se activa que tiene que entrar en A. Si hay alguna bandeja ya en la cinta se
esperará a que la cinta quede libre para poder ir a la estación A. En caso de
que no se tenga que entrar en A se pone la cinta baja como ocupada y se
continúa por esta. La cinta baja se libera cuando el sensor wiper del elevador
detecte un flanco de subida.

La estructura de este bloque es:

09.10
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.3. CINTAS

El bloque Cintas se utiliza para llevar el control sobre las bandejas que hay en
cada cinta y las piezas que estas contienen. Para ello se detecta cuando entra
una bandeja nueva en la cinta, actualizándose el número de bandejas y la
posición de estas tanto en la cinta actual como en la que la precedía.

La estructura de este bloque es:

09.11
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.4. FB_PRIORIDAD

La función de este bloque es la de partiendo de las estaciones de trabajo en las


que se le realiza alguna operación a la pieza dar una prioridad de fabricación
por defecto a esta. Las prioridades por defecto vienen contempladas en esta
tabla:

Prioridad Estación C Estación B Estación A


1 -- -- X
2 -- X --
3 X -- --
4 -- X X
5 X -- X
6 X X --
7 X X X

Nota: Con una “X” se ha representado las estaciones en las cuales se le


efectuará alguna operación a la pieza.

La estructura el bloque es:

09.12
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.5. LECTOR

Este bloque se usa para pasar el código BCD del dato leído por el lector de
códigos de barras a entero. Además como el dato leído se mantiene sólo
durante 2 segundos se usará una variable para guardar el último dato leído por
el lector.

Su estructura es:

El código que resuelve las especificaciones antes comentadas se verá en la


parte de “Código de programas del Unity Pro” de este proyecto.

4.6. MANEJ_ERROR

Este bloque determina si el error que se ha producido en el sistema debido a


las cintas transportadoras es leve o grave. Este error se calcula a partir del
código de error que entra en el bloque, el cual se ha obtenido de la suma de los
códigos de errores generados por los bloques SEG_CINTAS.

La estructura de este bloque es:

09.13
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.7. PIEZAS_DESVIO_D

Este bloque determina si la pieza que llega a la intersección de las 3 cintas


debe pasar o no a la estación de trabajo A. Esto se obtiene a partir de la
configuración que el operador le haya dado a cada pieza.
A este bloque además se le pasará un vector con las piezas tal y como salen
del almacén y, puesto que el orden de las piezas sólo puede ser modificado en
esta intersección, se calculará también un vector con las piezas tal y como
entraran en el almacén.

A la pieza 1 se le tiene que realizar A la pieza 1 no se le tiene que


una operación en la estación de realizar ninguna operación en la
trabajo A estación de trabajo A

Este bloque tiene la estructura que sigue:

09.14
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.8. SEG_CINTAS

El bloque que se describe a continuación tiene la función de detectar fallos en


las cintas transportadoras. El fallo se producirá si la cantidad de bandejas en
una cinta no varía durante un tiempo especificado. Cuando se produce un fallo
se dará un código para el error, el cual se ha debido especificar previamente.
Se usará esta forma de detección ya que la detección de fallos no es crítica
para esta aplicación, además de ser la más fiable y generalista con los
elementos que dispone la instalación.

Este bloque tiene la siguiente estructura:

09.15
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.9. ST_ALMACEN

Este bloque gestiona el funcionamiento del almacén. Cuando llega una bandeja
a la entrada del almacén debe determinar si hay que sacar o meter una pieza o
si se deja pasar la bandeja vacía. Para determinar las operaciones realizadas
por el almacén se le pasará a este bloque los vectores de entrada y salida de
piezas del almacén los cuales contienen la planificación de la producción
programada por el operario.

Su estructura es:

09.16
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.10. ST_TRABAJO

Con este bloque se gestiona el funcionamiento de las estaciones de trabajo.


Cuando llega una pieza a una estación se comprueba si hay que realizarle
alguna operación o no. En el caso que haya que realizarle alguna operación la
bandeja permanecerá en la estación el tiempo que ha sido especificado por el
operario en la planificación de la producción.

La estructura de este bloque es:

09.17
El código que resuelve las especificaciones antes comentadas se verá en la
parte de “Código de programas del Unity Pro” de este proyecto.

4.11. T_MAX

Este bloque calcula a partir de 3 tiempos que se le pasan como entradas el


tiempo máximo de estos.

La estructura que tiene es:

El código que resuelve las especificaciones antes comentadas se verá en la


parte de “Código de programas del Unity Pro” de este proyecto.

09.18
5. Acciones de la sección GEMMA

En este apartado se verá la descripción de las distintas acciones que se


ejecutan en los estados del GRAFCET de la sección GEMMA del programa
principal.
El GRAFCET usado para esta sección es:

5.1. Estado A1

En este estado el sistema esta parado por lo que se resetearan las variables:
Y0, K1, K2, K3, K4, K5 y K51. Las acciones que se ejecutan en este estado
son:
- DATOS_PIEZAS.
- CALCULAR_PRIORIDAD.
- CALCULAR_PIEZAS_SALIDA.

09.19
5.1.1. DATOS_PIEZAS
Aquí se inicializan y se establecen los valores de las variables del sistema.

5.1.2. CALCULAR_PRIORIDAD
Con esta acción se pretende calcular la prioridad que tienen por defecto las
piezas a partir de los datos que introduzca el operador en la pantalla de datos
piezas del SCADA. La prioridad por defecto sólo se calculará en el caso de que
el operador no la especifique de forma manual.

5.1.3. CALCULAR_PIEZAS_SALIDA
Esta acción calcula un vector con las piezas tal y como saldrán del almacén,
siendo la primera pieza la que ocupe la posición uno del vector. Este vector
recoge pues la planificación de la producción para cada ciclo de fabricación.

5.2. Estado F4

Mientras este estado permanezca activado se ejecutará la acción


MODO_MANUAL_F4 la cual permite la modificación manual del estado de las
salidas del sistema. Se podrán modificar manualmente:
- Los motores.
- La electroválvula general del sistema.
- Si la electroválvula general del sistema esta activada podrá modificarse
el estado de topes y elevadores.
- Luces de modo automático, modo manual y paro motores.

También se podrá conocer la lectura del lector de códigos de barras. Para ello
se usará el bloque DFB LECTOR.

5.3. Estado F2

Este estado es el de preparar el sistema y mientras esta activado se están


ejecutando las acciones PREPARAR_SISTEMA y DESVIOS_F2. Cuando este
paso se desactiva se ejecuta durante un ciclo de programa la acción
ACTUALIZAR_CINTAS.

5.3.1. PREPARAR_SISTEMA
Cuando se activa el paso F2 se activa la electroválvula general del sistema y se
bajan los topes de las estaciones de trabajo (Y12 e Y13). Los motores K1, K2,
K3 y K4 se activan también y se permite el paso de bandejas en todos los
desvíos. A demás se activará el motor K5 durante 15 segundos para sacar las
posibles bandejas que hubiese en la cinta 5. Se mantendrá este estado durante
50 segundos para agrupar todas las bandejas que hay en el sistema a la
entrada del almacén. Pasado este tiempo se bajarán los topes Y9 e Y11 y se
pasará a contar las bandejas que hay en el sistema. Luego se volverán a
agrupar delante del almacén y se pondrá a uno la variable de
SISTEMA_LISTO. Siguiendo esta configuración cuando el sistema este listo
sólo podrá haber bandejas en la cinta 4 y en la cinta 0, por lo cual también se
contará cuantas bandejas hay en estas cintas.

09.20
Todos los tiempos usados en este bloque han sido calculados empíricamente.

5.3.2. DESVIOS_F2
Gestiona el traspaso de bandejas entre las distintas cintas en el estado F2.
Para ello se usarán bloques DFB “CAMBIOS_CINTAS”.

5.3.3. ACTUALIZAR_CINTAS
Cuando se sale de este estado los vectores CINTA_0 y CINTA_4 se actualizan
con la cantidad de bandejas que se hayan contado. Como las bandejas estarán
vacías se pondrán a cero los lugares que correspondan con las bandejas.

5.4. Estado F1

Este estado se corresponde con el de funcionamiento normal del sistema. Lo


primero que se hará es poner a cero la variable de SISTEMA_LISTO y se
pondrán a nivel alto tanto la electroválvula general del sistema como los
motores K1, K2, K3 y K4. Mientras permanezca activo este paso se ejecutarán
las acciones DESVIOS_F1 y ENTRADA_ST, que gestionarán el traspaso de
bandejas entre las distintas cintas y el funcionamiento de las estaciones de
trabajo respectivamente.

5.4.1. DESVIOS_F1
Se encarga de controlar el movimiento de las bandejas sobre las cintas
transportadoras. Los pasos de bandejas a través de los desvíos se controlan
usando bloques DFB ”CAMBIOS_CINTAS” y la actualización de los vectores,
que muestran las piezas que se encuentran sobre las bandejas, se lleva a cabo
usando los bloques DFB “CINTAS”.
Para el desvío en el que se interseccionan las tres cintas se usará el bloque
DFB “PIEZAS_DESVIO_D” para comprobar si la pieza que llega a la entrada
del desvío debe seguir por la cinta actual o si por el contrario debe pasar a la
estación de trabajo A. Para la gestión del movimiento de las bandejas en este
desvío se usará el bloque DFB “CAMBIOS_CINTAS_D”.

5.4.2. ENTRADA_ST
Esta acción lleva a cabo el control tanto del almacén como de las distintas
estaciones de trabajo. Para el almacén se usa el bloque DFB “ST_ALMACEN”
y para las estaciones B y C se usarán bloques DFB “ST_TRABAJO”. Para la
estación A, debido a que su configuración es distinta de las anteriores, se usará
una estructura particular para controlar el tiempo que se debe llevar la pieza en
ella.

5.5. Estado A2

Este estado se corresponde con el de “Parada solicitada en fin de ciclo”. Ha


este estado se llega cuando estando en producción normal se pulsa el botón de
automático (botón azul), ya que se recuerda que el de paro no puede usarse al
estar en serie con la seta de emergencia. Se seguirá produciendo hasta que se
finalice el ciclo de producción momento en el cual se activara la señal de

09.21
“FIN_DE_CICLO” y se pasará al estado de “Sistema parado en estado inicial”.
Mientras este estado permanezca activado se seguirán ejecutando las
acciones de DESVIOS_F1 y ENTRADA_ST, que corresponden a la parte de
producción como se vio en la guía GEMMA.
Estas acciones no serán comentadas ya que se vieron anteriormente en el
estado F1 de este apartado.

5.6. Estado D3

El paso D3 corresponde con “Producción a pesar de fallo” y ocurre cuando


estando en producción normal se produce un fallo leve. En este estado se
sigue produciendo por lo que se seguirán ejecutando las acciones
DESVIOS_F1 y ENTRADA_ST. Al ser este un estado transitorio se
permanecerá en el hasta que ocurra un fallo grave, o hasta que se solucione el
fallo leve que se tenía y el operario verifique la corrección de la anomalía
mediante la pulsación del botón automático (botón azul), que llevaría al sistema
a seguir con la producción normal.
Las acciones DESVIOS_F1 y ENTRADA_ST no se detallan puesto que fueron
vistas para el estado F1 de este apartado.

5.7. Estado D2

En este estado se para el sistema ya que es un estado de diagnóstico y/o


tratamiento de fallo. Las únicas acciones que se llevan a cabo son las de
resetear las variables: Y0, K1, K2, K3, K4, K5 y K51, con lo cual se desactiva la
electroválvula general del sistema y todos los motores.

5.8. Estado D1

Al estado D1 se llega cuando se pulsa la seta de emergencia y las únicas


acciones que se realizaran son la de resetear las variables: Y0, K1, K2, K3, K4,
K5 y K51.
Mientras se mantenga la seta bloqueada los motores estarán desconectados
de la corriente eléctrica.
De este estado se saldrá cuando la seta de emergencia se desbloquee.

09.22
6. Comunicación mediante puerto U.S.B.

Como la instalación posee un solo PLC se conectará el ordenador con el PLC


mediante el puerto USB. Para conectar un equipo de programación a un PLC,
se necesita establecer una dirección para que los dos dispositivos puedan
comunicarse e intercambiar datos.
Partiendo de que el software UNITY está abierto, que hay un proyecto activo y
que el PLC no esta conectado se pulsará PLC Æ Establecer dirección… y
aparecerá una ventana donde se ha de definir la dirección del PLC y el medio
de comunicación.

El siguiente cuadro permite definir cuales son los parámetros para cada
conexión:

Dirección del PLC Medio de comunicación


Uni-Telway SYS UNTLW01
USB SYS USB
Ethernet <dirección IP del PLC> TCPIP
Modbus <dirección MB del MODBUS01
PLC>*
*: Las direcciones Modbus tienen un rango de valor de 01 a 64.

Una vez elegida la dirección y el medio de comunicación, se puede comprobar


la conexión con el botón “Comprobar conexión”. Si la conexión es correcta
aparecerá el mensaje siguiente:

09.23
Si la conexión no es correcta aparecerá:

Se aconseja que antes de cambiar los parámetros se compruebe si la conexión


física esta conforme y si el PLC esta encendido. Hay veces en que todo es
correcto y no se realiza la conexión. Para solventar este problema se debe
desconectar y volver a conectar el cable USB del ordenador.
Una vez que la conexión es correcta se puede conectar el ordenador al PLC.

09.24
7. Conexión/desconexión con el PLC

La conexión permite pasar de la modalidad OFFLINE (local) a la modalidad


ONLINE (conectada).
Partiendo de que el software UNITY está abierto, que hay un proyecto activo y
que el PLC no esta conectado se pulsa PLC Æ Conectar o con el botón de
la barra de herramientas.

Cuando se lleva a cabo la conexión, la información contenida en el autómata y


la contenida en el terminal se comparan:
• si son idénticas, la modalidad ONLINE es Igual. En la barra de estados
se muestra
• si son diferentes, la modalidad ONLINE es Diferente. En la barra de
estados se muestra

Ahora, el equipo de programación esta conectado al PLC.

Para desconectarlo se pulsa PLC Æ Desconectar o en el botón de la barra


de herramientas con lo que se volverá a la modalidad OFFLINE (local) y en la
barra de estados se pasará a

09.25
8. Analizar y generar el proyecto

Para analizar si el proyecto contiene errores se ira al menú Generar Æ Analizar


proyecto o se pulsará el botón de la barra de herramientas. Los resultados
del análisis se muestran en la ventana de resultados. Si no se encuentran
errores se mostrará un resultado como el siguiente:

Antes de transferir el proyecto al PLC se debe generar el proyecto. Se puede


generar sólo los cambios que haya habido en el proyecto o se puede también
regenerar todo el proyecto.
Para generar sólo los cambios se pulsará Generar Æ Generar cambios o en la
barra de herramientas en el botón
Para regenerar el proyecto completo se irá a Generar Æ Regenerar todo el
proyecto o se pulsará el botón

09.26
9. Transferencia del proyecto del ordenador al PLC

Se puede transferir todo el proyecto o solo el código generable. Transferir todo


permite recuperar el proyecto para una transferencia del PLC al equipo de
programación. Sino, no se puede recuperar el proyecto.
Se accede a este cuadro de diálogo mediante el comando Herramientas Æ
Ajustes del proyecto… En la ficha Generar se puede configurar la generación
del proyecto.

- Si se selecciona Incluir, el código no ejecutable destinado a restituir el origen


del proyecto en un terminal se carga de forma simultánea con el código
ejecutable durante la transferencia del proyecto en el autómata. En este código
ejecutable, las casillas de verificación Comentarios y Tablas de animación
permiten incluir respectivamente los comentarios relacionados con las variables
y las tablas de animación.
- Si se selecciona Sin (opción predeterminada), sólo se carga el código
ejecutable durante una transferencia del proyecto en el autómata.

Se tiene que prestar mucho atención a este punto porque si la configuración del
“upload” no esta bien echa no se podrá cargar el proyecto del PLC al equipo de
programación.

La transferencia de un proyecto desde el ordenador al PLC permite copiar el


proyecto actual del equipo de programación a la memoria del autómata
(autómata cuya dirección está seleccionada).
Partiendo de que el software UNITY está abierto, que hay un proyecto activo y
que el PLC esta conectado, se hace clic en PLC Æ Transferir proyecto al PLC
o con el botón de la barra de herramientas. Aparecerá la pantalla siguiente:

09.27
Si se tilda la opción “Ejecución del PLC después de la transferencia” una vez
sea transferido el proyecto al PLC, este se pondrá en modo RUN.

Una vez se pulse transferir si el proyecto había sido anteriormente generado se


comienza la transferencia. De no haber sido previamente generado se
mostrará:

Se elegirá la opción de Generar proyecto y transferir. Una vez transferido el


proyecto se podrá ejecutar el PLC mediante el comando PLC Æ Ejecutar o en
la barra de herramientas en el botón

09.28
10. Poner en marcha/detener el PLC

Los comandos Run/Stop e Inicializar del menú PLC permiten controlar, desde
el terminal, el proyecto contenido en el autómata de destino:

• Run/Stop: inicia o detiene la ejecución del proyecto.


• Inicializar: inicializa el proyecto.

Partiendo de que el software UNITY está abierto y que el PLC esta conectado.

- Para poner en marcha el PLC:


Hacer PLC Æ Ejecutar o con el botón en la barra de herramientas.

- Para detener el PLC:


Hacer PLC Æ Detener o con el botón en la barra de herramientas.

- Para inicializar el PLC:


Hacer PLC Æ Inicializar.

Esos comandos permiten el control del autómata.

09.29
11. Pantallas de operador

Las pantallas de operador pueden usarse para:

- Control y supervisión, ya que muestran el estado de la máquina en


tiempo real y permiten la modificación de variables estando el proyecto
en ejecución.
- Diagnóstico y mantenimiento, ya que se puede realizar con ellas una
búsqueda iterativa de defectos.

Para poder usar las pantallas de operador hay que activar la animación de las
pantallas lo que permite ver en tiempo real el estado de las componentes,
señales, etc. Por defecto las pantallas están animadas.

Partiendo de que el software UNITY está abierto y que el PLC esta conectado
se activará la animación en el menú Servicios Æ Animación o en el botón
de la barra de herramientas.

Para poder modificar las variables del proyecto deben estar las pantallas de
operador con la animación activada y se debe Habilitar modificación de
variables en el menú Servicios o pulsar el botón de la barra de
herramientas.

En este proyecto se han usado tres pantallas de operador que se describirán a


continuación:

11.1. PANTALLA DATOS PIEZAS

Esta pantalla se usa para definir la planificación de la producción. Los


parámetros que se muestran en esta pantalla sólo pueden ser modificados
mientras el sistema esta en el estado de Parada en estado inicial (A1). Los
parámetros a definir son:

- Cantidad de cada tipo de pieza. La cantidad esta restringida y debe


tomar valores comprendidos entre 0 y 3.
- Estaciones de trabajo. Se especificará en cuales se le realizará alguna
operación a la pieza en cuestión y el tiempo que se llevará esta en la
estación de trabajo.
- Prioridad de la pieza. En el caso de ser puesta de forma manual se debe
introducir su valor.

A continuación se muestra una captura de dicha pantalla:

09.30
11.2. PANTALLA MODO MANUAL

La finalidad de esta pantalla es el de diagnóstico y mantenimiento. Esta


pantalla sólo esta operativa mientras el sistema este en el estado de Modo
manual (F4). La pantalla muestra el estado de los sensores y actuadores. Con
los botones que se muestran se pueden activar o desactivar las distintas
salidas del autómata. Además se muestra la última lectura realizada por el
lector de códigos de barras.

En la imagen siguiente se muestra esta pantalla de operador:

09.31
11.3. PANTALLA PRINCIPAL

La pantalla principal sirve para supervisar la planta y esta activa en todo


momento. Esta pantalla muestra:
- El estado de las señales del sistema, como pueden ser sensores,
motores, …
- Cantidad de bandejas en cada cinta
- Tipo de piezas que contienen las bandejas de cada cinta
- Estado en el que se encuentra el sistema
- Última lectura del lector de códigos de barras

Esta pantalla es la siguiente:

09.32

También podría gustarte