Está en la página 1de 31

Mondelez Per S.A.

Carrera

VIII CICLO - INGENIERA INDUSTRIAL

Curso

PROGRAMACION PARA INGENIEROS

Profesor

Ing. MIGUEL LEVANO STELLA

Alumnos

Lima, 20 de Diciembre del 2014

Programacin para Ingenieros

Indice
Indice
Dedicatoria
Introduccin
Captulo I.

La Empresa

1. Descripcin de la empresa
2. Organigrama de la empresa
Captulo II. Identificacin del Problema
1. Descripcin del Problema
2. Alternativa de Solucin del Problema
Captulo III. Elaboracin del Proyecto
1. Definicin del Diseo del Sistema
2. Elementos del Diseo
3. Marco terico del Microcontrolador
Captulo IV. Aplicacin e Implementacin del Sistema
1. Programacin o Desarrollo del Software
2. Programacin del Microcontrolador (C)
3. Presentacin del Sistema o Prueba y Verificacin
Conclusiones
Bibliografa

Ingeniera Industrial

Pgina 2

Programacin para Ingenieros

Dedicatoria

Queremos dedicarles este trabajo a


nuestras familias, que continuamente
nos apoyan y son los pilares y la fuerza
que nos mueven a ser mejores
personas, amigos, compaeros esposos
y futuros Ingenieros Industriales.

Ingeniera Industrial

Pgina 3

Programacin para Ingenieros

Introduccin

El presente trabajo buscamos aplicar los conocimientos recibidos en el curso para


aplicarlos en

Ingeniera Industrial

Pgina 4

Programacin para Ingenieros

Captulo I.

La Empresa

1. Descripcin de la empresa en estudio y del producto


La Empresa
Mondelez Internacional es una fbrica que comercializa productos alimenticios
procesados para consumo humano, como galletas, caramelos, chocolates,
postres, gelatinas, refrescos, artculos de repostera y dulces en general.

Visin
As como ayer, hoy y siempre ser el modelo a seguir en resultados, procesos y
gente.

Misin
Hacer galletas, baados y wafers que encanten a nuestros consumidores, al mejor
costo, con excelente calidad, en el momento y la cantidad requerida por el
mercado.

Ubicacin
La planta se encuentra ubicada en Avenida Venezuela N 2470 Lima.

Historia
Los inicios de golosinas del Per se remontan por el ao se 1899 cuando don
Arturo Field funda la compaa Arturo Field y la estrella, empresa dedicada a la
elaboracin de galletas de soda.
Ingeniera Industrial

Pgina 5

Programacin para Ingenieros

En el ao 1993 Nabisco, una de las grandes multinacionales de alimentos, compra


la compaa de Arturo Field. Siete aos despus, en el 2000, Kraft Foods
Internacional compra mundialmente a Nabisco, convirtindose as en la segunda
empresa mundial de alimentos.
Actualmente Mondedez Internacional tiene operaciones en 150 pases del mundo
y aproximadamente 159 plantas industriales, situndose en el Per la planta de
galletas que abastece la Regin Andina y pases de Centro Amrica y el Caribe.

Productos que comercializa


La compaa de alimentos Mondelez Internacional posee algunas de las marcas
ms queridas por los consumidores peruanos. Produce localmente marcas como
las galletas Soda Field, Oreo, Club Social, Ritz, Charada, Coronita, Doa Pepa,
Cua Cua, entre otras. Asimismo, comercializa el queso Philadelphia, la mayonesa
Kraft, los postres instantneos y gelatina Royal, los refrescos Clight y Tang, entre
otros.

Ingeniera Industrial

Pgina 6

Programacin para Ingenieros

2. Organigrama de la empresa

GERENCIA
GENERAL

GERENTE
PRODUCCION

MANUFACTURA

ASEGURAMIENTO
DE CALIDAD

INGENIERIA

GERENTE DE
VENTAS

PLANEAMIENTO

MARKETING

GERENTE DE
FINANZAS

VENTAS

CONTRALORIA

CONTABILIDAD

MANTENIMIENTO

PROYECTOS

Gerente de
planta

Gerente
Seccin 1

