Professional Documents
Culture Documents
CAPÍTULO 4
IMPLEMENTACIÓN DEL SISTEMA DE SUPERVISIÓN Y
MONITOREO DE LA MÁQUINA
Display grafico
240x128
Teclado Potenciómetros
Inicialización
Programa principal
INICIO
Configuración de
puertos
Lectura de
memoria
EEPROM
INICIALIZACION
Visualización de la
pantalla inicial
Visualización de
Pantalla principal
1
85
PROGRAMA
Barrido de teclado
PROGRAMA PRINCIPAL
4.3. INICIALIZACIÓN
Configuración de puertos
LCD GRAFICO
240x128
Teclado
dsPIC30F3011 24K/8K
dsPIC30F4011 48K/16K
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
Producción total
4.3.2.4. Horómetro
Horometro
Historial diario
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.
00H
SEGUNDOS
MINUTOS
HORAS
DIA
FECHA
MES
AÑO
CONTROL
07H
08H
RAM
56x8
3FH
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.
BIT7 BIT0
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
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.
VCC
RP RP
SDA
BUS DE
SCL DATOS I2C
dsPIC DS1307
30F4011 Reloj
calendario
Donde
𝑅𝑃 = 10𝐾Ω
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.
Dirección del esclavo Dirección del registro [n] Dato [n] Dato [n+1] Dato [n+2]
Datos transmitidos
S = Señal de inicio
A = Acknowledge
P = Señal de parada
A = Sin Acknowledge
R/W
Dato [n] Dato [n+1] Dato [n+2] Dato [n+x]
Dirección del esclavo
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
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.
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
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
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
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
FUNDAS LLENAS
DIAS DE LA SEMANA PRODUCIDAS CADA NÚMERO DE VECES
DÍA QUE LA MÁQUINA SE
DETUVO CADA DÍA
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.
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.
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.
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
COMANDO DATOS
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.
Tiempo P
SI
SINC=1
NO
Calculo de valor
de fundas por
minuto
Visualización del
valor de
producción
PROGRAMA
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.
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
VCC
BUS DE DATOS DEL LCD GRAFICO
dsPIC30F4011
BORNERA PARA EL BACKLIGHT
BAT1
1.5V
R5
330R RELOJ CALENDARIO DS1307
RV1
J9
VO
BORNERAQ DE COMUNICACION SERIAL
2
1
D1 R3
330R
SINC
TX
VCC
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
Funciones y
variables
utilizadas
Seleccion del
dsPIC y cristal
Programa del
dsPIC
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.
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.
Tipo nombre_funcion(parámetros-declarador-lista);
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
T6963C_write_text("texto", 0, 0,
T6963C_ROM_MODE_XOR); Escribe “texto” en la posición 0,0.
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
Selección del
display grafico
Mapa de bits de
la imagen
Las funciones utilizadas para el manejo del reloj calendario se detallan en la Tabla
4.17.
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.