You are on page 1of 38

83

CAPÍTULO 4
IMPLEMENTACIÓN DEL SISTEMA DE SUPERVISIÓN Y
MONITOREO DE LA MÁQUINA

4.1. DESCRIPCIÓN DEL PANEL VISUALIZADOR

El panel visualizador es un sistema microprocesado basado en el


microcontrolador dsPIC30F4011. Este se encarga del monitoreo y calibración de
la máquina empacadora de caramelo en polvo. El módulo visualizador se
comunica con el Módulo de Control Principal serialmente. El panel visualizador se
lo puede observar en la Figura 4.1.

Display grafico
240x128

Teclado Potenciómetros

Figura 4.1. Panel visualizador

Las funciones que realiza el panel visualizador son:

 Se comunica vía serial con el módulo de control principal.


 Permite realizar ajuste de los tiempos de cada etapa del proceso
 Permite monitorear el accionamiento de los elementos de la máquina
84

 Permite el accionamiento manual de todas las salidas conectadas al


Módulo de Control Principal.
 Lleva un registro de la producción total de fundas conformadas.
 Lleva un registro de la producción de fundas llenas con polvo.
 Lleva un registro de la producción semanal.
 Permite visualizar el número de fundas elaboradas por minuto.
 Lleva un registro de horas de trabajo.
 Lleva un registro de número de paradas diarias de la máquina.

4.2. FUNCIONAMIENTO DEL PANEL VISUALIZADOR

El panel de visualización consta de tres sectores los cuales son: un display


gráfico, un teclado y dos potenciómetros. Los mismos que tienen varias funciones
que las realizan en forma secuencial y contínua como se muestra en la Figura 4.2.

Las etapas que cumple el panel visualizador son las siguientes:

 Inicialización
 Programa principal

INICIO

Configuración de
puertos

Lectura de
memoria
EEPROM
INICIALIZACION

Lectura del reloj


calendario

Visualización de la
pantalla inicial

Visualización de
Pantalla principal

1
85

PROGRAMA

Barrido de teclado
PROGRAMA PRINCIPAL

Lectura del puerto


de comunicacion

Lectura del pin de


sincronización

Lectura del reloj


calendario

Figura 4.2. Funcionamiento del panel visualizador

4.3. INICIALIZACIÓN

El proceso de inicialización consta de varias etapas que se describen a


continuación:

 Configuración de puertos

 Lectura de la memoria EEPROM

 Lectura del reloj calendario

 Visualización de la pantalla principal


86

4.3.1. CONFIGURACIÓN DE PUERTOS

El panel visualizador posee un control central realizado por el microcontrolador


dsPIC30F4011, el mismo que maneja los diferentes dispositivos conectados,
como se observa en la Figura 4.3. Los elementos conectados son un LCD gráfico,
un teclado y el integrado ds1307. Además posee un interfaz de comunicación con
el Módulo de Control Principal.

LCD GRAFICO
240x128

Módulo de control RS232 I2C Reloj calendario


dsPIC30F4011
principal ds1307

Teclado

Figura 4.3. Estructura del Panel Visualizador

4.3.1.1. Microcontrolador DSPIC30f4011

El dsPIC30F4011 posee casi las mismas características que el dsPIC30F3011


utilizado en el Módulo de Control Principal, la única diferencia es la memoria de
programa disponible en el micro, como se puede observar en la Tabla 4.1.

Controlador Memoria de programa

dsPIC30F3011 24K/8K

dsPIC30F4011 48K/16K

Tabla 4.1. Memoria de programa de los dsPIC30F


87

Al trabajar con un LCD gráfico es necesario contar con suficiente espacio en la


memoria de programa al momento de realizar animaciones como la desarrollada,
razón por la cual se utiliza el microcontrolador dsPIC30F4011

La asignación de pines del microcontrolador se muestra en la Tabla 4.2, así como


también la descripción de cada pin utilizado.

PINES dsPIC USOS DESCRIPCIÓN


RB0 – RB7 DB0 – DB7 Bus de datos del LCD grafico
RB8 NC No utilizado
RC13 RX Recepción de comunicación con el MCP
RC14 TX Transmisión de comunicación con el MCP
RD0 RTC-OUT Onda cuadrada del RTC a 1Hz de frec.
RD1 DOWN Tecla hacia abajo
RD2 SAVE/SEND Tecla de guardar y enviar
RD3 NC No utilizado
RE0 P1 Tecla de P1
RE1 P2 Tecla de P2
RE3 P3 Tecla de P3
RE4 UP Tecla hacia arriba
RE5 LEFT Tecla hacia la izquierda
RE6 RIGTH Tecla hacia la derecha
RF0 CD Bus de control del LCD
RF1 RD Bus de control del LCD
RF2 SDA Línea de datos del ds1307
RF3 SCL Línea reloj del ds1307
RF4 RST Bus de control del LCD
RF5 WR Bus de control del LCD
RF6 CE Bus de control del LCD

Tabla 4.2. Distribución de pines del dsPIC30F4011

El dsPIC30F4011 trabaja con un cristal de 20 MHz y una resistencia de 1 KOhm


en el pin de MCLR. El circuito implementado se puede observar en la Figura 4.4.
88

VCC VCC

1KOHM

VDD
VDD
VDD

AVDD
MCLR

33nF 13
OSC1/CLKI
20MHz 14
OSC2/CLK0/RC15 dsPIC 30F4011
2 38
33nF DB0 RB0/EMUD3/AN0/VREF+/CN2 PWM1L/RE0 P1
3 37
DB1 RB1/EMUC3/AN1/VREF-/CN3 PWM1H/RE1 P2
4 36
DB2 RB2/AN2/SS1/CN4 PWM2L/RE2 P3
5 35
DB3 RB3/AN3/INDX/CN5 PWM2H/RE3 P4
6 34
DB4 RB4/AN4/QEA/IC7/CN6 PWM3L/RE4 P5
7 33
DB5 RB5/AN5/QEB/IC8/CN7 PWM3H/RE5 P6
8 17
DB6 RB6/AN6/OCFA FLTA/INT0/RE8 SINC
9
DB7 RB7/AN7
10
RB8/AN8