Jefe de
Lnea 1

Jefe de
Lnea 2

Gerente
Seccin 2

Jefe de
Chocolate

Jefe de
Lnea 3

Supervisor

Facilitador

Ingeniera Industrial

Facilitador

Jefe de
Lnea 4

Jefe de
Lnea 5

Supervisor

Facilitador

Facilitador

Facilitador

Facilitador

Pgina 7

Programacin para Ingenieros

Captulo II. Identificacin del Problema


1. Descripcin del Problema
Actualmente las mquinas de empaque de la empresa Mondelez tienen micro
paros que no son registrados por los maquinistas debido a la carga de trabajo que
tienen en su da a da esto a su vez origina que no tengan un control real de
cuanta prdida de eficiencia les est generando estos micro paros por este motivo
no se tiene una data de los micro paros ms ocurrentes as mismo el no tener esta
data no se puede

realizar un anlisis causa raz de estos problemas para

encontrar una solucin definitiva para disminuir la carga de trabajo de los


maquinistas y mejorar la eficiencia de la lnea la cual redundara en una reduccin
de los costos de la fabricacin de sus productos permitindolos volverse ms
competitivos.
2. Alternativa de Solucin del Problema
Instalar un software mediante microcontroladores anexados a la Mquina que
registre en tiempo real los paros y micro paros ocasionados en las mquinas de
empaque de tal manera que nos permita tener data en tiempo real y de manera
visual mediante una pantalla LCD de las prdidas de eficiencia que nos estn
originando.

Objetivo General
Incrementar el OEE de la planta de 80% a 85%

Objetivos Especficos
Eliminar prdidas de eficiencia de la planta originada por paros y micro
paros en la maquinaria de planta que no tienen una solucin definitiva por
falta de data.
Llevar un control visual de la productividad en tiempo real de tal manera
que se tome accin inmediata en caso de desviaciones negativas.
Instalar pantallas LCD anexada a microcontroladores para llevar un control
visual de la produccin.
Ingeniera Industrial

Pgina 8

Programacin para Ingenieros

Disminuir la carga de trabajo de los Maquinistas de planta

Justificacin
El OEE o eficiencia general de equipos de la planta te mide la cantidad de
paros no planificados o no deseados que ocurren dentro de la planta de
produccin.
La planta actualmente tiene un OEE de 80% cada punto de OEE de la
planta tiene un valor de 122000 dlares el incremento en 5% de este
indicador permitir un ahorro significativo y un aumento de productividad
as como disminucin de horas extras para la empresa dndole un plus
de competitividad a sus productos.
Captulo III. Elaboracin del Proyecto
1. Definicin del Diseo del Sistema
Para la elaboracin del proyecto disearemos un sistema de control de puertos
de entrada/salida basados en las caractersticas del PIC16F877A, utilizando
lenguaje de programacin C y software de simulacin Proteus-ISIS con precisin.
El Objetivo de nuestro proyecto es aplicar todos los conocimientos adquiridos para
programar una tarjeta de circuito impreso y enviar mensajes a travs de una
pantalla LCD.
2. Elementos del Diseo
Placa de Circuito Impreso: La placa de un circuito impreso es la base para el
montaje del mismo, es el soporte que sujetar los componentes y a la vez los
interconectar mediante una serie de pistas de cobre.
Una placa de circuito impreso est formada por un soporte, que puede ser de
baquelita o de fibra de vidrio y una capa de cobre depositada sobre el soporte.

Ingeniera Industrial

Pgina 9

Programacin para Ingenieros

Pantalla LCD: La definicin ms clara de un LCD es una pantalla de cristal lquido


que visualiza unos ciertos caracteres. Para poder hacer funcionar un LCD, debe
de estar conectado a un circuito impreso en el que estn integrados los
controladores del display y los pines para la conexin del display. Sobre el circuito
impreso se encuentra el LCD en s, rodeado por una estructura metlica que lo
protege. En total se pueden visualizar 2 lneas de 16 caracteres cada una, es
decir, 2x16=32 caracteres. A pesar de que el display slo puede visualizar 16
caracteres por lnea, puede almacenar en total 40 por lnea. Es el usuario el que
especifica qu 16 caracteres son los que se van a visualizar.

