Sei sulla pagina 1di 14

Desarrollo de un Prototipo para el Control y

Automatización del Proceso de Medir y Enrollar Cable

Acosta Vega Moisés Isaías

Chávez Nolasco Andrés Isaías

Gutiérrez López Yazmín Alejandra

Suarez Hernández Alejandro

Universidad de Guanajuato, División de Ingeniería Campus Irapuato Salamanca

Reporte de Proyecto Final

17 de diciembre de 2010

Resumen

En el presente reporte se describen los fundamentos, el diseño y el desarrollo de una herramienta


para la automatización y control del proceso de medir y enrollar cable. La herramienta empleada
consta de un motor con encoder, un PIC, un teclado matricial de 4x 4 y una pantalla LCD. Mediante
el teclado se introduce la medida de cable deseada mostrándose en la pantalla, la medición del
cable depende del número de pulsos del encoder y así mismo de las revoluciones por minuto a las
cuales gira el motor para enrollarlo lo cual se controla con el PIC. Los resultados fueron analizados
por el equipo de trabajo encontrándolos satisfactorios.

1
Índice

1. Introducción
1.1 Objetivo General

2. Marco Teórico

3. Propuesta
3.1 Arquitectura

4. Materiales y Métodos

5. Desarrollo

6. Pruebas y Resultados

7. Conclusiones

8. Referencias

2
1. Introducción
Al comprar cable en cualquier negocio, el vendedor lleva a cabo un control manual de este
utilizando sólo instrumentos simples, metro, cinta, pinzas, etc., sin embargo resulta tedioso estar
midiendo varios metros de cable y no es tan rápido hacerlo, además si se le olvida cuantos metros
llevaba tiene que volver a empezar la medición o en el peor de los casos dar una medida incorrecta
del cable que fue pedido.

1.1 Objetivo General


Debido a la problemática anterior, el presente proyecto tiene como objetivo: diseñar una
herramienta que permita al vendedor enrollar cable, con el fin de ahorrar tiempo y trabajo haciendo
el proceso más eficaz al sustituir la medición manual utilizando control para la automatización del
proceso.

2. Marco Teórico
Muchos procesos exigen el control de la fabricación de los diversos productos obtenidos. Los
procesos son muy variados y abarcan muchos tipos de productos.

En todos estos procesos es absolutamente necesario controlar y mantener constantes algunas


magnitudes. Los instrumentos de medición y control permiten el mantenimiento y la regulación se
estas constantes en condiciones más idóneas que las que el propio operador podría realizar.

Los instrumentos de medición y control han ido liberando al operario de su función de actuación
física directa y al mismo tiempo, le han permitido una labor única de supervisión y de vigilancia del
proceso; así mismo, gracias a los instrumentos a sido posible fabricar productos complejos en
condiciones estables de calidad y de características, condiciones que al operario le serían imposibles
o muy difíciles de conseguir, realizando exclusivamente un control manual.

Los procesos a controlar pueden dividirse ampliamente en dos categorías: procesos continuos y
procesos discontinuos. En ambos tipos, deben mantenerse en general las variables, bien en un valor
fijo, bien en un valor variable con el tiempo de acuerdo con una relación predeterminada, o bien
guardando una relación determinada con otra variable.

El sistema de control que permite este mantenimiento de las variables puede definirse como aquel
que compara el valor de la variable o condición a controlar con un valor deseado y toma una acción
de corrección de acuerdo con la desviación existente sin que el operario intervenga en absoluto.

El sistema de control exige pues, para que esta comparación y subsiguiente corrección sean
posibles, que se incluya una unidad de medida, una unidad de control y el propio proceso. Este
conjunto de unidades forman un bucle o lazo que recibe el nombre de bucle de control. El bucle
puede ser abierto o bien cerrado.

3
En ambos casos se observa que existen elementos definidos como el elemento de medida, el
transmisor, el controlador, el indicador, el registrador y el elemento final.

Figura 1. Elementos principales de un sistema de control.

3. Propuesta
Debido a las enormes ventajas de los sistemas de control y automatización, se propone la
construcción de una herramienta que permita al vendedor medir y enrollar el cable pedido.

3.1 Arquitectura

Figura 2. Sistema de control y automatización para enrollar cable.

4
A continuación se muestra el modelo de la herramienta para el enrollador automático:

Figura 3. Modelo de la herramienta para el enrollador automático.

5
4. Materiales y Métodos
Los materiales necesarios para el desarrollo del proyecto son los siguientes:

 1 Motor de DC, 24V con encoder óptico de 400 ppr.


 1 puente H
 1 Compuerta AND TTL08
 1 PIC 16F887
 1 Teclado matricial de 4x4
 1 Pantalla LCD

Motor con encoder

Se utilizo para poder transmitir movimiento circular a un carrete en el cual se enrolla el cable y el
encoder sirvió para conocer la posición de giro del motor y así poder tener una medición muy
aproximada al cable necesitado.