15
RX RC13/EMUD1/SOSCI/T2CK/U1ATX/CN1
16 30
TX RC14/EMUC1/SOSCO/T1CK/U1ARX/CN0
RF0 CD
29
RF1 RD
23 26
RTC-OUT RD0/EMUC2/OC1/IC1/INT1 PGC/EMUC/U1RX/SDI1/SDA/RF2 SDA
18 25
P7 RD1/EMUD2/OC2/IC2/INT2 PGD/EMUD/U1TX/SDO1/SCL/RF3 SCL
22 28
P8 RD2/OC3 U2RX/CN17/RF4 RST
19 27
RD3/OC4 U2TX/CN18/RF5 WR
AVSS

24
VSS
VSS
VSS

SCK1/RF6 CE

Figura 4.4. Circuito de conexión del dsPIC30F4011

4.3.2. LECTURA DE LA MEMORIA EEPROM

Para continuar con el proceso de inicialización se deben leer los datos


almacenados en la memoria del microcontrolador para actualizar los datos hasta
el momento obtenidos. Los valores que son almacenados son los siguientes:

 Tiempos asignados a cada etapa del proceso de empacado


 Valor de producción total
 Valor de producción de fundas llenas
 Horómetro
 Producción diaria
89

4.3.2.1. Tiempos del proceso de empacado

Estos valores de tiempos son transmitidos al Módulo de Control Principal y sirven


para realizar el proceso de empacado. Los valores de tiempos son almacenados
en las localidades de memoria mostrados en la Tabla 4.3.

Nombre Dirección Descripción


Tiempo máximo desde el accionamiento del
T1 0x7FFC10 sellado horizontal hasta la activación del sensor
magnético.

Tiempo desde la activación del sellado vertical


T2 0x7FFC12
hasta el inicio de la dosificación.

T3 0x7FFC14 Tiempo de dosificación.

T4 0x7FFC16 Retardo entre la dosificación y el arrastre.

Tiempo de espera para el inicio de la lectura del


T5 0x7FFC18
sensor óptico.

Retado luego de la detección de la marca hasta el


T6 0x7FFC1A
fin del arrastre.

T7 0x7FFC1C Retardo para el inicio del nuevo ciclo

Tabla 4.3. Localidades de memoria utilizadas para almacenar los tiempos

4.3.2.2. Valor de producción total

El panel visualizador almacena el número de fundas elaboradas, incluidas las


vacías. Por tratarse de un valor extremadamente alto se almacenan en cuatro
localidades, dispuestas como se muestra en la Figura 4.5.

1000000 - 255999999 10000 - 999999 100 - 9999 0 - 99


alto Medio_alto Medio_bajo bajo

Producción total

Figura 4.5. Valor de producción total


90

Las localidades de memorias utilizadas para almacenar el valor de producción


total se detallan en la Tabla 4.4.

Nombre Dirección Descripción

Dígitos menos significativos de producción total,


bajo 0x7FFC20
su valor va desde 0 a 99

Dígitos de producción total cuyo valor va desde


Medio_bajo 0x7FFC22
100 a 9999

Dígitos de producción total cuyo valor va desde


Medio_alto 0x7FFC24
10000 a 999999

Dígitos más significativos de producción total, su


alto 0x7FFC26
valor va desde 1000000 a 255999999

Tabla 4.4. Localidades de memoria utilizadas para almacenar la producción

4.3.2.3. Valor de producción de fundas llenas

El panel visualizador almacena el número de fundas llenas. Este valor también se


almacena en cuatro localidades diferentes como se muestra en la Figura 4.6.

1000000 - 255999999 10000 - 999999 100 - 9999 0 - 99


altoL Medio_altoL Medio_bajoL bajoL

Producción de fundas llenas

Figura 4.6. Valor de producción de fundas llenas

Las localidades de memorias utilizadas para almacenar el valor de producción de


fundas llenas se detalla en la tabla 4.5.

Nombre Dirección Descripción

Dígitos menos significativos, su valor va desde 0 a


bajoL 0x7FFC30
99
91

Medio_bajoL 0x7FFC32 Dígitos desde 100 a 9999

Medio_altoL 0x7FFC34 Dígitos desde 10000 a 999999

Dígitos más significativos y su valor va desde


altoL 0x7FFC36
1000000 a 255999999

Tabla 4.5. Localidades de memoria de la producción de fundas llenas

4.3.2.4. Horómetro

El panel visualizador almacena el número de horas que permanece encendida la


máquina con el fín de conocer su comportamiento y poder establecer un
calendario de mantenimiento.

Este valor es también alto y se almacena en tres registros como se muestra en la


Figura 4.7.
10000 - 2559999 100 - 9999 0 - 99
Hora_a Hora_m Hora_b

Horometro

Figura 4.7. Horómetro

Las fracciones de horas también son almacenadas en un cuarto registro llamado


horómetro. Todos estos registros son almacenados en las localidades detalladas
en la Tabla 4.6.

Nombre Dirección Descripción

Registro de almacenamiento del número de


horometro 0x7FFC28
minutos para el contador de horas

Dígitos menos significativos y su valor va desde 0


Hora_b 0x7FFC38
a 99.
Hora_m 0x7FFC3A Dígitos desde 100 a 9999

Hora_a 0x7FFC3C Dígitos desde 10000 a 2559999

Tabla 4.6. Localidades de memoria del contador de horas


92

4.3.2.5. Producción diaria

El panel visualizador almacena valores de producción total de cada día de la


semana, y este valor es almacenado en tres registros por su tamaño. Su
distribución se ilustra en la Figura 4.8.

10000 - 2559999 100 - 9999 0 - 99


Lunes_a Lunes_m Lunes_b

Historial diario

Figura 4.8. Valor de historial diario

El registro Lunes_g almacena la fecha en la que se registró el valor de


producción, esto se realiza con el objeto de encerar el contador cada semana.

Finalmente el registro Lunes_c es un contador del número de paradas diarias de


la máquina.

Los registros de cada día se configuran de igual manera que el mencionado


anteriormente y las localidades usadas se detallan en la Tabla 4.7.

Nombre Dirección Descripción

Dígitos menos significativos y su valor va desde 0


Lunes_b 0x7FFC40
a 99.

Lunes_m 0x7FFC42 Dígitos desde 100 a 9999

Lunes_a 0x7FFC44 Dígitos desde 10000 a 2559999