Microcontrolador PIC 16F877A: Es un microcontrolador con memoria de


programa tipo FLASH, lo que representa gran facilidad en el desarrollo de
prototipos y en su aprendizaje ya que no se requiere borrarlo con luz ultravioleta
como las versiones EPROM, sino que permite reprogramarlo nuevamente sin ser
borrado con anterioridad.

Ingeniera Industrial

Pgina 10

Programacin para Ingenieros

Grabador PIC: Esta herramienta permite grabar o programar todo tipo de


Microcontroladores de Microchip (pics).

3. Marco terico del Microcontrolador PIC 16F877A


Los microcontroladores son computadores digitales integrados en un chip que
cuentan con un microprocesador o unidad de procesamiento central (CPU), una
memoria para almacenar el programa, una memoria para almacenar datos y
puertos de entrada salida. A diferencia de los microprocesadores de propsito
general, como los que se usan en los computadores PC, los microcontroladores
son unidades autosuficientes y ms econmicas.
El funcionamiento de los microcontroladores est determinado por el programa
almacenado en su memoria. Este puede escribirse en distintos leguajes de
programacin. Adems, la mayora de los microcontroladores actuales pueden
reprogramarse repetidas veces.
Por las caractersticas mencionadas y su alta flexibilidad, los microcontroladores
son ampliamente utilizados como el cerebro de una gran variedad de sistemas
embebidos que controlan mquinas, componentes de sistemas complejos, como
aplicaciones industriales de automatizacin y robtica, domtica, equipos
mdicos, sistemas aeroespaciales, e incluso dispositivos de la vida diaria como
automviles, hornos de microondas, telfonos y televisores.
Frecuentemente se emplea la notacin C o las siglas MCU (por microcontroller
unit) para referirse a los microcontroladores.
Ingeniera Industrial

Pgina 11

Programacin para Ingenieros

Caractersticas: Las principales caractersticas de los C son:


Unidad de Procesamiento Central (CPU): Tpicamente de 8 bits, pero
tambin las hay de 4, 32 y hasta 64 bits con arquitectura Harvard, con
memoria/bus de datos separada de la memoria/bus de instrucciones de
programa, o arquitectura de von Neumann, tambin llamada arquitectura
Princeton, con memoria/bus de datos y memoria/bus de programa
compartidas.
Memoria de Programa: Es una memoria ROM (Read-Only Memory),
EPROM

(Electrically

Programable

ROM),

EEPROM

(Electrically

Erasable/Programable ROM) o Flash que almacena el cdigo del programa


que tpicamente puede ser de 1 kilobyte a varios megabytes.
Memoria de Datos: Es una memoria RAM (Random Access Memory) que
tpicamente puede ser de 1, 2 4, 8, 16, 32 kilobytes.
Generador del Reloj: Usualmente un cristal de cuarzo de frecuencias que
genera una seal oscilatoria de entre 1 a 40 MHz, o tambin resonadores
o circuitos RC.
Interfaz de Entrada/Salida: Puertos paralelos, seriales (UARTs, Universal
Asynchronous

Receiver/Transmitter),

I2C

(Inter-Integrated

Circuit),

Interfaces de Perifricos Seriales (SPIs, Serial Peripheral Interfaces), Red


de rea de Controladores (CAN, Controller Area Network), USB (Universal
Serial Bus).
Otras opciones:
Conversores Anlogo-Digitales (A/D, analog-to-digital) para convertir un
nivel de voltaje en un cierto pin a un valor digital manipulable por el
programa del microcontrolador.
Moduladores por Ancho de Pulso (PWM, Pulse-Width Modulation) para
generar ondas cuadradas de frecuencia fija pero con ancho de pulso
modificable.
La alta integracin de subsistemas que componen un C reduce el nmero de
chips, la cantidad de pistas y espacio que se requerira en un circuito impreso si
se implementase un sistema equivalente usando chips separados.

Ingeniera Industrial

Pgina 12

Programacin para Ingenieros

Descripcin de los PINES:

Ingeniera Industrial

Pgina 13

