Está en la página 1de 16

CONTROL Y MONITOREO DE UNA SERVOVALVULA ELECTRICA

INFORME FINAL

TALLER DE SISTEMAS ELECTRONICOS

YAMIR HERNANDO BOLAOS


CODIGO: 47051119
YUBER ERNESTO HURTADO
CODIGO: 47051039

TRABAJO PRESENTADO A:
ING. JUAN SEBASTIAN CABRERA

UNIVERSIDAD DEL CAUCA


FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA EN AUTOMATICA INDUSTRIAL
POPAYAN, 2008

INTRODUCCION
En la materia de taller de sistemas electronicos se propuso como practica de
laboratorio el desarrollo de un sistema de control y monitoreo de una servovalvula
electrica. Uno de los objetivos principales de dicha practica en la materia fue que
durante todo el proceso se hiciera uso de herramientas de tipo software e
informaticas que permitieran obtener un desarrollo profesional al grado conseguir
un prototipo electronico estable que pudiese ser considerado como un producto
totalmente funcional, asi como la sistematizacion de toda la informacion utilizada
durante el proceso de elaboracion.
CONCLUSIONES
-

se hizo practica y eficiente la utilizacion de herramientas de tipo software


como son: tortoise y subversion (verionamiento del codigo fuente), cadsoft
eagle (diseo diagramas esquematicos y diagrama PCB), gant project
(planeacion de actividades), smart draw (elaboracion diagramas de flujo).

Se utilizo sitemas para el tratamiento de informacion como son: la pagina


web, el alojamiento del proyecto en google code, e internet en general.

El uso adecuado e integracion de todas las herramientas mencionadas


anteriormente permitio que el proyecto se desarrollara satisfactoriamente
bajo condiciones controladas y un alto nivel de organizacin.

El ambiente de desarrollo del proyecto creado en la materia permitio la


familiarizacion comparable con los que seria un entorno de desarrollo
similar al que se tendria en el campo laboral.

El desarrollo de la practica propuesta permitio evidenciar de forma practica


concociminetos de otras materias cursadas con anterioridad asi como la
apropiacion de nuevos conocimientos.

Se cumplieron a cabalidad todas las metas propuestas al inicio de la mteria.

DIAGRAMA FINAL EN BLOQUES

SISTEMA DE CONTROL
MICROCONTROLADOR

FUENTE
REGULADA

ETAPA DE
POTENCIA
PUENTE H

ACTUADOR
MOTOREDUCTOR

INTERFAZ

SENSORICA

PANTALLA LCD +
BOTONES
INTERFAZ
LABVIEW

SENSORES
OPTICOS
POTENCIOMETRO
LINEAL

ACOPLE
MECANICO +
VALVULA

SITEMA DE CONTROL UTILIZADO FECBACK

DIAGRAMA ESQUEMATICO EN CAD SOFT EAGLE

SIMULACION PROTEUS ISIS

CODIGO FUENTE PARA EL MIRCROCONTROLADOR PIC18F452 EN


LENGUAJE BASIC
'///////////////////////////////////////////////////////////////////////////////
program servo_3fase
' Control y monitoreo de una servovalvula Electrica
' 2008
'Yamir H. Bolaos
'Yuber E. Hurtado
'este firmware es confecionado para un mircocontrolador PIC 18F452 de Microchip
'el cual es el encargado de hacer un control sobre un cicuito de una servovalvula
'electrica, el programa hace un control de giro de un servomotor el cual esta
'acoplado a una valvula mediante su vastago, a la vez se realiza un sensado de
'posicion mediante un potenciometro lineal, este elemento es el encargado de
'hacer la retroalimentacion del sistema.
'el microcontrolador se basa en dos sensores de tipo optico para seguridad en
'en el final de carrera de la valvula.
'se hace uso de una pantalla LCD como metodo de visualizacion de los sucesos
' Y/O variables del sistema.
'///////////////////////////////////////////////////////////////////////////////
'//// DECLARACION DE VARIABLES//////////////////////////////////////////////////
DIM BANDERA_OPENED AS CHAR
DIM BANDERA_CLOSED AS CHAR
DIM MODO AS CHAR
DIM SELECTED AS CHAR
DIM MODO_CHAR AS CHAR[1]
DIM AUX AS INTEGER
DIM ADC_DATA AS WORD
DIM TEXT as char [1]
DIM VREF, VPOT, PORCENT,RECIBIDO_PC AS FLOAT
'///////////////////////////////////////////////////////////////////////////////
'*******************************************************************************
'MULT
: MULT(PARAMETER_LIST_WORD)RETURN_TYPE_FLOAT
' returns
: retorna una variable de tipo float
' arg1
: recive un valot de tipo word de 16 bits
' Created by
: Yamir B - Yuber Hurtado
' Date created
: 06/2008
' Description
: esta funcion se hace la operacion de obtener el
voltaje de
' las entradas analogicas, del controlador PID, del potenciometro MANUAL y del
' potenciometro lineal que se encarga del sensado de posicion.
'******************************************************************************/
'/////////FUNCION DE MULTIPLICACION EN FLOTANTE ////////////////////////////////
SUB FUNCTION MULT (DIM ADC_VALUE AS WORD)AS FLOAT
RESULT = (ADC_VALUE * 0.0485) '// RESOLUCION CONVERSOR 50/1024
END SUB
'*******************************************************************************

