Sie sind auf Seite 1von 30

Ejemplos. Clasificador de paquetes 1.

Ejemplo:
Clasificador de paquetes

1. Especificaciones
2. Asignación de recursos
3. Esquema eléctrico.
4. Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.2

1. Especificaciones
Sistema de clasificación de paquetería en función del peso.
Especificaciones

Se pesa cada paquete y se desplaza al compartimento correspondiente al rango de


peso al que pertenece.
Ejemplos. Clasificador de paquetes 1.3

Sistema de desplazamiento.
Para desplazar los paquetes hasta el compartimento correspondiente se dispone de los
siguiente elementos:
– Tres cilindros neumáticos. Cada uno de ellos se activa por medio de una electroválvula
EVCx(24Vcc, 8W) con retorno forzado por muelle. De esta forma se asegura que la posición de
reposo del cilindro es la de recogido. Cada cilindro lleva dos sensores magnéticos x1 y x0
(contacto libre de tensión) para indicar la posición en la que se encuentra.
– Una cinta transportadora manejada por un motor 380AC 5A. La cinta se debe activar al recibir
el primer paquete y debe continuar en movimiento salvo que transcurra un intervalo de tiempo
superior a 4 minutos sin recibir paquetes.
– El sistema debe asumir que el proceso de desplazamiento de un paquete finaliza después de la
activación de los sensores del cilindro CB y CC o bien después de un 1 minuto de la activación del
sensor del ciclindro CA.
Especificaciones
Ejemplos. Clasificador de paquetes 1.4

Sistema de pesada.
Plataforma para pesar paquetes con los siguientes elementos:
– Un sensor óptico P que detecta la presencia de paquete (contacto libre de tensión)
– Un sensor G que genera una tensión de 0 a 5Vcc para un rango de 0 a 10Kgr con una sensibilidad
de 10gr.
– Para asegurar una medida correcta es necesario esperar 10sg desde de la recepción del paquete
hasta el inicio de la medida.

Rango de pesos.
– Si el peso del paquete es menor de 2Kgr debe almacenarse en el compartimento P1 por medio del
cilindro CB.
– Si el peso del paquete es mayor o igual que 2Kgr y menor que 6Kgr debe almacenarse en el
compartimento P2 por medio del cilindro CC.
– Si el peso del paquete es mayor o igual que 6Kgr debe almacenarse en el compartimento P3. La
cinta transporta el paquete hasta el final del recorrido.
– Existen dos sensores ópticos B y C que detectan (contacto libre de tensión) cuando el paquete
pasa delante del cilindro CB y CC, respectivamente
Especificaciones
Ejemplos. Clasificador de paquetes 1.5

Elementos de interface con operario.


• Visualizador LCD de 8 dígitos con conexión paralelo. Se utilizan 4 bits para especificar
el valor del digito, 3 bits para seleccionar el digito correspondiente al valor y una señal
de memorización del valor por flanco de subida (duración mínima de impulso 2us).
Puede mostrar alguno de los siguientes valores:
– Mostrar el valor de la última pesada (en gramos)
– Número de paquetes procesados de cada tipo.

• Teclado matricial de 16 teclas


– Tecla ON/OFF. Después de dar tensión al equipo de control es necesario pulsar dicha tecla para
que la máquina empiece a funcionar
– Tecla de selección de funcionamiento en Manual o Automático (M/A). Por defecto la máquina
funcionará en Automático.
– Teclas para la activación manual de cada uno de los cilindros y de la cinta de transporte. Esta
opción solo será posible en modo Manual.
– Tecla para la selección de visualización de dato.
Especificaciones
Ejemplos. Clasificador de paquetes 1.6

Diseñar el circuito electrónico basado en el PIC18F45K20 que cumpla


con las especificaciones establecidas, justificando los siguientes
apartados:

a) Diagrama de bloques general del circuito.


b)Especificación del esquema de los elementos necesarios para la
ejecución del programa de control.
c) Diagrama de flujo del programa de control.
d)Definir una estrategia y su programa asociado para detectar errores
en la activación de cilindros. Por el tipo de cilindros el tiempo máximo
desde la activación de la electroválvula hasta que alcanza la posición
destino es de 2s.
Especificaciones
Ejemplos. Clasificador de paquetes 1.7

2. Asignación de recursos
• Entradas digitales:
– Posición de cilindros A0,A1,B0,B1,C0,C1 = 6
– Posición del paquete P, B, C = 3
– Lectura de teclado ET1, ET2, ET3, ET4 = 4
• Entrada Analógica:
– Pesada (0 – 5V) G = 1

• Salidas digitales:
– Activación de cilindros EVA, EVB, EVC = 3
– Activación del Motor M = 1
– Excitación del teclado ST1, ST2, ST3, ST4 = 4
– Indicación de estado (A/M)= 1
– Gestión de visualizador DATO, SEL, CLK = 8

• Temporización
– TFA=2s -> tiempo para detectar error en posición de cilindro
Recursos

– TP=10 s -> espera para pesada de paquete