Fecha de almacenamiento de producción del día


Lunes_g 0x7FFC46
lunes

Lunes_c 0x7FFC48 Número de paradas del día lunes

Dígitos menos significativos y su valor va desde 0


Martes_b 0x7FFC50
a 99.
93

Martes_m 0x7FFC52 Dígitos desde 100 a 9999

Martes_a 0x7FFC54 Dígitos desde 10000 a 2559999

Fecha de almacenamiento de producción del día


Martes_g 0x7FFC56
martes

Martes_c 0x7FFC58 Número de paradas del día martes

Dígitos menos significativos y su valor va desde 0


Miércoles_b 0x7FFC60
a 99.

Miércoles_m 0x7FFC62 Dígitos desde 100 a 9999

Miércoles_a 0x7FFC64 Dígitos desde 10000 a 2559999

Fecha de almacenamiento de producción del día


Miércoles_g 0x7FFC66
miercoles

Miércoles_c 0x7FFC68 Número de paradas del día miercoles

Dígitos menos significativos y su valor va desde 0


Jueves_b 0x7FFC70
a 99.

Jueves_m 0x7FFC72 Dígitos desde 100 a 9999

Jueves_a 0x7FFC74 Dígitos desde 10000 a 2559999

Fecha de almacenamiento de producción del día


Jueves_g 0x7FFC76
jueves

Jueves_c 0x7FFC78 Número de paradas del día jueves

Dígitos menos significativos y su valor va desde 0


Viernes_b 0x7FFC80
a 99.

Viernes_m 0x7FFC82 Dígitos desde 100 a 9999

Viernes_a 0x7FFC84 Dígitos desde 10000 a 2559999


94

Fecha de almacenamiento de producción del día


Viernes_g 0x7FFC86
viernes

Viernes_c 0x7FFC88 Número de paradas del día viernes

Dígitos menos significativos y su valor va desde 0


Sábado_b 0x7FFC90
a 99.

Sabado_m 0x7FFC92 Dígitos desde 100 a 9999

Sabado_a 0x7FFC94 Dígitos desde 10000 a 2559999

Fecha de almacenamiento de producción del día


Sábado_g 0x7FFC96
sábado

Sábado_c 0x7FFC98 Número de paradas del día sábado

Tabla 4.7. Localidades de memoria de producción diaria

4.3.3. LECTURA DEL RELOJ CALENDARIO

El integrado ds1307 es un reloj calendario BCD de baja potencia con 56 bytes de


memoria no volátil SRAM. Las direcciones y datos son transferidos vía
comunicación serial bidireccional en un bus de dos cables. El reloj calendario
posee información de segundos, minutos, horas, día, fecha, mes y año. Cada fín
de mes la fecha es actualizada automáticamente incluyendo los meses de 31
días. El ds1307 tiene la opción de trabajar 24 horas o 12 horas con formato AM y
PM.

El reloj calendario ds1307 tiene la distribución de pines mostrada en la Figura 4.9.

Figura 4.9. Distribución de pines del ds1307


95

La nomenclatura de los terminales del integrado ds1307 se muestra en la Tabla


4.8.

Terminal Descripción
VCC Terminal de la fuete de alimentación
Vcc = 5Vdc
X1, X2 Cristal de 32.768 KHz
VBAT Batería de +3 V
GND Tierra
SDA Terminal de datos
Es un terminal bi-direccional a colector abierto, y
necesita resistencia de pull up
SCL Terminal de reloj
Es usado para sincronizar los datos en la comunicación
serial
SQW/OUT Salida de onda cuadrada
Es una salida que genera un tren de pulsos a la
frecuencia seleccionada.

Tabla 4.8. Tabla de nomenclatura del reloj calendario ds1307

El ds1307 trabaja como esclavo en el bus de comunicación serial. El acceso al


reloj calendario es obtenido por una señal de inicio seguida por el registro de
dirección, entonces se tiene acceso a los datos hasta que la secuencia de parada
sea ejecutada.

Cuando el voltaje de alimentación es menor a 1.25xVbat el dispositivo termina la


comunicación y resetea el contador de direcciones del integrado, en este tiempo
no se reconoce las señales de entrada para evitar errores.

En la Figura 4.10 se muestra el diagrama de los principales elementos del reloj


calendario en tiempo real.
96

Figura 4.10. Diagrama de bloque del reloj calendario ds1307

4.3.3.1. RTC y Mapa de memoria RAM

El mapa de memoria del reloj calendario se muestra en la Figura 4.11. Los


registros del reloj calendario utilizan las direcciones 00h hasta 07h. Los registros
de la memoria RAM están localizados desde la dirección 08h hasta la 3Fh.

00H
SEGUNDOS
MINUTOS

HORAS

DIA

FECHA

MES

AÑO
CONTROL
07H
08H

RAM
56x8

3FH

Figura 4.11. Mapa de memoria del ds1307


97

La información del reloj calendario se obtiene leyendo los registros de los bytes
apropiado ilustrados en la Figura 4.12. La hora y fecha es inicializada escribiendo
en los bytes apropiados, estos son contenidos en formato BCD (Binary-Code
Decimal). El bit 7 del registro 0 es el bit (CH), cuando es cero el oscilador es
habilitado, por el contrario cuando es uno el oscilador es deshabilitado.

El ds1307 puede funcionar en modo de 12 o 24 horas, este modo es seleccionado


con el bit 6 del registro de horas, es decir el bit 12/24. Cuando este bit es uno
funciona en modo de 12 horas y el bit 5 indica si es AM o PM. Si el bit 12/24 es
cero funciona en modo de 24 horas.

BIT7 BIT0

00H CH 10 SEGUNDOS SEGUNDOS 00-59

X 10 MINUTOS MINUTOS 00-59

10 HR 01-12
12
X 10 HR HORAS 00-23
24 A/P

X X X X X DAY 0-7
01-28/29
X X 10 FECHA FECHA 01-30
01-31

X X 10 MES MES 01-12

10 AÑO AÑO 00-99

07H X OUT X SQWE X X RS1 RS0

Figura 4.12. Estructura de los bytes del reloj calendario

El registro de control del reloj calendario ds1307 es utilizado para la configuración