'/////////RUTINA DE ATENCION A INTERRUPCIONES EXTERNAR INT0 E INT1//////////////


'Este es un procedimiento en al cual recurre el programa en el momento que se
'da una interrupcion, aqui se escanea y se determina cual de las interrupciones
'se ha originado y su respectivo codigo.
sub PROCEDURE interrupt
INTCON.GIE = 0 '//SE DESABILITA LA POSIBILIDAD DE QUE OCURRA OTRA INTERUPCION

IF TestBit(INTCON,INT0IF)=1 THEN '// TEST SI ICURRIO INTERRUPCION POR INT0


INTCON.INT0IF = 0 '// SI ES EL CASO SE DESHABILITA ESTA INTERRUPCION
PORTE = 0 '//PARA EL MOTOREDUCTOR INCONDICIONALMENTE
PORTC.1 = 1 '// ENCIENDE PILOTO APERTURA TOTAL
BANDERA_OPENED = 1 '// SE ACTIVA BANDERA QUE INHIBE EL GIRO
END IF
IF TestBit(INTCON3,INT1IF)=1 THEN'// TEST SI ICURRIO INTERRUPCION POR INT1
INTCON3.INT1IF = 0'// SI ES EL CASO SE DESHABILITA ESTA INTERRUPCION
PORTE = 0 '//PARA EL MOTOREDUCTOR INCONDICIONALMENTE
PORTD.0 = 1'// ENCIENDE PILOTO CERRADO TOTAL
BANDERA_CLOSED = 1 '// SE ACTIVA BANDERA QUE INHIBE EL GIRO
END IF
IF

TestBit(INTCON3,INT2IF)=1 THEN'// TEST SI ICURRIO INTERRUPCION POR INT2


INTCON3.INT2IF = 0'// SI ES EL CASO SE DESHABILITA ESTA INTERRUPCION
MODO = MODO+1
IF MODO = 5 THEN
MODO = 1
END IF

END IF
IF TestBit(PIR1,RCIF)=1 THEN
PIR1.RCIF = 0
RECIBIDO_PC = Usart_Read
END IF
INTCON.GIE = 1'//SE HABILITA LA POSIBILIDAD DE QUE OCURRAN INTERRUPCIONES
end sub

'*******************************************************************************
'/////////FUNCION QUE FILTRA LOS VALORES LEIDOS ////////////////////////////////
' SUB FUNCTION FILT (DIM DATA AS WORD)AS WORD

' END SUB


'///////////////////////////////////////////////////////////////////////////////
'*******************************************************************************

'////////////////////RUTINA PRINCIPAL //////////////////////////////////////////


main:
TRISB = 15 '// CUATRO PRIMEROS PINES DEL PUERTO B COMO DE ENTRADA
TRISC = 68 '// PINES DEL PUERTO C COMO DE SALIDA
TRISE = 0 '// PUERTO E COMO DE SALIDA
TRISD.0 = 0 '// PIN RD0 CONFIGURADO COMO DE SALIDA
PORTB = 0 '// PUERTO B INIZIALIZA EN O
PORTC = 0 '// PUERTO C INIZIALIZA EN O
PORTE = 0 '// PUERTO E INIZIALIZA EN O
PORTC.0 = 1'// PILOTO QUE INIDICA INICIALIZACION EN MODO MANUAL
PORTD.0 = 0
'//CONFIGURACION DE LAS INTERRUPCIONES, INT0 E INT1, INTERRUPCIONES ESXTERNAS
'//AMBAS SE CONFIGURAN COMO DE ALTA PRIORIDAD
RCON.IPEN = 1 '//HABILITA NIVELES DE INTERRUPCIONES
INTCON.GIE = 1 '// HABILITADOR GENERAL DE INTERRUPCIONES
INTCON.PEIE = 0 '// TODAS LAS INTERRUPCIONES DE ALTA PRIORIDAD
INTCON.INT0IE = 1 '//HABILITE INTERRUPCION INTO ,ITNCON.INTOIF
INTCON2.INTEDG0 = 1 '// FLANCO ASCENDENTE PARA LA INT0
INTCON3.INT1IE = 1'// HABILIRA INTERRUPCION INT1, INT1IF