Puente H

Este controlador fue utilizado para controlar el sentido y velocidad del motor de CD.

Compuerta AND TTL08

Se utilizo para filtrar la salida del encoder y para que el microcontrolador pudiera detectar la señal
del encoder, una señal TTL.

PIC 16F887

Se utilizo para realizar diferentes operaciones como el control del puente H, del teclado matricial, la
pantalla LCD y el encoder.

Teclado matricial de 4x4

Se utilizo para poder ingresar la medida deseada por el usuario.

Pantalla LCD

Se utilizo para visualizar los datos introductorios y como interfaz entre el usuario y el
microcontrolador.

6
5. Desarrollo
Para la construcción de esta herramienta se siguió la metodología propuesta en la figura 2.

Código del programa:

#include
"D:\2010\otoño_2010\control_industrial\pic_c\prueba_encoder2.h"
#include <LCD.C>
#Byte PortB = 0x06 // Dirección del puerto B
double x = 0;
double cantx = 0;
double rq = 0;
int tempo;
int teclado(double y);
enum funcione{uno,dos,tres}; //enumera las variables de 0 - 1
void cantidad(double x1,double x2);
void prueba();
void enter(int selecc);
void inter();
#Int_Ext // Interrupción Externa por RB0:
Decodificación de Encoder.
Void IntRB0()
{
// CCS se encarga de desactiva automáticamente cualquier
interrupción.
// No hace falta guardar contextos de registros por que CCS se
encarga de hacerlo por ti.

If (Bit_Test(PortB, 0)) // Si RB0 se ha puesto a 1 (flanco de


subida),
{
Ext_Int_Edge(H_TO_L); // entonces activar la siguiente
interrupción por flanco de bajada.
If (Bit_Test(PortB, 1)) // Si RB1 está a 1,
{
x=x+1; // entonces incrementar una unidad
el valor de X.
if(x>=rq){
set_pwm1_duty(0x00);
}
}
}
Else // Si RB0 se ha puesto a 0 (flanco de
bajada),
{
Ext_Int_Edge(L_TO_H); // entonces activar la siguiente
interrupción por flanco de subida.
If (Bit_Test(PortB, 1)) // Si RB1 está 1,
{
x=x-1; // entonces decrementar una unidad
el valor de X.
}

7
}
// Al finalizar la interrupción CCS se encarga de volver a poner
automáticamente
// la badera INTF = 0 ---> borra la interrupción para poder
permitir la siguiente.
// No hemos de hacer nada por nuestra parte.
}

void main()
{
// TODO: USER CODE!!
int col=0;
int n_menu1 = 2;
int seleccion1=0;
Ext_Int_Edge(L_TO_H); // Inicialmente detectar interrupción
por flanco de subida.
Enable_Interrupts(Int_Ext); // Activar Interrupción Externa.
Enable_Interrupts(GLOBAL); // Interrupciones Generales Activadas.
setup_ccp1(CCP_PWM); // Configura CCP1 como PWM
lcd_init();
tempo=0xFF;
setup_timer_2(T2_DIV_BY_1,tempo,1); // Esta función inicializa el
timer2
set_pwm1_duty(0x00);
printf(lcd_putc,"\fPRUEBA ENCODER");
delay_ms(5000);
// set_pwm1_duty(0xb4);
cantx=2000;

// ---------- Programa Principial ----------


do{
col=1;
output_low(PIN_B3);//
output_high(PIN_B7);//row2

if(col==1){
if(input(PIN_A4)){ //menu
seleccion1++;
delay_ms(300);
lcd_putc('\f');
}
}
if(seleccion1 > (n_menu1-1)){
seleccion1 = 0;
}
switch (seleccion1){

case 0:
lcd_gotoxy(1,1);
printf(lcd_putc,"SIS. INTERNA.");
break;
case 1:
lcd_gotoxy(1,1);

8
printf(lcd_putc,"SIS. INGLES");
break;
default:
break;
}
col=2;
output_low(PIN_B7);//row2
output_high(PIN_B3);//row2
if(col==2){
if(input(PIN_A4)){
enter(seleccion1);
delay_ms(300);
}
}
}while(true);
prueba();
}
void enter(int selecc){
lcd_putc('\f');
switch(selecc){
case uno:
inter();
break;
case dos:
prueba();
break;
default: break;
}
}
void prueba(){
x = 0;
rq=2000;
set_pwm1_duty(0xb4);
do{
printf(lcd_putc,"\fPulsos:%f ",x);
} While (true);
}
void inter(){
double z1,z2;
lcd_putc('\f');
lcd_gotoxy(1,1);
lcd_putc("Longitud-cm-:");//x
lcd_gotoxy(1,2);
lcd_putc("_");
z1=teclado(2);
z2=teclado(3);
cantidad(z1,z2);
rq=(cantx/8)*400;//pulsos requeridos
printf(lcd_putc,"\fPulsos: %f ",rq);
delay_ms(2000);
printf(lcd_putc,"\fLongitud:\n %f cm",cantx);
delay_ms(2000);
x=0;
printf(lcd_putc,"\fEspere");

9
set_pwm1_duty(0xB4);////AF
}
int teclado(double y)
{
int col=0;
int num=0;
do{
output_low(PIN_B7);
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_A5);
//delay_ms(3000);
output_low(PIN_A5);
output_high(PIN_B7);//row1
col=1;
if(col==1){
if(input(PIN_A1)){//col1
num=1;
lcd_putc('1');
delay_ms(300);
break;
}
if(input(PIN_A2)){//col2
num=2;
lcd_putc('2');
delay_ms(300);
break;
}
if(input(PIN_A3)){//col3
num=3;
lcd_putc('3');
delay_ms(300);
break;
}
}
col=2;
output_low(PIN_B7);//row1
output_high(PIN_B2);//row2
if(col==2){
if(input(PIN_A1)){//col1
num=4;
lcd_putc('4');
delay_ms(300);
break;
}
if(input(PIN_A2)){//col2
num=5;
lcd_putc('5');
delay_ms(300);
break;
}
if(input(PIN_A3)){//col3
num=6;
lcd_putc('6');

10
delay_ms(300);
break;
}
}
col=3;
output_low(PIN_B2);
output_high(PIN_B3);//
if(col==3){
if(input(PIN_A1)){//col1
num=7;
lcd_putc('7');
delay_ms(300);
break;
}
if(input(PIN_A2)){//col2
num=8;
lcd_putc('8');
delay_ms(300);
break;
}
if(input(PIN_A3)){//col3
num=9;
lcd_putc('9');
delay_ms(300);
break;
}
}
col=4;
output_low(PIN_B3);
output_high(PIN_A5);//
if(col==4){
if(input(PIN_A2)){//col2
num=0;
lcd_putc('0');
delay_ms(300);
break;
}
}
}
while(true);