del pin de salida. La señal cuadrada de salida es habilitada por el bit SQWE. Si el
bit SQWE es cero la salida es la misma que la del bit OUT del registro de control,
mostrado en la Figura 4.13.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


OUT X X SQWE X X RS1 RS0

Figura 4.13. Byte de control del integrado ds1307


98

Cuando SQWE está en nivel alto el pin de salida genera una señal cuadrada cuya
frecuencia depende del valor de los bits RS0 y RS1. La Tabla 4.9 muestra las
frecuencias que pueden ser seleccionadas con los bits RS0 y RS1.

RS1 RS0 Frecuencia de la


salida SQW
0 0 1 Hz
0 1 4 KHz
1 0 8 KHz
1 1 32 KHz

Tabla 4.9. Frecuencia de salida

4.3.3.2. Bus de datos de comunicación serial

El interfaz de comunicación utilizado para la lectura y escritura del reloj calendario


es el protocolo de comunicación I2C, cuya conexión entre dispositivos se muestra
en la Figura 4.14.

VCC

RP RP

SDA
BUS DE
SCL DATOS I2C

dsPIC DS1307
30F4011 Reloj
calendario

Figura 4.14. Bus de datos para comunicación I2C

Donde

𝑅𝑃 = 10𝐾Ω

Este valor de resistencia es recomendado por el fabricante del circuito integrado


ds1307.
99

4.3.3.3. Escritura de datos en el reloj calendario

El reloj calendario siempre está en modo esclavo del protocolo I2C, cuya dirección
se muestra en la trama de la Figura 4.15. Los siete primeros bits trasmitidos son
la dirección del dispositivo esclavo, en este caso el reloj calendario. El octavo bit
determina si el maestro desea leer o escribir datos en el RTC. Si el bit es cero el
maestro va a escribir datos en el RTC, en cambio sí, el bit es uno el maestro leerá
los registros del reloj calendario.

En el caso de escritura el segundo byte es la dirección del registro que el maestro


desea escribir. Los bytes que siguen en la trama son los valores que van a ser
escritos en el RTC. Cuando se termina de enviar los datos el maestro se genera
una señal de parada que finaliza la comunicación.
R/W

Dirección del esclavo Dirección del registro [n] Dato [n] Dato [n+1] Dato [n+2]

S 1101000 0 A XXXXXXXX A XXXXXXXX A XXXXXXXX A XXXXXXXX A P

Datos transmitidos
S = Señal de inicio
A = Acknowledge
P = Señal de parada
A = Sin Acknowledge

Figura 4.15. Trama de datos de escritura al RTC

4.3.3.4. Lectura de Datos en el Reloj Calendario

La trama de lectura es similar a la de escritura, de igual forma los primeros siete


bits son la dirección pero en este caso el octavo bit es 1, es decir, el comando de
lectura. Los siguientes bits son transmitidos desde el RTC hacia el
microcontrolador. La dirección del registro del primer byte leído es al que se
apuntó; por última vez en la trama de escritura. En la Figura 4.16 se observa la
trama de lectura del reloj calendario.
100

R/W
Dato [n] Dato [n+1] Dato [n+2] Dato [n+x]
Dirección del esclavo

S 1101000 1 A XXXXXXXX A XXXXXXXX A XXXXXXXX A XXXXXXXX A P

Datos transmitidos
S = Señal de inicio
A = Acknowledge
P = Señal de parada
A = Sin Acknowledge
Figura 4.16. Trama de datos de lectura del RTC

4.3.3.5. Circuito Implementado

El circuito electrónico del reloj calendario DS1307 se muestra en la Figura 4.17.


Los dos cables de comunicación serial tienen una resistencia de pull up cada una
de 10 Kohm recomendadas por el fabricante. La batería conectada al terminal 3
del reloj calendario sirve para evitar que este se detenga cuando la máquina se
apague.
VCC
VCC 8
VCC
1
X1
10K 10K 330OHM DS1307
32.768KHz
5 2
dsPIC RF2 SDA X2
30F4011 RF3 6 SCL
3
7 OUT BAT
RD0 GND +
Bateria de
4 3V

Figura 4.17. Circuito de conexión del reloj calendario

El tercer cable es la salida de frecuencia del reloj calendario, la cual debe


configurarse para generar pulsos de 1Hz. Esta señal es utilizada para la
actualización de la hora y fecha en el panel visualizador. Para generar una
frecuencia de 1Hz el byte de control debe configurarse como se muestra en la
Figura 4.18.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


0 0 0 1 0 0 0 0

Figura 4.18. Byte de control para frecuencia de 1Hz


101

4.3.4. VISUALIZACION DE PANTALLA PRINCIPAL

El monitoreo de la empacadora se realiza utilizando un LCD gráfico detallado a


continuación.

4.3.4.1. LCD Gráfico 240x128 con Controlador T6963c

Es un LCD gráfico monocromático de 240x128 pixeles de resolución, y es


manejado por el controlador T6963C de marca TOSHIBA. El LCD es utilizado
para la presentación de la animación en tiempo real, de la máquina empacadora y
además presenta los valores de producción.

Este LCD es una matriz de 240x128 pixeles monocromáticos montados sobre una
luz proveniente de un led que ayuda a la lectura del los gráficos mostrados en el
mismo.

El display gráfico tiene 22 puntos de conexión, de los cuales 8 son el bus de datos
y 4 el bus de control. Para esta aplicación se utilizan únicamente los terminales
del bus de datos y control mencionados anteriormente; los demás quedaran sin
conexión. La mayor parte de los terminales utilizados son conectados
directamente al dsPIC para su control. La estructura interna del LCD gráfico se la
observan en la Figura 4.19.

Figura 4.19. Estructura interna del LCD gráfico con controlador T6963C
102

Los terminales del LCD gráfico son conectados al dsPIC como se muestra en la
Tabla 4.10.

GLCD Descripción dsPIC30F4011


WR Control de escritura RF5
RD Control de lectura RF1
CE Terminal de habilitación RF6
C/D Control de texto o gráfico RF0
RST Reiniciar el controlador RF4
DB0-DB7 Bus de datos RB0 – RB7
V0 Control de contraste. Potenciómetro

Tabla 4.10. Terminales del LCD gráfico y dsPIC

El control de contraste se realiza con un voltaje variable de entrada de 0 a 10V,