– TSP= 4 m -> tiempo sin recibir paquete
– TFD= 1 m -> tiempo de fin de desplazamiento después de activar A1
Ejemplos. Clasificador de paquetes 1.8

• Entradas digitales:

A0 A1 B0/B1 B1 C0 C1 B C P ET1 ET2 ET3 ET4


RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 RE0 RD0 RD1 RD2 RD3

Todas las entradas conectadas a RB se atenderán por interrupción. Para poder


hacerlo con B1 conectada a RB3, es necesario conectarlo también a RB2

• Salidas digitales:

EVA EVB EVC M A/M ST1 ST2 ST3 ST4


RA1 RA2 RA3 RA4 RA5 RD4 RD5 RD6 RD7
Asignación de recursos

DATOS SEL CLK


RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7

• Entrada analógica:

G
RA0
Ejemplos. Clasificador de paquetes 1.9

• Temporizadores:
• Se crea una base de tiempos con el temporizador TMR1
• Se atiende por interrupción
• Temporización de 200 ms
–> Trabajando con Fosc de 1MHz -> Carga de -50000 =3CB0H
• Contadores:
-> Contador CA (CCA)-> Byte -> Si se ha activado el cilindro CA, se
incrementa cada vez que hay interrupción. Si cuenta más de 10 (>2s)
error en cilindro A
-> Contador CB (CCB)-> Byte -> Si se ha activado el cilindro CB, se
incrementa cada vez que hay interrupción. Si cuenta más de 10 (>2s)
error en cilindro B
-> Contador CC (CCC)-> Byte -> Si se ha activado el cilindro CC, se
incrementa cada vez que hay interrupción. Si cuenta más de 10 (>2s)
Asignación de recursos

error en cilindro C
-> Contador Peso (Cpeso)-> Byte -> si cuenta más de 50 (>10s) se puede
Pesar
-> Contador decimas (CDSEG)-> Byte -> Se incrementa cada vez que hay
interrupción -> Al llegar 5 -> 1 segundo.
-> Contador SEG (CSEG)-> Byte -> Cuenta segundos
-> Contador MIN (CMIN)-> Byte -> Cuenta minutos
Ejemplos. Clasificador de paquetes 1.10

• Temporizadores:
• Se crea una base de tiempos con el temporizador TMR3 para atender al teclado
• Se atiende por interrupción
• Temporización de 1s
–> Trabajando con Fosc de 1MHz -> preescala=8; Carga de -31250 =85EEH
Asignación de recursos
Ejemplos. Clasificador de paquetes 1.11

3. Esquema eléctrico
• Conexión de sensores de posición de cilindros

+5V +5V +5V +5V +5V +5V

R R R R R R
RB0 RB1 RB2 RB3 RB4 RB5

A0 A1 B0 B1 C0 C1
Esquema eléctrico del circuito
Ejemplos. Clasificador de paquetes 1.12

• Conexión de sensores ópticos

+5V +5V +5V

R R R
RE0 RB6 RB7

P B C
Esquema eléctrico del circuito
Ejemplos. Clasificador de paquetes 1.13

• Circuito de actuación sobre EVs y Motor


Circuito de activación con adaptación de tensiones e intensidades
+5V +24Vdc

R1
RA1 R1 R2 R3 R4
+5V

R2
RA2 +5V
EVA EVB EVC K
R3
RA3
+5V
Esquema eléctrico del circuito

0V
R4 380Vac
R
RA4 S
+5V T
K R5
R5
RA5

M
Ejemplos. Clasificador de paquetes 1.14

• Circuito de lectura del teclado matricial


+5V +5V +5V +5V

R R R R

RD4
16 15 14 13
EVA EVB EVC M
RD5
12 11 10 9
Esquema eléctrico del circuito

RD6 5
8 7 6
M/A ON/OFF
RD7 1
4 3 2

PESO NºA NºB NºC

RD0 RD1 RD2 RD3


Ejemplos. Clasificador de paquetes 1.15

• Conexión del visualizador

4 DATOS
RC0-RC3
3 SEL
RC4-RC6
CLK
RC7

DATOS(3-0)
Esquema eléctrico del circuito

SEL(2-0)

CLK

1 µs 3 µs 1 µs
Ejemplos. Clasificador de paquetes 1.16

4. Diagrama de flujo
Variables:
• VALOR_TECLA: byte -> indica con un número de 1 a 16 la tecla pulsada.
Se obtiene en el programa de barrido del teclado con la expresión
VALOR_TECLA = 4x(CONT1-1)+CONT2
• HAY_TECLA: bit -> Si 1 indica que se ha activado una tecla.
• CPESO: byte -> Contador para temporizar 10s de espera a estabilizar el
paquete en la plataforma de pesada.
• TPESO: bit -> Si 1 indica fin de temporización para pesar.
• V_PESO: bit -> Si 1 indica permiso para temporización para pesar
• FIN_CLASIFICAR: bit -> Si 1 indica que el proceso de clasificación de un
paquete ha finalizado.
• ERROR: bit -> Si 1 indica error en el desplazamiento de cilindros.
• CMIN: byte -> Contador de minutos para temporizar el fin de proceso de
clasificación por tiempo y el apagado del motor de la cinta.
• CDSEG: byte -> Contador para temporizar 1s para contar segundos.
• CSEG: byte -> Contador de segundos para contar minutos.
Diagrama de flujo