return num;

}
void cantidad(double x1,double x2){ //funcion en donde se crea la
cantidad
cantx=x1*10.0+x2;
}

11
6. Pruebas y Resultados
El funcionamiento del sistema de control para enrollar cable fue probado para cinco medidas
diferentes. Los resultados mostrados en la tabla 1 servirán para la posterior validación de la
herramienta. Esta tabla presenta los valores obtenidos por la herramienta, para cada distancia pedida
por el usuario.

Medida deseada 11 cm 21 cm 31 cm 41 cm 51 cm
Prueba 1 12 21.6 31.8 41.4 51.7
Prueba 2 11.4 21.3 31.2 41.5 51.3
Prueba 3 11.8 21.8 31.7 41.8 51.5
Promedio de las
medidas obtenidas 11.73 21.57 31.57 41.57 51.50
Error 0.066 0.027 0.018 0.014 0.009

Tabla 1. Casos de Prueba y Resultados del sistema para enrollar cable.

Figura 4a. Sistema de control para enrollar cable.

12
Figura 4b. Sistema de control para enrollar cable.

7. Conclusiones
El desarrollo de dicho proyecto propició una fuerte investigación y búsqueda de las necesidades con
las que se cuenta actualmente para poder controlar y automatizar el sistema para enrollar cable.

Analizando varias propuestas, optando por la mejor, tomando en cuenta el gasto económico y su
exactitud. Se realizó una búsqueda de proveedores encontrando las mejores opciones en precios y
características de los dispositivos.

Hay que tener en cuenta que aunque el armado y montado de la estructura de nuestro enrollador fue
un poco hechiza no represento mayor problema. El detalle se presento con el motor con encoder con
el que trabajamos ya que uno de sus canales no era funcional. Esto sin embargo, no fue de gran
problema ya que solo necesitábamos que el motor girara hacia un solo lado siempre.

El problema del proyecto fue que en un principio, al querer introducir una distancia de hilo al
hilador, este hilaba de más en cada ocasión y de diferentes valores a pesar del ser la misma distancia
introducida, por lo que se tuvo que analizar la lógica del programa y descubrir el detalle de por qué
pasaba eso. Ya de ahí se encontró el problema que era un error de programación y no mecánico. Ya
una vez solventado esto se pudo consolidar el hilador.

Con este diseño se genera un proyecto interesante e innovador, que sirve para enrollar cable de
manera muy precisa y rápida.

13
8. Referencias

[1] Hoja de datos para microcontrolador, Modelo PIC16F887-E/P


http://ww1.microchip.com/downloads/en/DeviceDoc/41291E.pdf

[2] Hoja de datos para TTL08.

[3] Hoja de datos para el teclado matricial de 4x4.

[4] Hoja de datos para la pantalla LCD de 20x4.

14

Potrebbero piacerti anche