este voltaje es variado con la ayuda de un potenciómetro conectado a VDD en un
extremo y a tierra en el otro, como se muestra en el diagrama de conexión de la
Figura 4.20. El LCD gráfico posee además de un 1backlight o luz de fondo
proveniente de un led cuyos terminales son LEDK Y LEDA.
VOUT

GND
GND

GND
RST
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0

WR

Vcc
CD

RD
CE

V0
WR
RD
CD
CE
RST

Vcc
DB3
DB7
DB6
DB5
DB4

DB2

DB0
DB1

Figura 4.20. Diagrama de conexión del LCD gráfico


1
Backlight. Ver glosario de términos
103

4.3.5. PANTALLA PRINCIPAL DEL PANEL DE VISUALIZACIÓN

La pantalla principal se divide en los sectores mostrados en la Figura 4.21 y son:

 Estado de la máquina
 Simulación de la empacadora
 Tiempos del proceso
 Producción
 Horas de trabajo
 Fecha y hora
ESTADO DE LA EMPACADORA FUNDAS POR MINUTO
PRODUCIDAS
FECHA

RELOJ
HODOMETRO

PRODUCCIÓN DE
FUNDAS LLENAS

PRODUCCIÓN
TOTAL

SIMULACIONDE LA
EMPACADORA TIEMPOS DEL PROCESO

Figura 4.21. Pantalla principal del panel de visualización

4.4. BARRIDO DE TECLADO

El panel visualizador posee un teclado que le sirve de interfaz de ingreso de datos


por parte del usuario, este teclado se lo puede observar en la Figura 4.22.

Figura 4.22. Teclado del panel de visualizador


104

El barrido de teclado se realiza siguiendo el diagrama mostrado en la Figura 4.23.

BARRIDO DE TECLADO

BARRIDO DE
TECLADO

SI Visualizar pantalla
P1=1
principal

NO

SI Visualización
P2=1 pantalla de
tiempos

NO

SI Visualizar pantalla
P1 = 1
de historiales

NO

Pantalla SI SI Mover el cursor a


RIGHT = 1
principal la derecha

NO
NO

SI
Mover el cursor a
LEFT = 1
la izquierda

NO

SI Incremento valor
UP = 1 seleccionado por
el cursor

NO

SI Decrementa el
DOWN = 1 valor apuntado por
el cursor
NO

SI Guardar y enviar
Save/send=1 valor seleccionado
por el cursor
NO

PROGRAMA

Figura 4.23. Diagrama de barrido de teclado


105

Las tres teclas superiores sirven para el cambio entre pantallas.

La tecla muestra la pantalla principal del módulo visualizador, mostrada en


la Figura 4.21.

La tecla muestra la pantalla con el esquema de tiempos de la Figura 4.24.

Figura 4.24. Pantalla de diagramas de tiempos

La tecla muestra la pantalla de historial semanal de la Figura 4.25.

FUNDAS LLENAS
DIAS DE LA SEMANA PRODUCIDAS CADA NÚMERO DE VECES
DÍA QUE LA MÁQUINA SE
DETUVO CADA DÍA

Figura 4.25. Pantalla de historiales


106

Las teclas restantes solo funcionan si la máquina está detenida y si en el display


se muestra la pantalla principal.

La tecla mueve el cursor a la derecha

La tecla mueve el cursor a la izquierda

La tecla solo funciona cuando el cursor apunta los valores de tiempos de


la pantalla. En ese caso incrementa el valor apuntado.

La tecla solo funciona cuando el cursor apunta los valores de tiempos de


la pantalla. En ese caso decrementa el valor apuntado.

La tecla posee dos funciones, dependiendo de donde se encuentre el


cursor. Si el cursor apunta hacia algún valor de tiempo, este valor es enviado al
Módulo de Control Principal y guardado en la memoria EEPROM del dsPIC. En el
caso que el cursor apunte hacia algún elemento de la máquina, la acción a
realizar es enviar un comando al Módulo de Control Principal para que el
elemento apuntado sea activado o desactivado. El manual de usuario completo se
puede ver en el Anexo E.

4.4.1. POTENCIÓMETROS DEL PANEL DE CONTROL

En el panel de control existen dos potenciómetros lineales, los mismos que son
utilizados para la variación de la velocidad del los motores de dosificación y
arrastre. Las conexiones de estos potenciómetros se detallan en la sección 3.7.4
del capítulo 3.

Figura 4.26. Potenciómetros de los variadores de velocidad


107

4.5. LECTURA DEL PUERTO DE COMUNICACIÓN

El panel visualizador está comunicado con el Módulo de Control Principal a través


de comunicación RS232 y una línea de sincronización como se observa en la
Figura 4.27.

Figura 4.27. Interfaz de comunicación

El panel visualizador es alimentado desde el Módulo de Control Principal, es


decir, que ambos módulos trabajan con una sola fuente.

4.5.1. PROTOCOLO DE COMUNICACIÓN

La comunicación entre los módulos se realiza vía serial RS232 full dúple. Para
esta aplicación el protocolo es muy simple y solo necesita un byte para enviar la
información necesaria por cada instrucción. Existe un protocolo de recepción y
otro para la transmisión, por el tipo de información que requiere cada módulo.

4.5.1.1. Protocolo de Recepción

El protocolo de recepción son los datos que recibe el panel visualizador desde el
Módulo de Control Principal. Los únicos datos que requiere el panel visualizador
son los que indiquen el estado de la empacadora. Para lo cual es necesario un
número diferente para cada acción como se muestra en la Tabla 4.11.

El diagrama de la Figura 4.28 esquematiza el protocolo de comunicación utilizado


en la recepción de valores a través del puerto.
108

LECTURA DEL
PUERTO DE
COMUNCACION

SI SI Se visualiza el
Valor en el puerto
VALOR = 1 cilindro horizontal
de comunicación
accionado

NO NO

SI SI Se visualiza el
VALOR = 2 cilindro vertical
accionado
NO

SI Se visualiza el Incrementa la
VALOR = 3 dosificador producción de
accionado producto lleno

NO

SI Se visualiza al cilindro
VALOR = 4 horizontal, vertical y el
dosificador desactivados
NO

SI Se visualiza el
VALOR = 5 motor de arrastre
encencdido
NO