INTCON2.INTEDG1 = 1 '// FLANCO ASCENDENTE PARA LA


INTCON3.INT2IE = 1'// HABILIRA INTERRUPCION INT2,
INTCON3.INT1IP = 1 '// INTERRUPCION INT1 DE ALTA
INTCON3.INT2IP = 1 '// INTERRUPCION INT1 DE ALTA
INTCON2.INTEDG2 = 1 '// FLANCO ASCENDENTE PARA LA

INT1
INT2IF
PRIORIDAD
PRIORIDAD
INT2

PIE1.RCIE = 1 '// HABILITA INTERRUPCION POR RECEPCION DE DATO VIA RS-232


IPR1.RCIP = 1 '// ALTA PRIORIDAD EN LA INTERRUPCION DE RECEPCION RS-232
BANDERA_CLOSED=0
BANDERA_OPENED=0
MODO = 1
SELECTED = 2
RECIBIDO_PC = 0
MODO_CHAR = "M"

'// BANDER DE VALVULA CERRADA INICIALIZA EN 0


'// BANDER DE VALVULA ABIERTA INICIALIZA EN 0

Usart_init(9615)
'// INICIALIZA EL MODULO USART A 9600 BAUDIOS
Lcd_Init(PORTD)
'// INICIALIZA LA LCD EN EL PUERTO D
Lcd_Cmd(LCD_CLEAR)
'// FUNCION QUE BORRA LA PANTALLA LCD
Lcd_Cmd(LCD_CURSOR_OFF)
LCD_Out(1, 3, "**CONTROL**") ' MENSAJE DE BIENVENIDA
LCD_Out(2, 1, "**SERVOVALVULA***")
DELAY_MS (2000)
Lcd_Cmd(LCD_CLEAR)
'// FUNCION QUE BORRA LA PANTALLA LCD
LCD_Out(2, 1, "**BIENVENIDO***")
DELAY_MS (2000)
Lcd_Cmd(LCD_CLEAR)
'///////////////////////////////////////////////////////////////////////////////

'///////////////////////////////////////////////////////////////////////////////
WHILE (TRUE)
'// MODO ESTA CAMBIANDO CON LAS PULSACIONES DE LA INTERRUPCION
'// SE SE SELECCIONA EL BOTON DE MODO SE INGRESA EN EL MENU EN LA LCD
WHILE (MODO <> 1)
SELECT CASE MODO
CASE 2 '// SELECCIONA MODO CONTROL VIA MANUAL
Lcd_Cmd(LCD_CURSOR_OFF)
LCD_Out(1, 1, "**MODO*MANUAL***")
LCD_Out(2, 1, "*PULSE**SELECT**")
IF PORTB.3 = 1 THEN '// SI SE PULSA EL BOTON DE SELECT
MODO = 1
MODO_CHAR = "M" '// SE DESPLIEGA EL CARACTER DE MODO MANUAL
SELECTED = 2
PORTC.0 = 1
Lcd_Cmd(LCD_CLEAR)
END IF
CASE 3 '// SELECCIONA MODO CONTROL VIA PID
Lcd_Cmd(LCD_CURSOR_OFF)
LCD_Out(1, 1, "MODO*CONTROL*PID")
LCD_Out(2, 1, "*PULSE**SELECT**")
IF PORTB.3 = 1 THEN '// SI SE PULSA EL BOTON DE SELECT
MODO = 1
MODO_CHAR = "C" '// SE DESPLIEGA EL CARACTER DE MODO PID
SELECTED = 3
PORTC.0 = 0
Lcd_Cmd(LCD_CLEAR)
END IF
CASE 4 '// SELECCIONA MODO CONTROL VIA PC