Programacin para Ingenieros

Ingeniera Industrial

Pgina 14

Programacin para Ingenieros

Descripcin de los Puertos:


Puerto A:
Puerto de e/s de 6 pines
RA0 RA0 y AN0
RA1 RA1 y AN1
RA2 RA2, AN2 y VrefRA3 RA3, AN3 y Vref+
RA4 RA4 (Salida en colector abierto) y T0CKI(Entrada de reloj del modulo
Timer0) RA5 RA5, AN4 y SS (Seleccin esclavo para el puerto serie
sncrono)
Puerto B:
Puerto e/s 8 pines
Resistencias pull-up programables
RB0 Interrupcin externa
RB4-7 Interrupcion por cambio de flanco
RB5-RB7 y RB3 programacion y debugger in circuit
Puerto C:
Puerto e/s de 8 pines
Ingeniera Industrial

Pgina 15

Programacin para Ingenieros

RC0 RC0, T1OSO (Timer1 salida oscilador) y T1CKI (Entrada de reloj del
modulo Timer1).
RC1-RC2 PWM/COMP/CAPT
RC1 T1OSI (entrada osc timer1)
RC3-4 IIC
RC3-5 SPI
RC6-7 USART
Puerto D:
Puerto e/s de 8 pines
Bus de datos en PPS (Puerto paralelo esclavo)
Puerto E:
Puerto de e/s de 3 pines
RE0 RE0 y AN5 y Read de PPS
RE1 RE1 y AN6 y Write de PPS
RE2 RE2 y AN7 y CS de PPS
Proceso de Desarrollo:
El proceso de desarrollo de una aplicacin basada en microcontroladores se
compone de las siguientes etapas principales:
Desarrollo de software: Esta etapa corresponde a la escritura y
compilacin/ensamblaje del programa que regir las acciones del C y los
sistemas perifricos conectados a este.
Programacin del

C:

En

esta

etapa el

cdigo de mquina

correspondiente al programa desarrollado en la etapa anterior se descarga


en la memoria del C.
Prueba y verificacin: Por ltimo, el C debe conectarse al circuito base
y someterse a pruebas para verificar el funcionamiento correcto del
programa.

Ingeniera Industrial

Pgina 16

Programacin para Ingenieros

Captulo IV. Aplicacin e Implementacin del Sistema

1. Programacin o Desarrollo del Software


En esta etapa consiste en escribir y compilar/ensamblar el programa que
determinara las acciones del C y su funcionamiento. Existen distintas maneras
de desarrollar el programa, dependiendo del lenguaje inicial que se utiliza para
escribir el programa:
Lenguaje Assembly - Lenguaje de Mquina/Cdigo Objeto
(.asm) ensamblador (.hex, .o, .bin, .coff)
Lenguaje de Alto Nivel - Lenguaje Assembly - Lenguaje de
Mquina/Cdigo Objeto
(.c, .cpp) compilador (.asm) ensamblador (.hex, .o, .bin, .coff)

Escribir el Programa en PIC C COMPILER:

Ingeniera Industrial

Pgina 17

Programacin para Ingenieros

#include <16f877a.h>
#fuses
#use

xt,nolvp,nowdt,put,cpd,protect //configura los fusibles


delay(clock=4Mhz) //OSCILADOR <=4MHZ

#include <lcd_portb.h>