SI Se visualiza al
VALOR = 6 sensor óptico
accionado
NO

SI Se visualiza al
VALOR = 7 sensor óptico
apagado
NO

SI Se visualiza motor
Incrementa
VALOR = 8 de arrastre
producción total
apagado
NO

SI
Se inicia la Bloqueo del
VALOR = 9
producción teclado

NO

SI
Fin de la Desbloqueo del
VALOR = 10
producción teclado

NO

SI
VALOR = 11, Detiene la
Mensaje de error
12 o 13 simulación

NO

PROGRAMA

Figura 4.28. Protocolo de comunicación


109

Byte recibido Descripción Acción


0x01 Indica la activación del cilindro Grafica al cilindro horizontal activado
horizontal
0x02 Indica la activación del cilindro vertical Grafica al cilindro vertical activado
0x03 Indica el inicio de la dosificación Grafica al motor dosificador activado
e incrementa la cuenta de fundas
llenas.
0x04 Indica la desactivación de los cilindros y Grafica a los cilindros y dosificador
el dosificado desactivados
0x05 Indica el inicio del arrastre Grafica el motor de arrastre activado
0x06 Indica la activación del sensor óptico Grafica al sensor óptico activado
0x07 Indica la desactivación del sensor óptico Grafica al sensor óptico desactivado
0x08 Indica el fin del ciclo Grafica la máquina en su estado
inicial e incrementa la cuenta de
producción total.
0x09 Indica el inicio de la producción Escribe la palabra “PRODUCIENDO”
y deshabilita el teclado.
0x10 Indica el fin de la producción Escribe la palabra “DETENIDO” y
habilita el teclado.
0x11 Señal de error 1 Escribe la falla y detienen la
animación
0x12 Señal de error 2 Escribe la falla y detienen la
animación
0x13 Señal de error 3 Escribe la falla y detienen la
animación
0x14 Señal de error 4 Escribe la falla y detienen la
animación

Tabla 4.11. Protocolo de recepción

4.5.1.2. Protocolo de Transmisión

El protocolo de transmisión es más complejo que el anterior debido a que no solo


se envían instrucciones sino también datos. Para la codificación de los datos se
utiliza el protocolo de comunicación mostrado en la Figura 4.29.

BYTE BIT7 BIT0


RECIBIDO

COMANDO DATOS

Figura 4.29. Byte de transmisión


110

Los cuatro bits más significativos representan al comando que se debe ejecutar y
los cuatro bits menos significativos son los datos necesarios para cumplir con este
comando. Existen doce comandos los cuales se pueden observar en la Tabla
4.12.

Byte enviado Comando Datos

0x1x Indica el cambio en el valor del tiempo T1 X es el valor del tiempo T1

0x2x Indica el cambio en el valor del tiempo T2 X es el valor del tiempo T2

0x3x Indica el cambio en el valor del tiempo T3 X es el valor del tiempo T3

0x4x Indica el cambio en el valor del tiempo T4 X es el valor del tiempo T4

0x5x Indica el cambio en el valor del tiempo T5 X es el valor del tiempo T5

0x6x Indica el cambio en el valor del tiempo T6 X es el valor del tiempo T6

0x7x Indica el cambio en el valor del tiempo T7 X es el valor del tiempo T7

0x8x Orden de activación o desactivación del X = 1 activación


cilindro horizontal
X = 0 desactivación

0x9x Orden de activación o desactivación del X = 1 activación


cilindro vertical
X = 0 desactivación

0xAx Orden de activación o desactivación del X = 1 activación


motor dosificador
X = 0 desactivación

0xBx Orden de activación o desactivación del moto X = 1 activación


reductor mezclador
X = 0 desactivación

0xCx Orden de activación o desactivación del X = 1 activación


arrastre
X = 0 desactivación

Tabla 4.12. Protocolo de transmisión

4.6. LECTURA DEL PIN DE SINCRONIZACIÓN

El terminal SINC es un tren de pulsos generada por el Módulo de Control Principal


y enviado al panel visualizador, para que este último realice el cálculo de la
producción midiendo el tiempo entre cada pulso, como se observa en la Figura
4.30.
111

Tiempo P

Inicio de Fin de ciclo 1 e


ciclo 1 inicio del ciclo 2

Figura 4.30. Señal de sincronización

El tiempo P es medido por un temporizador interno del dsPIC30F4011, el cual


realiza la siguiente operación para encontrar el número de fundas producidas por
minuto.
1 60000[𝑚𝑠]
𝑃𝑟𝑜𝑑𝑢𝑐𝑐𝑖ó𝑛 = ∗
𝑇𝑖𝑒𝑚𝑝𝑜 𝑝[𝑚𝑠] 1𝑚𝑖𝑛
60000
𝑃𝑟𝑜𝑑𝑢𝑐𝑐𝑖ó𝑛 = [𝑓𝑢𝑛𝑑𝑎𝑠 /𝑚𝑖𝑛𝑢𝑡𝑜]
𝑡𝑖𝑒𝑚𝑝𝑜 𝑝

El procedimiento utilizado para el cálculo de la cantidad de fundas por minuto


producidas esta detallado en el diagrama de la Figura 4.31.
LECTURA DEL PIN
DE
SINCRONIZACIÓN

SI
SINC=1

NO

Lectura del timer1

Reinicio del timer1

Calculo de valor
de fundas por
minuto

Visualización del
valor de
producción

PROGRAMA

Figura 4.31. Lectura del pin de sincronización


112

4.7. LECTURA DEL RELOJ CALENDARIO

El integrado ds1307 está configurado para generar una señal cuadrada de 1Hz de
frecuencia, esta señal sirve al controlador para actualizar el valor de la hora cada
segundo. Para realizar la actualización de tiempo se sigue el diagrama de la
Figura 4.32. Cuando se detecta la transición de estado bajo a alto se lee el
integrado ds307 mediante el protocolo de comunicación descrito en la sección
4.3.3.3 del presente capítulo. Posteriormente se decodifican los valores obtenidos
de BCD a binario y finalmente se procede a mostrarlos en el display.

LECTURA DEL PIN


RELOJ
CALENDARIO

SI
Out(ds1307)=1

NO
Lectura del
integrado reloj
calendario