Lcd_Cmd(LCD_CURSOR_OFF)
LCD_Out(1, 1, "MODO*CONTROL*PC*")
LCD_Out(2, 1, "*PULSE**SELECT**")
IF PORTB.3 = 1 THEN
'// SI SE PULSA EL BOTON DE SELECT
MODO = 1
MODO_CHAR = "P"
'// SE DESPLIEGA EL CARACTER DE MODO PC
SELECTED = 4
PORTC.0 = 0
Lcd_Cmd(LCD_CLEAR)
END IF
CASE 5 '// SALE DEL MENU
MODO = 1
Lcd_Cmd(LCD_CLEAR)
END SELECT
WEND
'///////////////////////////////////////////////////////////////////////////////
LCD_Out(1, 15," ")
LCD_Out(1, 16, MODO_CHAR)
'///////////////////////////////////////////////////////////////////////////////
SELECT CASE SELECTED
CASE 2 '// SE ELIGIO CONTROL MODO MANUAL
ADC_DATA = ADC_READ(0) '//LECTURA DEL CANAL 2 CONTROL MANUAL
VREF = MULT(ADC_DATA) '//LLAMADO DE LA FUNCION DE MULTIPLICACION
CASE 3 '// SE ELIGIO CONTROL MODO CONTRL PID
ADC_DATA = ADC_READ(1) '//LECTURA DEL CANAL 0 CONTROL PID
VREF = MULT(ADC_DATA) '//LLAMADO DE LA FUNCION DE MULTIPLICACION
CASE 4 '// SE ELIGIO CONTROL MODO CONTROL VIA RS 232 DESDE PC
VREF = RECIBIDO_PC
CASE ELSE '// POR DEFECTO NO SE HACE NADA, CONRINUAL CON EL MODO PREVIO
END SELECT
'

VREF = MULT(ADC_DATA) '//LLAMADO DE LA FUNCION DE MULTIPLICACION


