Documentos de Académico
Documentos de Profesional
Documentos de Cultura
09 - Programacià N Del Sistema de Control Con Unity Pro XL V3.0
09 - Programacià N Del Sistema de Control Con Unity Pro XL V3.0
09.1
1. Creación y configuración de un proyecto
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
%<tipo de intercambio><r>.<m>.<c>
r Bastidor
m Slot del
módulo
c Canal
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.
09.8
4. Bloques de funciones del usuario (DFB)
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.
4.1. CAMBIOS_CINTAS
09.9
La estructura de este bloque se muestra en la imagen siguiente:
4.2. CAMBIOS_CINTAS_D
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.
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
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:
4.6. MANEJ_ERROR
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
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
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
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
09.18
5. Acciones de la sección GEMMA
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
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
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
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
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
5.7. Estado D2
5.8. Estado D1
09.22
6. Comunicación mediante puerto U.S.B.
El siguiente cuadro permite definir cuales son los parámetros para cada
conexión:
09.23
Si la conexión no es correcta aparecerá:
09.24
7. Conexión/desconexión con el PLC
09.25
8. Analizar y generar el proyecto
09.26
9. Transferencia del proyecto del ordenador al PLC
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.
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.
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:
Partiendo de que el software UNITY está abierto y que el PLC esta conectado.
09.29
11. Pantallas de operador
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.
09.30
11.2. PANTALLA MODO MANUAL
09.31
11.3. PANTALLA PRINCIPAL
09.32