Actualización de
registros que
almacenan la hora

Visualizar la hora
y fecha

Incrementa el
contador de horas

PROGRAMA

Figura 4.32. Lectura del reloj calendario


113

4.8. DISEÑO DEL PANEL VISUALIZADOR

El panel visualizador está diseñado como se muestra en la Figura 4.33 y está


basado en el microcontrolador dsPIC30F4011. Sus periféricos se conectan
mediante un bus de datos a excepción del reloj calendario ubicado en la misma
placa de control.

El microcontrolador funciona con un cristal de 20 MHz y tiene una resistencia de 1


Kohm a Vcc en el master clear.

VCC
BUS DE DATOS DEL LCD GRAFICO

J4 R8 BORNERA DEL TECLADO


1k5
10
9 J33
VOUT
8 1 40
7 2 39 J5
DB7 DB0
6 3 38 1
DB6 DB1
5 4 37 2
DB5 DB2
4 5 36 3
DB4 DB3
3 6 35 4
DB3 DB4
2 7 34 5
DB2 DB5
1 8 33 6
J3 DB1 DB6
9 32 7
DB7 VCC
10 10 31 8
DB0
9 11 30 9
RST VCC CD RD1
8
CD
12 29
RD RD2
10 R4 R1 R2
7 13 28 330R 1k 1k
CE C1 RST
6 14 27 CONN-H10
RD WR
5 15 26
WR TX SDA U1
4
VO X1 RX
16 25
SCL
3 22p CRYSTAL 17 24 6 1
SINC CE SCL SCL X1
2 18 23 5
C2 RD1 SOUT SDA SDA
1 19 22
RD2
20 21
VCC X2
7 CRYSTAL
SOUT SOUT
22p CONN-DIL40
3 2
VBAT X2
DS1307

dsPIC30F4011
BORNERA PARA EL BACKLIGHT

BAT1
1.5V

R5
330R RELOJ CALENDARIO DS1307
RV1

J9
VO
BORNERAQ DE COMUNICACION SERIAL
2
1

CONN-H2 POT VCC GND1 RX TX SINC


PIN PIN PIN PIN PIN

D1 R3
330R

POTENCIOMETRO DE CONTRASTE LED


RX

SINC
TX

VCC

Figura 4.33. Circuito del panel visualizador

4.9. PROGRAMACIÓN DEL MICROCONTROLADOR

El compilador utilizado para desarrollar el programa de control es el


MikroC_dsPIC, el cual utiliza el lenguaje C, facilitando la programación de los
controladores por ser un lenguaje de nivel medio. Este compilador pertenece a la
compañía mikroElectrónica.

Este software posee varias características que lo hacen muy amigable y que
facilitan la programación de sistemas embebidos basados en los
microcontroladores dsPIC30/33 y PIC24. Además tiene un eficiente algoritmo de
compilación que lo hace más rápido. Utiliza muchas librerías que facilitan el uso
114

de periféricos sin que incremente la cantidad de código, como ocurre en el


lenguaje assembler.

El compilador posee las siguientes características:

 Utiliza el lenguaje de programación C


 Permite el uso de librerías incluidas en el compilador
 Posee un explorador de código

La pantalla principal del programa mikroC se muestra en la Figura 4.34, y se


pueden distinguir las siguientes aéreas:

 Explorador de funciones: En esta área se visualizan las variables y


funciones utilizadas en el programa.
 Selección de microcontrolador: Es el área en la que se elige la numeración
del micro y el cristal utilizados.
 Editor de programa: Es el área donde se escribe el código del programa.

Funciones y
variables
utilizadas

Seleccion del
dsPIC y cristal

Programa del
dsPIC

Figura 4.34. Programa MikroC


El mikroC organiza las aplicaciones en proyectos cuyos archivos tienen extensión
.dpc, el mismo que puede tener varios archivos fuentes con extención .c. Los
archivos de proyecto contienen información del nombre del proyecto, tipo y
modelo de micro utilizado; además de la frecuencia del cristal y lista de archivos
fuente.
115

El mikroC optimiza el uso del motor DSP del microcontrolador a través de los
distintos tipos de variables matemáticas definidas en el programa, las mismas que
están enumeradas en la Tabla 4.13.

Tipo Tamaño en bytes Rango


(unsigned) char 1 0…255
signed char 1 -128…128
(signed) short (int) 1 -128…128
unsigned short(int) 1 0…255
(signed) int 2 -32768…32767
unsigned (int) 2 0…65535
(signed) ling (int) 4 -2147483648…2147483647
unsigned ling (int) 4 0…4294967295
float 4 -1.5*10e45…+3.4*10e38
double 4 -1.5*10e45…+3.4*10e38
Long double 4 -1.5*10e45…+3.4*10e38

Tabla 4.13. Variables matemáticas utilizadas por el compilador mikroC

Cada programa debe tener solo una función “main”, la cual se ejecuta primero y
es quien llama al resto de funciones. El resto de funciones tienen vínculos
externos con la función main y pueden ser llamadas en cualquier momento.

La sintaxis usada para la declarar funciones es la siguiente.

Tipo nombre_funcion(parámetros-declarador-lista);

Tipo.- se define de acuerdo a la salida que se generará al llamar a la función, es


decir si es entero o flotante. Cuando no se requiere respuesta se utiliza la función
tipo “void”.

Nombre_función.- es un nombre asignado por el programador para la función


creada.

Parámetros-declarador-lista.- son los argumentos que necesita la función para


poder ejecutar su programa interno. De igual forma, si no existen parámetros de
entrada se utiliza la palabra “void”.
116

4.9.1. ARQUITECTURA DEL PROGRAMA DEL dsPIC30F4011

El programa desarrollado se encarga de la visualización y monitoreo del


funcionamiento de la máquina empacadora a través de su puerto de
comunicación serial. Se encarga además de realizar el barrido del teclado y la
lectura del reloj calendario; este último se realiza utilizando el protocolo de
comunicación I2C.

La visualización de todos los datos supervisados es mostrada a través de un LCD


gráfico de 240x128 pixeles de resolución.

El programa implementado consta de una función principal (main) y varias


funciones adicionales utilizadas para realizar la animación de la máquina
empacadora, las mismas que se muestran en la Tabla 4.14.