• V_MIN: bit -> Si 1 indica permiso para temporización de minutos


Ejemplos. Clasificador de paquetes 1.17

4. Diagrama de flujo
Variables:
• V_CA: bit -> Si 1 indica que se debe activar el cilindro CA
• V_CA_AUX: bit -> Si 1 indica que el peso esta en el rango PESOA (≥6K)
• V_CB: bit -> Si 1 indica que se debe activar el cilindro CB y que el peso
está en el rango PESOB (<2K).
• V_CC: bit -> Si 1 indica que se debe activar el cilindro CC y que el peso
está en el rango PESOC (≥2K y <6K)
• CCA: byte -> Contador para temporizar 2s y detectar error de
desplazamiento del cilindro CA
• CCB: byte -> Contador para temporizar 2s y detectar error de
desplazamiento del cilindro CB
• CCC: byte -> Contador para temporizar 2s y detectar error de
desplazamiento del cilindro CC
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.18

Variables:
• NºA: Conjunto de 8 bytes -> Se utilizan para llevar la cuenta de paquetes
pesados de tipo PESOA y facilitar la visualización del valor. Se lleva la
cuenta en decimal por lo que el cometido de los 8 bytes se puede
especificar:
• APESO_U: byte -> Unidades
• APESO_D: byte -> Decenas
• APESO_C: byte -> Centenas
• APESO_M: byte -> Millar
• APESO_DM: byte -> Decenas de millar
• NºB : igual a NºA pero para número de paquetes tipo PESOB
• NºC : igual a NºC pero para número de paquetes tipo PESOC
• PUNT_VIS: Puntero (FSRx) para indicar los datos que se deben
visualizar.
• MASCARA: byte -> Se utiliza para el barrido del teclado
• TECLA_AUX: byte -> Se usa en la detección de tecla pulsada
• CONT1: byte -> Contador de filas del teclado (1,2,3,4)
• CONT2: byte -> Contador de columnas del teclado (1,2,3,4)
Diagrama de flujo

• VALOR: byte -> Salida hacia visualizador. Indica en los 4 bit menos
significativos el dato a visualizar y en los tres siguiente el nº de digito al
que corresponde el dato.
• VALOR_AUX: byte -> Se usa para calcular VALOR en Visualización.
• CONTD: byte -> Contador de dígitos enviados el vicualizador
Ejemplos. Clasificador de paquetes 1.19

Variables:
• CCA: byte -> Contador para temporizar 2s y detectar error de
desplazamiento del cilindro CA
• CCB: byte -> Contador para temporizar 2s y detectar error de
desplazamiento del cilindro CB
• CCC: byte -> Contador para temporizar 2s y detectar error de
desplazamiento del cilindro CC
• NºA: Conjunto de 8 bytes -> Se utilizan para llevar la cuenta de paquetes
pesados de tipo PESOA y facilitar la visualización del valor. Se lleva la
cuenta en decimal por lo que el cometido de los 8 bytes se puede
especificar:
• APESO_U: byte -> Unidades
• APESO_D: byte -> Decenas
• APESO_C: byte -> Centenas
• APESO_M: byte -> Millar
• APESO_DM: byte -> Decenas de millar
• NºB : igual a NºA pero para número de paquetes tipo PESOB
• NºC : igual a NºC pero para número de paquetes tipo PESOC
Diagrama de flujo

• PUNT_VIS: Puntero (FSRx) para indicar los datos que se deben


visualizar.
• MASCARA: byte -> Se utiliza para el barrido del teclado
• CONT1: byte -> Contador de filas del teclado (1,2,3,4)
• CONT2: byte -> Contador de columnas del teclado (1,2,3,4)
Ejemplos. Clasificador de paquetes 1.20

Diagrama de flujo Principal


Ejemplos. Clasificador de paquetes 1.21

Diagrama de flujo Rutina pesar


Ejemplos. Clasificador de paquetes 1.22

Interrupción Interrupción
sensor A0 sensor A1
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.23

Diagrama de flujo Interrupción sensores B0 y B1


Ejemplos. Clasificador de paquetes 1.24

Interrupción de sensores
B, C, C0 y C1
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.25

Interrupción
TMR1
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.26

Gestión de error de Gestión de tiempo de


desplazamiento de espera a estabilización
cilindro por tiempo del paquete en
plataforma de pesada
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.27

Gestión de
temporización de
minutos
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.28

Interrupción TMR3
-> 1s
-> Fosc=1MHz
-> preescala =8
-> carga = 85EEH
Diagrama de flujo
Ejemplos. Clasificador de paquetes 1.29

Diagrama de flujo Lectura de teclado


Ejemplos. Clasificador de paquetes 1.30

Diagrama de flujo Visualización

Das könnte Ihnen auch gefallen