Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ÍNDICE
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
3
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
4
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
5
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
6
CAPÍTULO 1
INTRODUCCIÓN AL MANEJO DE
MikroPLAN
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
7
Sin embargo, para que MikroPLAN pueda grabar algún programa creado por el
usuario, es indispensable que en el microcontrolador de la tarjeta Arduino se
encuentre cargado un firmware o software embebido denominado BIOS (Basic
Input Output System – Sistema Básico de Entrada / Salida). Gracias a este
programa alojado en la memoria FLASH del micro, es que MikroPLAN puede
transferir los códigos generados por su compilador al micro destino. El BIOS se
encarga entonces de recibir estos datos y grabarlos en la memoria no volátil
disponible del micro. El nombre del BIOS para la tarjeta Arduino se denomina
PLCmDuino.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
8
1.2.1 HISTORIAL
26/03/2018
- Se corrigieron omisiones de máscaras en MikroPLAN para la activación de
puertos tanto en la simulación como en la grabación de los programas en modo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
9
evaluación así como para el acceso de los mismos desde FluidSIM para el
BIOS MEGA 2560
- El BIOS para cada una de sus dos versiones se adaptó para su acceso desde
LabVIEW utilizando las bibliotecas PLGDCOM32 y PLGDCOM64 en sus
versiones de 32 bit y 64 bit respectivamente. El acceso desde LabVIEW es más
rápido en comparación con los bloques VISA de la versión anterior por lo cual
los bloques con estos elementos ya no están soportados. En cambio se
agregaron los SubVIs correspondientes para las bibliotecas mencionadas
18/02/2018
- Se incluye la primera versión del BIOS PLCmDuino para Arduino MEGA
- Se eliminaron los registros “S”, por lo que solamente hay cuatro tipos de
registros: “I”, “Q”, “SM” y “M”. Además se incrementó la cantidad de registros
“M” de 32 a 40
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
10
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
11
programaciondearduinoconlenguajedeplc.blogspot.mx
OBSERVACIÓN
El contenido de la carpeta ZIP debe descomprimirse en el directorio raíz de unidad
c: de tal manera que quede como se muestra en la siguiente figura
2. En la carpeta:
c:\ProyexDuino\Proyectos\PLCmDuino\Programación\Ladder
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
12
OBSERVACIÓN
El funcionamiento del programa MikroPLAN se ha probado para las versiones de
Windows™ XP, Vista, 7, 8, 8.1 y 10
1. En la carpeta
c:\ProyexDuino
JOGATECHProyex.exe
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
13
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
14
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
15
Oprime “Sí”. Aparecerá una ventana que te indicará que se está cargando el
BIOS en tu tarjeta
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
16
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
17
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
18
5. Introduce el valor del puerto COM. Si vas a utilizar la tarjeta Arduino UNO,
asegúrate que la casilla “Esperar inicialización del BIOS antes de detectar” esté
desactivada. Para el caso de la tarjeta Arduino MEGA, pudiera ser que
requieras activar la casilla si observas que tu tarjeta tiene el chip de
comunicación CH340G. La apariencia de este tipo de tarjeta se muestra a
continuación
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
19
OBSERVACIÓN
Cada vez que vayas a cargar un programa en PLCmDuino o realizar cualquier otra
acción que involucre acceder al BIOS, MikroPLAN realiza un procedimiento de
detección. Por tanto, es indispensable que te asegures que el software puede
detectar correctamente el BIOS de acuerdo a la configuración que proporciones en
el cuadro de diálogo de arriba
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
20
jogatech@hotmail.com
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
21
para programarlo. Por tanto, la licencia que hayas solicitado te será útil para
programar una sola tarjeta Arduino y únicamente desde el equipo de cómputo que
utilizaste para generar la solicitud la cual tiene dos modalidades:
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
22
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
23
OBSERVACIONES
a. La opción “AlarmDuinoSMS MEGA” es una aplicación embebida que se utiliza
para controlar una alarma vecinal vía SMS. Si este proyecto es de tu interés
consulta el documento “Prueba y Activación de AlarmDuino.PDF” ubicado en la
carpeta “c:\ProyexDuino\Proyectos\AlarmDuino\Documentación”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
24
Puesto que es la primera vez que vas a generar la licencia, oprime “Si”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
25
JOGATECHLicencias.DLL
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
26
1. Una vez que hayas recibido este archivo por parte de un servidor, asegúrate de
que ni “MikroPLAN” ni “JOGATECHProyex” estén corriendo y cópialo a la
carpeta
c:\ProyexDuino\DLL
Ahí ya estará un archivo con el mismo nombre que es el original que está en la
carpeta ZIP y que no tiene licencia alguna, por tanto simplemente deja que
Windows lo reemplace
OBSERVACIONES
a. Puesto que no hay límite en el número de licencias que desees solicitar, se te
sugiere encarecidamente que etiquetes la tarjeta Arduino que aloja al BIOS
preactivado con el código de referencia que aparezca en tu caso en la tercera
columna de la lista del cuadro de diálogo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
27
puedes programar la tarjeta Arduino con él. Sin embargo, no significa que la
clave de referencia que aparece ahí esté efectivamente ligada a la tarjeta
Arduino que estés utilizando. Esto último lo podrás comprobar únicamente al
momento de grabar cualquier programa en ella
ADVERTENCIA
Una vez que recibas el archivo de licencia, no intentes generar una nueva
solicitud con la tarjeta ya activada pues esto destruirá el código de
preactivación en tu tarjeta Arduino y ya no habrá forma de recuperarlo. Por
tanto, si después deseas utilizar PLCmDuino en tu Arduino nuevamente, la
licencia que recibiste ya no será válida y solamente podrás programarlo en
modo evaluación
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
28
OBSERVACIÓN
Si la única licencia que tienes es la de primera vez, ve directamente al paso 7
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
29
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
30
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
31
OBSERVACIÓN
Este cuadro de diálogo es meramente informativo de la licencia en la que se
incluirá el sello digital del equipo por lo que no se te permitirá modificar o
seleccionar alguno de los campos
11. Oprime “Generar”. Aparecerá un cuadro de diálogo similar al del paso 6 del
apartado 1.7.1
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
32
OBSERVACIONES
a. Si intentas generar la licencia portátil desde la misma computadora que
utilizaste para generar la licencia de primera vez, aparecerá el mensaje
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
33
COMENTARIO
Por cada nueva copia del BIOS PLCmDuino que cargues en alguna tarjeta
Arduino, necesitarás realizar el proceso de solicitud de licencia de activación
descrito arriba en cualquiera de sus dos modalidades
OBSERVACIÓN
Para la captura del diagrama o para la simulación de su funcionamiento no se
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
34
requiere realizar una detección de la tarjeta, por lo cual puedes omitir esta acción
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
35
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
36
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
37
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
38
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
39
El carácter ‘i’ se utiliza para designar una entrada y los caracteres ‘q’ u ‘o’ se
utilizan para designar una salida. Si deseas que en la lectura del estado lógico de
un pin se invierta, entonces escribe ‘I’. Si deseas que su estado lógico se invierta
a la salida, escribe ‘Q’. Para los bits y puertos que no se utilizan, puedes escribir ‘x’
o ‘X’
OBSERVACIONES
a. Para PLCmDuino, los registros asociados a los puertos de entrada/salida
digitales disponibles para la tarjeta Arduino son:
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
40
I5/Q5 Registros imagen de 16 bits de los cuales sólo los primeros 8 bits están
asignados a los pines 46 a 53 de la tarjeta Arduino MEGA únicamente
c. A los puertos I0/Q0, I1/Q1, I3/Q3, I4/Q4 e I5/Q5 también se les puede acceder
desde FluidSIM cuando esta aplicación funciona como maestro y PLCmDuino
como esclavo. En este caso, Arduino funciona como tarjeta de adquisición y
señalización digitales y MikroPLAN como interfaz en este enlace de
comunicación
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
41
2. Para terminar con el diagrama en el editor KOP captura los identificadores para
los pines. Haz clic sobre el signo de interrogación y escribe el que corresponda
OBSERVACIÓN
Puedes utilizar etiquetas para designar los bits para los pulsadores. En el editor
KOP oprime el botón “ETIQUETAS”. En la primera columna anota el nombre de la
etiqueta y en la segunda, el bit que desees asignarle
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
42
Una vez hecho esto, ya puedes utilizar esas etiquetas para la designación de los
pines. El diagrama quedaría entonces como:
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
43
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
44
OBSERVACIONES
a. El tipo de tarjeta utilizado en la simulación es independiente del tipo de tarjeta
que MikroPLAN detecta antes de cargar el programa
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
45
b. Para el caso de Arduino MEGA 2560 podrás seleccionar el byte alto del puerto
Q1, así como los puertos I3/Q3 a I5L/Q5L
3. Oprime el icono
5. Oprime “Aceptar”. Aparecerá un tablero que tiene pulsadores para generar las
entradas al autómata e indicadores para mostrar el estado lógico de las salidas
del autómata durante la simulación
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
46
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
47
1. Oprime el icono
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
48
4. Libera el pulsador I0.0. Checa que en color rojo se muestra resaltada la bobina
así como también la trayectoria del diagrama que la está energizando
(enclavamiento)
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
49
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
50
OBSERVACIONES
a. En los pines 2 y 3 se han colocado dos pulsadores que corresponderán a los
contactos I0.0 e I0.1 del diagrama en KOP
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
51
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
52
OBSERVACIÓN
Una vez que el compilador haya generado el código, intentará enviarlo a
PLCmDuino para que se cargue en Arduino utilizando la licencia seleccionada
actual. Sin embargo, si no se tiene una licencia o no es la correcta para la tarjeta
Arduino que tengas conectada en la PC, aparecerá el mensaje
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
53
Aparecerá el mensaje
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
54
Aparecerá el mensaje
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
55
Si estás seguro, haz clic en “Sí”. Después de unos segundos aparecerá otro
mensaje
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
56
OBSERVACIÓN
La operación de borrado del programa no elimina ni modifica el código de
preactivación
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
57
Una situación similar puede ocurrir cuando el código del programa del usuario se
corrompe, por ejemplo, cuando sucede una inestabilidad del voltaje en el riel de
alimentación de la tarjeta. Si bien PLCmDuino tiene un algoritmo interno para
verificar la integridad del código del programa alojado en la memoria de tu tarjeta,
pudiera suceder que aún así no se llegaran a reconocer adecuadamente los
códigos de instrucción, haciendo entonces que la ejecución del programa sea
incorrecta o errática. Si esto llegara a suceder, se deberá realizar un
procedimiento de paro forzado al arranque o en frío del programa defectuoso
como se describe a continuación:
1. Desconecta la tarjeta de cualquier fuente de alimentación y de cualquier
conexión externa
2. Realiza un puente entre el pin 0 de la tarjeta y tierra de tal manera que después
puedas removerlo manualmente de forma rápida y sin dificultad tal como se
muestra en el diagrama de la figura 1.5
Figura 1.5. Conexión del puente para realizar el paro forzado del programa al arranque
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
58
OBSERVACIONES
a. El paro forzado al arranque únicamente detiene la ejecución del programa más
no lo borra. Para borrarlo, tendrás que hacerlo desde el menú principal de
MikroPLAN como se explicó en el apartado 1.8.10
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
59
(a)
(b)
Figura 1.5. Módulo de comunicación Bluetooth HC-06: (a) Anverso y (b) reverso
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
60
OBSERVACIONES
a. Cuando se conecta el módulo Bluetooth, el enlace de comunicación a través del
cable USB ya no es posible, pues el puerto COM asignado a la comunicación
alámbrica interferirá con el puerto COM asignado al módulo HC. Por tanto, el
cable USB solamente te servirá para energizar la tarjeta. Sin embargo, desde
MikroPLAN puedes seguir realizando todas las acciones que tienen que ver con
PLCmDuino como la detección y carga de programas pero ahora lo realizarás
de forma totalmente inalámbrica. De hecho, podrías colocar una fuente de
alimentación exclusiva para tu tarjeta y de esa manera podrías acceder a ella
de forma remota desde tu equipo de cómputo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
61
Debería ser claro que para realizar el enlace Bluetooth con PLCmDuino desde
MikroPLAN, la PC deberá tener integrado un módulo para este tipo de conexión.
Si embargo, si esto no es así, se puede utilizar un radio Bluetooth o “dongle” de
bajo costo que se puede conectar a cualquier PC. Este dispositivo es básicamente
“plug-and-play” por lo cual el proceso de instalación del software para acceder a
este dispositivo desde Windows inicia al momento que tu equipo detecta su
conexión. En la figura 1.7 se muestra una imagen de un radio genérico Bluetooth.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
62
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
63
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
64
6. Haz clic con el botón derecho sobre el dispositivo “linvor”. Aparecerá un menú
emergente. Selecciona la opción “Propiedades”. Aparecerá un cuadro de
diálogo. Selecciona entonces la ficha “Servicios”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
65
7. Deberá aparecer una casilla y la leyenda ‘Puerto serie (SPP) “Dev B”’, junto con
el identificador del puerto serie a través del cual se puede acceder al módulo.
Este valor es el que se deberá de utilizar desde MikroPLAN, LabVIEW o Visual
Basic para acceder de forma inalámbrica a la tarjeta Arduino cargada con
PLCmDuino
OBSERVACIÓN
Si no aparece el puerto, quita el dispositivo de la lista de equipos vinculados y
vuelve a repetir el proceso de instalación para el módulo HC-06. Si el problema
persiste, apaga o reinicia el equipo y repite el proceso
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
66
CAPÍTULO 2
CARACTERÍSTICAS DE
PLCmDuino
Lo que a continuación se describe es válido para las versiones del BIOS tanto
para la tarjeta Arduino UNO R3 como para la MEGA 2560.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
67
función
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
68
2.5 CONTADORES
Tiene 16 contadores de 16 bits cada uno: C0 a C15. Cualquiera de ellos puede ser
programado para conteo hacia arriba, hacia abajo o con ambos modos.
2.6 TEMPORIZADORES
Tiene 16 temporizadores de 16 bits cada uno y separados en dos grupos: 8
temporizadores de 10 ms (T33 a T36 y T97 a T100) y 8 temporizadores de 100 ms
(T56 a T63). Cualquiera de ellos puede ser programado en modo TON, TOFF o
TONR.
2.7 PILA
La pila de PLCmDuino es de 16 bits.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
69
Tabla 2.1. Instrucciones AWL de PLCmDuino compatibles con algunas instrucciones de los PLC
SIMATIC 21X
Grupo Instrucciones AWL Total
Contactos de comparación LDB>=, OB>=, AB>=, LDB=, OB=, AB=, 18
LDB<=, OB<=, AB<=, LDW>=, OW>=,
AW>=, LDW=, OW=, AW=, LDW<=, OW<=,
AW<=
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
70
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
71
CAPÍTULO 3
PLCmDuino Y MobilePorts
c:/ProyexDuino/Proyectos/PLCmDuino/Señalización y adquisición/Android
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
72
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
73
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
74
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
75
OBSERVACIÓN
Si estás utilizando el HC-05, deberás localizarlo con la aplicación “Bluetooth Class
Zero”. Esta aplicación puedes descargarla desde Google Play
4. Haz clic sobre el nombre del dispositivo. Aparecerá una pantalla indicándote
que introduzcas el PIN del dispositivo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
76
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
77
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
78
3. Una vez que hayas introducido la dirección MAC, oprime el botón “PLCMicro”.
MobilePorts se conectará con PLCmDuino, el cual a su vez le enviará el nombre
del BIOS alojado en la tarjeta Arduino y que se mostrará brevemente en la
franja verde
OBSERVACIÓN
El botón “RS232” se utiliza cuando deseas enviar datos por medio de un enlace
Bluetooth a cualquier otro dispositivo que soporte este tipo de comunicación. El
botón “PLCMicro” se utiliza para que MobilePorts se comunique exclusivamente
con el BIOS PLCmDuino alojado en Arduino
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
79
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
80
Por supuesto, puedes utilizar como salida cualquier otro bit distinto a Q0.2
OBSERVACIÓN
Cada uno de los 16 bits del puerto I2 se identifica con un pulsador en MobilePorts
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
81
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
82
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
83
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
84
CAPÍTULO 4
EJEMPLOS DE APLICACIONES
CON LÓGICA PROGRAMABLE
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
85
En la figura 4.3 se muestra el diagrama del circuito que se utiliza para el sistema
de control de nivel de líquido. Observa en esa figura que se ha añadido un LED
para indicar al usuario que la bomba está activa. Los pines 6 y 7 de la tarjeta
Arduino se utilizan para leer el estado de los sensores de nivel de fondo y de tope
respectivamente. El pin 2 se utiliza para activar la bomba.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
86
Figura 4.3. Diagrama electrónico del sistema de control de nivel de agua con Arduino
OBSERVACIONES
a. Si se utiliza una bomba sumergible basada en un motor de CD para probar el
sistema de la figura 4.3, es posible que se necesiten capacitores en paralelo de
100 a 220 nF con los resistores de 100 k para eliminar o disminuir los picos de
voltaje en las entradas a la tarjeta que pudieran originarse por el encendido del
motor de la bomba
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
87
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
88
Figura 4.4. Programa de control de nivel de agua con detección de falla en el sensor de fondo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
89
Figura 4.5. Controlador de nivel de agua con indicador de detección de falla en el sensor de fondo
Para tratar con esta posible condición de falla, se coloca un sensor de paso de
agua el cual consiste de un par de electrodos: uno de ellos conectado al común y
el otro conectado hacia el controlador. Este par se coloca en el extremo del tubo
que abastece al tinaco, de tal manera que el chorro de agua que sale por el mismo
ponga en contacto ambos electrodos, generando de esta forma la señal P_A (paso
de agua) para el controlador. La ausencia de esta señal permitirá al controlador
activar un temporizador con retardo a la desconexión (TON 56) siempre y cuando
la bomba esté activa. Si esto es así, después de dos segundos el temporizador
activará la bandera N_H_P_A (no hay paso de agua), la cual desactivará la bomba
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
90
Figura 4.6. Programa de control de nivel con detección de fallas en el sensor de fondo y en el
sensor de paso de agua
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
91
Figura 4.7. Controlador de nivel de agua con indicadores de detección de fallas en el sensor de
fondo y en el sensor de paso de agua
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
92
Figura 4.8. Programa de control de nivel de agua con detección de fallas en el sensor de fondo; en
el sensor de paso de agua y por exceso de tiempo de llenado
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
93
Figura 4.9. Diagrama electrónico del controlador de nivel de agua con indicadores de detección de
fallas en el sensor de fondo; en el sensor de paso de agua y por exceso de tiempo de llenado
4.2 SEMÁFORO
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
94
Figura 4.10. Diagramas de tiempo para encendido de las lámparas del semáforo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
95
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
96
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
97
CAPÍTULO 5
CONTROL DE MOVIMIENTO
Los ejes para los servos se asignan desde el eje 1 (pin 2) hasta el eje 11 (pin 12).
Para el caso de motores a pasos, los ejes posibles son el eje 1 (pines 2 a 5); el eje
5 (pines 6 a 9) y el eje 9 (pines 10,11, 12 y A0 para Arduino UNO o MEGA).
También se puede combinar el accionamiento de motores a pasos con
servomotores pero debería ser claro que los servomotores tendrían que asignarse
de tal manera que no haya traslape con los pines que energizarán las fases del o
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
98
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
99
Para el pin 2 (eje 1) se utiliza el carácter ‘p’ para especificar que a partir de ese pin
se energizará un motor a pasos.
OBSERVACIÓN
1. Los pines que se configuran para accionar motores a pasos o servos se
consideran como bits de salida por lo que estarán asociados tanto en Arduino
UNO como en Arduino MEGA a los 11 bits menos significativos del registro Q0.
El cuarto bit para accionar la fase del motor 3 (eje 9) estará asignado al bit Q1.0
(pin A0) para cualquier versión del BIOS (Arduino UNO o MEGA). Sin embargo,
a la salida solamente se consideran los valores de bit generados por las rutinas
de control de movimiento
2. Para prevenir cualquier traslape de valores lógicos de los bits que se utilicen
para energizar las fases de los motores a pasos con cualquiera de los bits de
los otros puertos (I0 o Q0), éstos se deberán marcan con ‘x’ como se muestra
en la cadena de configuración
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
100
Figura 5.1. Diagrama KOP del programa de control del sentido de giro del motor a pasos
OBSERVACIONES
a. El bloque “SetVSM” en la primera red pone la velocidad de rotación del motor
en r.p.m.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
101
En la figura 5.2 se muestra el diagrama del circuito con Arduino que activa el
motor. En él se utiliza un ULN2803.
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
102
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
103
OBSERVACIÓN
Cuando se activa el motor a pasos en el eje 9, no es necesario especificar que los
pines que siguen son de salida (pines 11 y 12). Tampoco es necesario que el pin
A0 en el grupo de pines analógicos se especifique como salida
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
104
OBSERVACIONES
a. El bloque “MoveTo” realiza el desplazamiento angular de todos los ejes de
acuerdo a los parámetros en la entrada “COORS”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
105
Figura 5.5. Diagrama del circuito para accionar dos motores a pasos y dos servomotores
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
106
CAPÍTULO 6
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
107
c:\ProyexDuino\Proyectos\STEPControl\Ejemplos\STEPDuino\Controlador de Nivel de
Agua
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
108
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
109
OBSERVACIÓN
El programa realiza la acción de control de llenado de un tinaco semejante al
que se explicó en el ejemplo del capítulo 5
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
110
7. Aparecerá el simulador
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
111
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
112
Figura 6.1. Simulador hardware para el programa de control de nivel de agua utilizando MicroWin
Tabla 6.1. Correspondencia de entradas y salidas entre el circuito de la figura 6.1 y STEP7
MicroWin
Etiqueta en MicroWin Bit en PLCmDuino Bit en MicroWin
FONDO I0.0 E0.0
TOPE I0.1 E0.1
PASO_DE_AGUA I0.2 E0.2
RESET I0.3 E0.3
BOMBA Q0.4 A0.4
FALLA_SENSOR_SUCIO Q0.5 A0.5
FALLA_PASO_DE_AGUA Q0.6 A0.6
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
113
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
114
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
115
13. Selecciona las licencias para STEPDuino y PLCmDuino haciendo clic en los
botones correspondientes
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
116
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
117
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
118
OBSERVACIONES
a. Si solamente se tiene alguna de las dos licencias, aparecerán algunos
mensajes de error
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
119
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
120
CAPÍTULO 7
PLCmDuino Y FluidSIM
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
121
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
122
Activa la opción “DDE mode”. Asegúrate que en los campos “Servidor” y “Topic”
aparezcan respectivamente las palabras: “FLSIMP” y “IOPanel” tal como se
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
123
0 1 2 3 4 5 6 7
Auto
FluidSIM Out
Module 1 - Port 1
Y el bloque “FluidSIM In” a través del cual FluidSIM recibirá datos de MikroPLAN
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
124
Auto
FluidSIM In
Module 1 - Port 1
0 1 2 3 4 5 6 7
Tabla 7.1. Acceso a los puertos de salida de PLCmDuino desde FluidSIM. El carácter ‘L’ al final de
la designación del puerto indica el byte bajo del puerto de 16 bits que corresponda. El carácter ‘H’
designa el byte alto
Puertos de salida Tipo de puerto Designación del puerto en Disponibilidad en versión BIOS
en PLCmDuino FluidSIM
I0L Entrada PLCmDuino_I0L UNO XT, MEGA
I0H Entrada PLCmDuino_I0H UNO XT, MEGA
I1L Entrada PLCmDuino_I1L UNO XT, MEGA
I1H Entrada PLCmDuino_I1H MEGA
I3L Entrada PLCmDuino_I3L MEGA
I3H Entrada PLCmDuino_I3H MEGA
I4L Entrada PLCmDuino_I4L MEGA
I4H Entrada PLCmDuino_I4H MEGA
I5L Entrada PLCmDuino_I5L MEGA
Q0L Salida PLCmDuino_Q0L UNO XT, MEGA
Q0H Salida PLCmDuino_Q0H UNO XT, MEGA
Q1L Salida PLCmDuino_Q1L UNO XT, MEGA
Q1H Salida PLCmDuino_Q1H MEGA
Q3L Salida PLCmDuino_Q3L MEGA
Q3H Salida PLCmDuino_Q3H MEGA
Q4L Salida PLCmDuino_Q4L MEGA
Q4H Salida PLCmDuino_Q4H MEGA
Q5L Salida PLCmDuino_Q5L MEGA
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
125
1. Una vez que hayas agregado los elementos gráficos de interfaz a tu estrategia,
completa el diagrama como se muestra en la figura de abajo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
126
3. Ahora haz doble clic en el bloque de “FluidSIM In” y modifica la etiqueta que ahí
aparece por defecto por la etiqueta “PLCmDuino_I0L”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
127
OBSERVACIONES
a. A través del bloque “FluidSIM Out”, MikroPLAN hará que los datos digitales que
aparecen a la entrada de ese bloque en FluidSIM se transfieran al puerto Q0L
(8 bits menos significativos de Q0) de PLCmDuino
b. A través del bloque “FluidSIM In”, MikroPLAN hará que los datos digitales
presentes en el puerto I1L (8 bits menos significativos de I1) de PLCmDuino se
transfieran a las salidas de ese bloque en FluidSIM
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
128
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
129
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
130
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
131
8. Escribe las cadenas de configuración de los pines que vas a utilizar de acuerdo
al circuito de la figura 7.1. Selecciona también los puertos que vas a utilizar en
FluidSIM
oprimiendo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
132
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
133
OBSERVACIONES
a. En la tarjeta Arduino, los LED indicadores de comunicación serial, tanto RX
como TX, deberán estar encendidos. Esto indica que la comunicación entre
MikroPLAN y PLCmDuino es correcta
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
134
Auto
FluidSIM In
Module 1 - Port 1
0 1 2 3 4 5 6 7
Por otro lado, es a través del puerto I2 que PLCmDuino podrá monitorear el
estado lógico de algún elemento electro neumático en el prototipo virtual. Este
puerto se divide también en dos puertos de 8 bits cada uno: I2L e I2H. Por tanto,
para que PLCmDuino pueda obtener el estado lógico de los elementos electro
neumáticos que se deseen monitorear en el prototipo virtual, se deberá utilizar el
siguiente bloque con cualquiera de esos puertos
0 1 2 3 4 5 6 7
Auto
FluidSIM Out
Module 1 - Port 1
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
135
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
136
Figura 7.2. Estrategia en KOP para controlar el prototipo virtual en FluidSIM del cilindros de doble
efecto
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
137
OBSERVACIONES
a. La red 1 activa al inicio la marca especial SM1.15 identificada con la bobina
“PV_CONEXION”. Esto permite que PLCmDuino le indique a MikroPLAN que
desea conectarse con el prototipo virtual en FluidSIM. Si en dos segundos,
PLCmDuino no recibe respuesta de MikroPLAN, desactivará esa marca. Como
se puede observar en las demás redes del programa, esta marca está
conectada en serie con los demás contactos, por lo cual al desactivarse, evitará
la activación de las bobinas o salidas en las demás redes. Esta red deberá
incluirse SIEMPRE en cualquier aplicación de este tipo
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
138
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
139
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
140
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
141
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
142
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
143
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
144
9. Observa que el LED “Q1.0” está activo. Esto indica que el enlace entre FluidSIM
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
145
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
146
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
147
CAPÍTULO 8
PLCmDuino y LabVIEW
“c:\ProyexDuino\Proyectos\PLCmDuino\Señalización y
adquisición\LabVIEW\Bibliotecas\DACQS”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
148
2. Aparecerán tres cuadros de diálogo. Elige el cuadro “Functions” y haz clic con el
botón derecho sobre él. Elige la opción “Insert”->”Subpalette”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
149
“c:\ProyexDuino\Proyectos\PLCmDuino\Señalización y
adquisición\LabVIEW\Bibliotecas\DACQS”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
150
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
151
“c:\ProyexDuino\Proyectos\PLCmDuino\Señalización y
adquisición\LabVIEW\Ejemplos\DACQS”
Figura 8.1. Circuito de prueba para adquisición y señalización digital con PLCmDuino desde
LabVIEW
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
152
3. Crea controles en los nodos “Wait for BIOS Initialization” y “COM Port”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
153
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
154
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
155
OBSERVACIONES
a. El subVI “PLGDCOM32_Open” se utiliza para abrir el acceso a PLCmDuino
desde LabVIEW. Este elemento genera una señal de error en el nodo “Error” en
caso de que haya habido algún error al acceder a PLCmDuino
c. El “subVI PLGDCOM32_Close”
9. Haz clic sobre uno de ellos con el botón izquierdo y elige la opción “BIOS
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
156
Version”
10. Acerca el cursor en el nodo de la variable local, Haz clic con el botón “Empty
String Constant”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
157
11. Repite las acciones anteriores con la otra variable local pero ahora elige el
elemento “Controller”
OBSERVACIONES
Se agregaron estas variables locales para que al comienzo de la ejecución del
instrumento, se limpie el contenido de los indicadores “BIOS Version” y “Controller”
Y el panel frontal
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
158
3. Únicamente en caso de que vayas a utilizar la tarjeta Arduino MEGA 2560 con
el chip CH340G puede que requieras oprimir el interruptor “Wait for BIOS
Initialization” antes de correr el instrumento
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
159
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
160
OBSERVACIONES
a. El elemento
Se utiliza para configurar los pines de la tarjeta Arduino como entradas o como
salidas. A través del parámetro “N Port” se especifica el número de grupo de
pines o puerto que se va a configurar de acuerdo a la siguiente tabla
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
161
c. La estructura
d. El elemento
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
162
OBSERVACIÓN
En el control “N bit” se especifica el número de bit del puerto que puede ser desde
0 hasta 15
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
163
OBSERVACIÓN
El elemento
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
164
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
165
OBSERVACIÓN
El elemento
Escribe el valor de una palabra de 16 bits dado por “Valor” al puerto especificado
por “N Port”
3. El panel frontal es
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
166
OBSERVACIÓN
El elemento
Lee el valor del bit dado por “N Bit” del puerto “N Port”. El valor leído se
proporciona en “Value”
3. El panel frontal es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
167
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
168
OBSERVACIÓN
El elemento
Lee un byte, alto o bajo dependiendo de la entrada “(F) Low Byte/(T) High Byte”,
del puerto especificado por “N Port” y lo proporciona en la salida “Value”
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
169
OBSERVACIÓN
El elemento
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
170
2. El diagrama de bloques es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
171
OBSERVACIÓN
El elemento
3. El panel frontal es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
172
CAPÍTULO 9
Control de un LCD
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
173
LCD.EN
Descripción
Se utiliza para activar o habilitar el LCD
Entradas
“EN” debe energizarse sólo una vez
LCD.MSG
Descripción
Se utiliza para enviar un mensaje al LCD
Entradas
- “EN” Cada vez que este nodo se energiza, se envía el mensaje al LCD
- “IN” En este nodo se escribe la cadena o el conjunto de parámetros que se van
a enviar al LCD. Si se va a enviar una cadena de caracteres, éstos deben
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
174
LCD.CMD
Descripción
Se utiliza para enviar un comando al LCD
Entradas
- “EN” Cada vez que este nodo se energiza, se envía el comando al LCD
- “IN” En este nodo se anota el valor del comando a enviar al LCD. Tiene un
tamaño de un byte y sigue al formato del apéndice 1
LCD.CLR
Descripción
Se utiliza para limpiar la pantalla del LCD
Entrada
“EN” Cuando se energiza esta entrada se limpia el LCD
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
175
“C:\ProyexDuino\Proyectos\PLCmDuino\Programación\Ladder\Ejemplos\Específi
cos para PLCmDuino\LCD”
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
176
Cada vez que el usuario oprime alguno de los pulsadores conectados en I0.0 o
I0.1, se enviará un mensaje distinto. Si el usuario oprime el pulsador I0.2, el
contenido del LCD se borrará.
OBSERVACIONES
a. En la segunda red, la primera instancia del bloque “LCD.CMD” se utilizó para
situar el cursor en la primera fila y la primera columna del LCD (valor 0x80 de
acuerdo al apéndice 1)
d. En la última red del programa, se utiliza el bloque “LCD.CLR” para que cuando
el usuario oprime el pulsador I0.2, se borre el contenido del LCD
En la figura 9.3 se muestra el diagrama del circuito para el ejercicio 9.3.1 con una
tarjeta Arduino UNO. La cadena de configuración de los pines es
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
177
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
178
OBSERVACIONES
a. En la red 2, el bloque “MOVW” se utiliza para transferir un valor de 16 bits al
registro M0 cuando la entrada “EN” se energiza
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
179
d. En la red 5, el bloque “LCD.MSG” envía una cadena que despliega el valor del
contenido M0. El carácter de control de despliegue “W” que se coloca entre la
letra inicial del registro y el número de registro, indica que el valor en el LCD se
mostrará en decimal. En la tabla 9.1 se muestran los caracteres de control
posibles que se utilizan para desplegar valores de registros en el LCD
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
180
CAPÍTULO 10
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
181
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
182
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
183
APÉNDICE 1
Hoja de datos del LCD
16x2
Versión 2018R6
Fecha de creación: 1/8/2016
Fecha de última revisión: 03/05/2018
The Concise LCD Data Sheet. http://www.senet.com.au/~cpeacock
Write Cycle
RS
tas tah
R/W
tw
tf
Enable
tr tds th
Data Valid Data
tc
(2)
Parameter Symbol Min (1) Typ (1) Max (1) Unit
Enable Cycle Time tc 500 - - ns
Enable Pulse Width tw 230 - - ns
(High)
Enable Rise/Fall Time tr,tf - - 20 ns
Address Setup Time tas 40 - - ns
Address Hold Time tah 10 - - ns Pin No Name I/O Description
Data Setup Time 80 - ns 1 Vss Power GND
tds
2 Vdd Power +5v
Data Hold Time th 10 - - ns 3 Vo Analog Contrast Control
4 RS Input Register Select
Note 1 The above specifications are a indication only. Timing will vary from manufacturer 5 R/W Input Read/Write
to manufacturer. 6 E Input Enable (Strobe)
7 D0 I/O Data LSB
8 D1 I/O Data
Note 2 A 2 line by 16 Character LCD Module is Pictured. Data will work on most 1 line x 9 D2 I/O Data
16 character, 1 line x 20 character, 2 line x 16 character, 2 line x 20 character, 4 lines x 10 D3 I/O Data
20 character, 2 lines x 40 character etc. modules compatible with the HD44780 LCD 11 D4 I/O Data
Module. 12 D5 I/O Data
13 D6 I/O Data
14 D7 I/O Data MSB