Arduino Como Controlador Lógico Programable (PLC)
Arduino Como Controlador Lógico Programable (PLC)
ASUNTO:
N° de Control:
E15021089
Asignatura:
Controladores Lógico
Programables
Horario:
Lunes, Miercoles-Viernes
14-15 Hrs
Catedrático
Gómez Rodríguez Javier
1
INTRODUCCION
2
UN EJEMPLO PRACTICO
Como una posible solución, podríamos usar un PLC real, pero dada la simplicidad
del algoritmo y el alto costo de ese PLC, usaremos el hardware que se muestra
arriba.
Método 1: LDmicro
Antes de escribir el código de escalera
(diagrama de contacto), similar al de la figura,
necesitamos descargar el ejecutable LDmicro
desde el enlace http://cq.cx/ladder.pl . Una vez
descargado y guardado en el escritorio, hacer
doble clic en el icono de LDmicro. Ahora, antes
de continuar con la aplicación del diagrama de
escalera, se tiene que escribir un borrador del
programa que se desee crear.
3
Como el programa será simple y solo se
usará pocas variables, se podrá usar el
enfoque de programación más básico e
inmediato para el PLC: la lógica cableada.
Esta metodología consiste en ecuaciones
booleanas simples que siempre
devolverán como salida (después del
signo igual) un valor que puede ser 0 o 1.
Los únicos operadores utilizados serán
AND (serie), OR (paralelo) y NOT
(negación).
- ENTRADA:
- SALIDA:
RODILLO: YAVVOLG
UNROLLER: YSVOLG
4
Tenga en cuenta que los pines de salida de Arduino aún no se han declarado,
mientras que la "x" y la "y" colocadas al comienzo de cada variable representan
respectivamente la entrada y la salida. El software agrega esta letra
automáticamente durante la codificación.
Al mover el cursor debajo de Xnew (utilizando las teclas de flecha del teclado) y
presionar "C", obtendremos un nuevo segmento, siempre llamado Xnew pero en
paralelo con el anterior; ahora, debemos hacer clic en Nuevo y colocar el cursor
verticalmente a la izquierda (antes) de la salida, debemos presionar "C" dos veces.
Al hacer esto, hemos agregado dos contactos más, en serie con los dos (paralelos)
anteriores. Para finalizar, solo tenemos que hacer clic en Ynew (pero esta vez
posicionando el cursor debajo del símbolo de salida) y luego presionar "L": por lo
tanto, hemos agregado otra salida en paralelo al Ynew existente.
Ahora necesitamos modificar todos los nombres de contacto de acuerdo con los
utilizados en las ecuaciones. Para hacer esto, simplemente hacemos doble clic en
el primer contacto nuevo que creamos, luego establecemos el nombre y el tipo de
5
contacto en la ventana emergente. Asignaremos el nombre "SEN_VIENTO" y
seleccionaremos "PIN DE ENTRADA" y "| / | NORMALMENTE CERRADO”(NC).
Recuerde que el software asigna automáticamente la letra inicial "X" o "Y" si la
variable significa ENTRADA o SALIDA, respectivamente.
6
Para insertar un nuevo segmento, haga clic en "Editar-> Insertar segmento
detrás". Después de haber completado la configuración, en el menú
“configuración” seleccionaremos “Microcontrolador-> Código ANSI C”, luego
podremos compilarlo seleccionando desde el menú “Compilar-> Compilar
como”.
Después de guardar el archivo, una ventana emergente nos avisará para configurar
el mapa de direcciones de E / S: hacemos clic en "Aceptar", guardamos nuestro
proyecto LDmicro (menú Archivo-> guardar como) siempre en el escritorio y lo
nombramos como "ladder.ld" .
Entonces necesitamos realizar otro paso. Abrir el archivo ladder.cpp con el bloc de
notas, seleccionar todo el texto y copiarlo y pegarlo en el sitio web
http://adam.horcica.cz/tools/ladder-gen . Después de hacer clic en "Generar",
obtendremos un nuevo código. Copiar y pegar este código en un nuevo archivo de
bloc de notas, guardándolo con los siguientes parámetros:
7
pinMode (5, ENTRADA);
8
9
Una vez que haya cambiado la biblioteca
como se muestra, guardamos los
cambios sin modificar ni el nombre ni la
extensión del archivo, manteniéndolo
siempre en el "Escritorio".
1. "ladder.ld"
2. "ladder.cpp"
3. "ladder.h"
4. "pinmap.ini"
10
a una sola carpeta llamada "ladder". Luego mueva esta carpeta a (W7) C: \
programmiX86 \ Arduino \ bibliotecas (o para ediciones anteriores de Windows (XP)
a C: \ Archivos de programa \ Arduino \ bibliotecas).
Ahora, haga clic en la "verification check" del código y espere hasta que se compile
el boceto. Deberíamos obtener un resultado positivo, si no, vuelva a seguir las
instrucciones anteriores de manera sistemática.
Una vez finalizada la compilación, puede hacer clic en el icono lateral, para
transferir nuestro programa a Arduino; espere hasta que esté cargado y se ha
logrado convertir Arduino en un controlador muy similar a un PLC rival. Ahora solo
tiene que conectar su sistema, respetando la lógica que se ha establecido para las
entradas y salidas.
11
Metodología 2: plcLIB
Una vez que haya importado nuestra biblioteca como se describe anteriormente,
no tendremos que cambiarla, independientemente del proyecto que vamos a
realizar. Solo edite el código teniendo en cuenta algunos factores:
12
Al reutilizar las ecuaciones booleanas enumeradas anteriormente, escribimos
nuestro código en el IDE de Arduino: considerándolas como ecuaciones reales que
respetan el orden de los operadores (calculando los paréntesis primeros y luego el
resto).
Una vez que se haya editado este código, simplemente haga clic en Verificar y
espere a que el IDE compile el boceto: debemos obtener un resultado positivo, de
lo contrario, revise las instrucciones paso a paso. Una vez que se complete la
compilación, haga clic en "Cargar" para programar el Arduino. Espere hasta que
se complete la carga y habrá convertido su Arduino a PLC.
13
necesidad de cambiar a otro software. De hecho, un buen programador es alguien
que puede crear un buen producto independientemente del SDK o GUI que esté
utilizando: lo importante es que la lógica del algoritmo es siempre la misma.
CONCLUSIONES
Se ha construido una librería para Arduino que contiene todas las funciones
necesarias para adaptar cada instrucción de AWL a lenguaje de Arduino y que el
programa se comporte de la misma forma que un autómata. Dentro del cual se han
llevado a cabo con las instrucciones más representativas y comunes a la hora de
programar un autómata.
De esta forma, una persona externa no tiene por qué tener conocimientos sobre
Arduino ni de su programación. Para usar el dispositivo de bajo coste, como es un
Arduino, para tareas de automática, tan sólo debe saber cómo programar en AWL.
14
Se ha hecho una programación estructurada a base de diccionarios, con los que
se lee línea a línea el archivo de texto de entrada y va escribiendo en el de salida.
REFERENCIAS
https://www.open-electronics.org/arduino-as-a-programmable-logic-controller-plc/
http://electronics4dogs.blogspot.it/2011/07/ldmicro-and-arduino.html
15