void main(void)
{
lcdInicializa();
lcdPosicionXY(2,1);
lcdEnviaMensaje("INTEGRANTES:");
delay_ms(1000);
while(true)
{
lcdPosicionXY(0,2);
lcdEnviaMensaje(" JOSE EFFIO ");
delay_ms(2000); //introduce un retardo de 2000ms
lcdPosicionXY(0,2);
lcdEnviaMensaje("MILTON BOCANEGRA");
delay_ms(2000); //introduce un retardo de 2000ms
lcdPosicionXY(0,2);
Ingeniera Industrial

Pgina 18

Programacin para Ingenieros

lcdEnviaMensaje(" ROLANDO NAVARRO");


delay_ms(2000); //introduce un retardo de 2000ms
lcdPosicionXY(0,2);
lcdEnviaMensaje(" NICOLA CALVO ");
delay_ms(2000); //introduce un retardo de 2000ms
lcdPosicionXY(0,2);
lcdEnviaMensaje(" PAMELA PECHE ");
delay_ms(2000); //introduce un retardo de 2000ms
lcdPosicionXY(0,2);
lcdEnviaMensaje("

UPN

");

delay_ms(2000); //introduce un retardo de 2000ms


}
}
Compilar el Programa:

Ingeniera Industrial

Pgina 19

Programacin para Ingenieros

Programacin de Puerto LCD:

Ingeniera Industrial

Pgina 20

Programacin para Ingenieros

#ifndef PUERTO_LCD

#byte TRIS_LCD = getenv("SFR:TRISB") //indica que el puerto b ser de


salida

#bit Lcd_D4

= getenv("SFR:PORTB").0

#bit Lcd_D5

= getenv("SFR:PORTB").1

#bit Lcd_D6

= getenv("SFR:PORTB").2

#bit Lcd_D7

= getenv("SFR:PORTB").3

#bit Lcd_EN

= getenv("SFR:PORTB").4

#bit Lcd_RS

= getenv("SFR:PORTB").5

///////////// Funciones Internas //////////////


void lcdControlComando(void);
void lcdEnviaData(unsigned int);
//////////// Funciones Externas //////////////
void lcdInicializa(void);
void lcdEnviaMensaje(unsigned int);
void lcdPosicionXY(unsigned int, unsigned int);
void lcdRotaDerechaLCD(unsigned int,unsigned long );
void lcdRotaIzquierdaLCD(unsigned int,unsigned long);
void lcdBorraPantalla(void);
void lcdCursorPropiedades(short, short);
void lcdApagaPantalla(void);
void lcdBlinkPantalla(unsigned int contador,unsigned long tiempo);
void lcdPrendePantalla(void);

#define

HIGH 1

#define

LOW

void lcdInicializa(void)
Ingeniera Industrial

Pgina 21

Programacin para Ingenieros

{
TRIS_LCD &= ~(1<<0)&~(1<<1)&~(1<<2)&~(1<<3)&~(1<<4)&~(1<<5);
delay_ms(15);
/////// Configuracion Inicial segun Fabricante ///////////////
output_b(0x0C);
lcdControlComando();
output_b(0x0C);
lcdControlComando();
output_b(0x0C);
lcdControlComando();
output_b(0x04);
lcdControlComando();
/////////// Modo transferencia 4 Bits, 2 Lineas, tamao de Caracter 5x7 /////////////
lcdEnviaData(0x28);
/////////// Modo Funcionamiento: Incrementa Cursor, Modo Normal ///////////
lcdEnviaData(0x06);
/////////// Control ONN/OFF : Display ON, Cursor OF, Intermitente OF ////////////
lcdEnviaData(0x0C);
/////////// Borra Pantalla ////////////////////
lcdEnviaData(0x01);
}
void lcdEnviaData(unsigned int Data)
{
Lcd_D7=bit_test(Data,4);
Lcd_D6=bit_test(Data,5);
Lcd_D5=bit_test(Data,6);
Lcd_D4=bit_test(Data,7);

lcdControlComando();

Lcd_D7=bit_test(Data,0);
Lcd_D6=bit_test(Data,1);
Lcd_D5=bit_test(Data,2);
Ingeniera Industrial

Pgina 22

Programacin para Ingenieros

Lcd_D4=bit_test(Data,3);

lcdControlComando();
}

void lcdControlComando(void)
{
Lcd_EN=HIGH;
delay_us(40);
Lcd_EN=LOW;

if(Lcd_RS) delay_us(120);
else

delay_ms(5);

void lcdEnviaMensaje(unsigned int caracter)


{
Lcd_RS=HIGH;
lcdEnviaData(caracter);
Lcd_RS=LOW;
}

void lcdPosicionXY(unsigned int posColumna,unsigned int posFila)


{
unsigned int Linea=0;

if

(posFila==4) Linea=0xD4;

else if (posFila==3) Linea=0x94;


else if (posFila==2) Linea=0xC0;
else if (posFila==1) Linea=0x80;

Linea=Linea+posColumna;
lcdEnviaData(Linea);
Ingeniera Industrial

Pgina 23

Programacin para Ingenieros

void lcdRotaDerechaLCD(unsigned int Movimientos, unsigned long tiempo)


{
unsigned int contador=0;
for(contador=0;contador<Movimientos;contador++)
{
lcdEnviaData(0b00011000);
delay_ms(tiempo);
}
}

void lcdRotaIzquierdaLCD(unsigned int Movimientos,unsigned long Tiempo)


{
unsigned int contador=0;
for(contador=0;contador<Movimientos;contador++)
{
lcdEnviaData(0b00011100);
delay_ms(Tiempo);
}
}

void lcdBorraPantalla(void)
{
lcdEnviaData(0x01);
}

void lcdCursorPropiedades(short ONOFCursor, short ONOFBlink)


{
lcdEnviaData(0x0C|(ONOFCursor<<1)|(ONOFBlink<<0));
}
void lcdBlinkPantalla(unsigned int contador,unsigned long tiempo)
{
Ingeniera Industrial

Pgina 24

Programacin para Ingenieros

unsigned int i=0;


for(i=0;i<contador;i++)
{
lcdEnviaData(0x08);
delay_ms(tiempo);
lcdEnviaData(0x0C);
delay_ms(tiempo);
}
}
void lcdApagaPantalla(void)
{
lcdEnviaData(0x08);
}

void lcdPrendePantalla(void)
{
lcdEnviaData(0x0C);
}
#endif

2. Programacin del Microcontrolador (C)


Este proceso corresponde a utilizar un programa en el PC que toma el cdigo
ensamblado (.hex, .o, .bin, .coff) para el C especfico, y lo enva mediante algn
puerto (serial, paralelo, USB, etc.) a un dispositivo que lo escribe en la memoria
del C. Se acostumbra denominar programador tanto al software como al
hardware involucrado para este propsito, lo cual puede prestarse a confusin. El
software programador a veces recibe tambin el nombre de downloader, ya que
su propsito es descargar o transferir desde el PC al C el cdigo ensamblado.

Ingeniera Industrial

Pgina 25

Programacin para Ingenieros

Es importante mencionar que no deben confundirse los trminos desarrollo


o programacin del software y programacin del C, el primero se refiere a
escribir el programa, mientras que el segundo se refiere transferir el cdigo
de mquina a la memoria del C.

Interconexin del PIC con el LCD: (ISIS-Proteus)

Ingeniera Industrial

Pgina 26

Programacin para Ingenieros

Cargar archivo .hex en el circuito:

Ingeniera Industrial

Pgina 27

Programacin para Ingenieros

Ejecutar el circuito:

3. Presentacin del Sistema o Prueba y Verificacin


Una vez programado el C, con el grabador de PIC trasladaremos el programa
creado para verificar el funcionamiento y presentar el proyecto.

Ingeniera Industrial

Pgina 28

Programacin para Ingenieros

Ingeniera Industrial

Pgina 29

Programacin para Ingenieros

Conclusiones

AGREGAR

Ingeniera Industrial

Pgina 30

Programacin para Ingenieros

Bibliografa
https://www.youtube.com/watch?v=azpvO_duaXI
https://www.youtube.com/watch?v=bUwx_Gb78p4
https://www.youtube.com/watch?v=E8zKV5BBMoA
https://www.youtube.com/watch?v=6SCx0Q4o-14
http://www.utp.edu.co/~eduque/arquitec/PIC16F877.pdf
http://www.mikroe.com/chapters/view/80/capitulo-2-programacion-de-losmicrocontroladores/
http://www.monografias.com/trabajos18/descripcion-pic/descripcion-pic.shtml
https://www.google.com.pe/search?q=grabador+de+pic16f877a&biw=1440&bih=
766&source=lnms&tbm=isch&sa=X&ei=zJ2VVIC_FsWmNqPlgAF&sqi=2&ved=0CAYQ_AUoAQ#tbm=isch&q=pic16f877a&imgdii=_

Ingeniera Industrial

Pgina 31