Función Descripción
main Programa principal
tiempos Mapa de bits del diagrama de tiempos
Empacadora Mapa de bits del diagrama de la empacadora
Arrastre_off Mapa de bits del motor de arrastre en posición de apagado
Arrastre_on Mapa de bits del motor de arrastre en posición de encendido
Cilabierto1 Mapa de bits del cilindro horizontal abierto
Cilabierto2 Mapa de bits del cilindro vertical abierto
Cilindro1 Mapa de bits del cilindro horizontal accionado
Cilindro2 Mapa de bits del cilindro vertical accionado
Dosif_on Mapa de bits del motor dosificador accionado
Dosif_off Mapa de bits del motor dosificador apagado
Sensor_on Mapa de bits del sensor óptico accionado
Sensor_off Mapa de bits del sensor óptico apagado

Tabla 4.14. Funciones utilizadas en el programa de visualización

4.9.2. FUNCIÓN MAIN

Es la rutina de arranque del programa de visualización, en donde se deben incluir


las configuraciones de todos los dispositivos utilizados:
117

 Puerto de comunicación serial


 LCD gráfico T6963C
 Reloj calendario ds1307

4.9.2.1. Puerto de Comunicación Serial

El puerto de comunicación utilizado es el UART1 alterno, debido a que los pines


principales de esta función fueron utilizados para la comunicación con el reloj
calendario. Los terminales utilizados son RC13 y RC14 para las líneas de
comunicación TX y RX respectivamente. La velocidad de transmisión es de
19200baud y las rutinas utilizadas para la inicialización y operación del puerto de
comunicación serial se detallan en la Tabla 4.15.

TIPO COMANDO DESCRIPCIÓN

Inicializa el puerto de comunicación serial 1 (UART1).


UART1_INIT(*Valor) Donde
Valor= Velocidad de transmisión = 19200
COMUNICACION
Uart_Write_char(*valor) Envía *valor por el puerto de comunicación UART1

Lee el valor recibido por el puerto de comunicación y lo


*Valor = Uart_Read_Char()
almacena en el registro llamado Valor

Tabla 4.15. Rutinas de operación del puerto UART1

4.9.2.2. LCD Gráfico T6963C

El controlador T6963C del display gráfico se maneja desde el microcontrolador


utilizando las funciones detalladas en la Tabla 4.16. Este controlador es capaz de
desplegar gráficos y texto en cualquier parte del display.

TIPO COMANDO DESCRIPCIÓN

Inicializa el display gráfico, de 240 x 128


Caracteres, de 8 bits de ancho
Bus de datos es el PORTICO B y el
T6963C_init(240, 128, 8,
LCD GRAFICO Bus de control es el PORTICO F
&PORTB, &PORTF, 5, 1, 0, 4) ;
 Bit 5 = !WR
 Bit 1 = !RD
 Bit 0 = C!D
 Bit 4 = RST
118

T6963C_write_text("texto", 0, 0,
T6963C_ROM_MODE_XOR); Escribe “texto” en la posición 0,0.

Grafica la imagen del mapa de bits de la función


T6963C_image(empacadora) ;
empacadora

T6963C_sprite(0, 68, cilindro, Grafica la imagen cilindro en la posición 0, 68 y su


21, 20) ; tamaño es de 21x20

T6963C_panelFill(0); Limpia el display

T6963C_cursor(0) ; Oculta el cursor

T6963C_line(29, 27, 39, 27, Dibuja en la línea que inicia en el punto 27,27 y
T6963C_BLACK); finaliza en el punto 39, 27 de color negro

Tabla 4.16. Rutinas del LCD gráfico T6963C

Las rutinas de image y sprite requieren de funciones con mapas de bits


correspondientes a los gráficos que se desean desplegar. Para la creación de los
mapas de bits se utiliza el programa “Graphic LCD Bitmap Generator”, el mismo
que es una aplicación del programa MikroC.

En la figura 4.35 se muestra la pantalla principal del generador de mapa de bits.

Imagen con resolución


de 240 x 128

Selección del
display grafico

Mapa de bits de
la imagen

Figura 4.35. Generador de mapa de bits


119

Las imágenes cargadas en el generador deben tener una resolución de 240x128


pixeles y deben ser guardas en archivos .bmp. Todos los mapas de bytes deben
ser copiados en las funciones detalladas en la Tabla 4.14.

4.9.2.3. Reloj Calendario ds1307

Las funciones utilizadas para el manejo del reloj calendario se detallan en la Tabla
4.17.

TIPO COMANDO DESCRIPCIÓN

Inicializar el puerto ce comunicación I2C con una frecuencia


I2C_Init(10000);
de reloj de 10000Hz

I2C_Start(); Envía una señal de inicio por el puerto I2C

Comunicación I2C I2C_write(*valor); Envía el registro *valor por el puerto de comunicación

Lee el valor recibido por el puerto I2C y lo almacena en el


*Valor =I2c_Read(0);
registro *valor

I2C_Stop(); Envía una señal de fin de transmisión por el puerto I2C

Tabla 4.17. Rutinas de comunicación I2C

Las demás funciones utilizadas son para el manejo de la memoria EEPROM del
microcontrolador, el manejo de retardos y la conversión de byte a string. Todas
estas las funciones se detallan en la Tabla 4.18.

TIPO COMANDO DESCRIPCIÓN

Guarda el registro valor en la dirección de memoria


Eeprom_Write(*DIR, *valor)
almacenado en el registro DIR
MEMORIA
EEPROM
Lee el número almacenado en la dirección DIR y lo
Valor= Eeprom_Read(*DIR)
transfiere al registro llamado Valor

RETARDOS Delay_ms(*Valor) Genera un retardo de tiempo en milisegundos igual Valor

Convierte el byte almacenado en valor y lo convierte en un


CONVERSIÓN ByteToStr(valor, string);
string.

Tabla 4.18. Funciones utilizadas en el programa

El programa completo se encuentra en el CD anexo.


120

4.10. WINPIC 800

Cuando el programa está terminado es compilado y se genera el archivo .hex, el


cual es descargado al microcontrolador con la ayuda del programa WinPic800. El
mismo que debe configurarse como se muestra en la Figura 4.36 antes de iniciar
la descarga.

Figura 4.36. Configuración del WinPic 800

You might also like