ByteToStr(VREF, TEXT) '//CONVERSION DEL VALOR DE VREF A CHAR
LCD_OUT(2,1, "VREF=") '//SE DESPLIEGA EL VALOR DEL CONTROL PID
LCD_Out(2,6, TEXT)
'//llamar funcion de filtro de la seales
'
VREF = FILT(0)
'///////////////////////////////////////////////////
ADC_DATA = ADC_READ(2) '//LECTURA DEL CANAL 1 CONTROL VPOT
VPOT = MULT(ADC_DATA) '//LLAMADO DE LA FUNCION DE MULTIPLICACION
'//llamar funcion de filtro de la seales
'
VREF = FILT(0)
'///////////////////////////////////////////////////
ByteToStr(VPOT, TEXT) '//CONVERSION DEL VALOR DE VPOT A CHAR
LCD_OUT (2,9, "VPOT=") '//SE DESPLIEGA EL VALOR DEL POTENCIOMETRO
LCD_Out(2,14, TEXT)
'//SE DESPLIEGA EL VALOR DEL VPOT
LCD_OUT(1,1, "Apertura =
%")
'// PORCENTAJE=(Vrefx100%)/49 '//FORMULA PARA OBTENER PORCENTAJE
PORCENT = (VREF*100)/49
ByteToStr(PORCENT, TEXT)
LCD_OUT(1,11,TEXT)
AUX = VREF - VPOT '// SE HACE UNA RESTA PARA DETERMINAR EL SENTIDO
'// DE GIRO A REALIZAR EN EL CONTROL DE LA VALVULA
Usart_Write(PORCENT)'// SE ENVIA EL PORCENTAJE DE APERTURA VIA RS-232
IF AUX < 0 THEN
'// GIRO DERECHA SI AUX MEMNOR A CERO PARA IGUALAR
IF BANDERA_CLOSED=0 THEN

BANDERA_OPENED=0 '// APAGADAO BANDERA MINIMO


PORTE = 1
'// GIRO DERECHA
END IF
ELSE
'//SI NO AUZ > 0 GIRO IZQUIERDAA PARA IGUALAR
IF BANDERA_OPENED=0 THEN
BANDERA_CLOSED=0 '// APAGADAO BANDERA MAXIMO
PORTE = 2
'// GIRO IZQUIERDA
END IF
END IF
IF AUX = 0
PORTE =
PORTC.1
PORTD.0
END IF
WEND

THEN
0
= 0
= 0

'// SI AUX = 0 SE LLEGO AL LA APERTURA DESEADA


'// PARA MOTOREDUCTOR
'// SE APAGAN LOS DOS PILOTOS
'//

end.
'///////////////////////////////////////////////////////////////////////////////

MANUAL DE OPERACION DE SERVOVALVULA ELECTRICA


Este es un manual completo mediante el cual se explicara la funcionalidad de la
servovalvula elctrica.
Lea este manual detenidamente antes de operar el dispositivo, si despus de
leerlo surgen inquietudes puede consultar a yhbolanos@unicauca.edu.co o a
yernesto@unicauca.edu.co .
Contenido:
1. partes
2. modo de operacin y funcionamiento
3. precauciones

1.

PARTES

El sistema de la servovalvula elctrica esta compuesto por 4 tarjetas


electrnicas: fuente de alimentacin, tarjeta de mando, tarjeta de sensores pticos,
tarjeta de control principal.
Fuente de alimentacin: esta tarjeta es la encargada de hacer la conexin a la
red elctrica de AC 110-120AC y provee los niveles de voltaje de DC necesarios
para que todo el sistema opere, estos niveles son 5VDC y 12VDC.

Salidas de tensin
5VDC-12VDC

Conector a las
Salidas AC del
Transformador
Salidas (9-9 VAC)

Tarjeta de mando: Esta es una pequea tarjeta en la cual se encuentran tres


botones con los cuales se puede hacer el control manual del dispositivo.
Con el botn de modo se ingresa a un men en la pantalla LCD, por medio del
cual se puede seleccionar tres diferentes modos de operacin (m. manual, m.
control por PID o m. control por pc )

Tarjeta de sensores pticos: en esta tarjeta se encuentran dos sensores de tipo


ptico (llaves pticas), que tienen la funcin del censado de final de carrera de la
vlvula para evitar sobre esfuerzo tanto en apertura como en el cierre de la
vlvula, esta tarjeta tiene un conector de 4 pines por medio de los cuales se
alimenta (5VDC) y a tambin entrega niveles lgicos (1 o 0) segn su activacin.

Conector

Tarjeta de control:

C1 = Conector botones Modo Select


C2 = Conector sensores pticos
C3 = Conector botn de reset
C4 = Entrada potencimetro de control manual
C5 = Entrada potencimetro lineal de censado de posicin
C6 = Conector para comunicacin serial
C7 = Conector pantalla LCD
C8 = Conector USB
C9 = Entrada de pulso al modulo CCP1

C10 = Conector de fuente de alimentacin


C11 = Conectores LEDS indicadores modo manual, apertura MAXIMA, apertura
MINIMA.

La tarjeta de control es la mas importante de todo el sistema en esta se encuentra


el microcontrolador, el modulo de comunicacin serial, etapa de potencia para el
moto reductor.
A esta tarjeta se le conectan todos los sensores por medio de conectores molex
para que lleven informacin al microcontrolador para que esta la procese y ejecute
el control sobre la vlvula.
2. MODO DE OPERACIN Y FUNCIONAMIENTO
Teniendo todos los mdulos (tarjetas) interconectadas en forma correcta, el
sistema inicia su funcionamiento al accionar el interruptor que permite el paso de
la seal AC, y que se encuentra ubicado en la parte trasera de la estructura de la
servo vlvula elctrica.
Al iniciar el sistema esta arranca mostrando un mensaje de bienvenida:

Por defecto el sistema debe iniciar en modo manual

Indicador de modo
manual

Lo primero que el sistema hace es recuperar el estado del potencimetro de


control manual y hacer el seguimiento hasta igualar al la posicin del
potencimetro lineal a no ser que antes de llegar a tal estado se cambie el tipo de
control por medio del men.
En caso de que el control sea cambiado la vlvula tiende a estabilizarse segn el
valor del control ya sea el valor recibido por el puerto serial en caso de control
desde el PC o al valor del voltaje del controlador PID si es el caso.
Men en pantalla LCD
Es un men por medio del cual de forma manual se puede modificar el modo de
control (manual, PID, PC), para ingresar al men basta con pulsar el botn de
modo, con el boton de select se selecciona el modo deseado acorde con el
mensaje desplegado en la pantalla, cuando se oprime select inmediatamente se
mostrara la pantalla de las variables y en la esquina superior derecha se mostara
un carcter que indicada el modo de control que se ha seleccionado :
Si se pulsa una vez: se da la posibilidad de elegir el modo manual

Si se pulsa por segunda vez: se da la posibilidad de elegir el modo manual

Si se pulsa por tercera vez: se da la posibilidad de elegir el modo manual

Si se pulsa por cuarta vez: el sistema regresa a la pantalla que muestra las
variables, porcentaje de apertura, valor del potencimetro lineal y valor del control
en curso (manual, PID, PC)

3 PRECAUSIONES
-

Conecte solo en la rede de 110-120 VAC


Conecte cables de comunicacin aprobados por el fabricante.