Archivo de etiquetas trucos y tutoriales

De Arduino a Codesys con Modbus

Si estás buscando una forma para comunicar Arduino y un PLC, este post te va a interesar. Te explicaremos como llevar datos de Arduino a Codesys, uno de los entornos de programación más dinámicos en el mundo de la automatización industrial.

¿Cómo ir de Arduino a Codesys?

Los habituales del blog ya saben que Modbus es uno de los protocolos más famosos en el mundo de la automatización industrial. Es un protocolo ideal porque se puede implementar en todo tipo de dispositivos, y es un protocolo muy fiable en cuanto a comunicaciones industriales.

Es tan versátil que se puede implementar sobre placas Arduino, y como no, cualquier dispositivo basado en Codesys (incluido un PLC). Por lo tanto, es el medio que usaremos para generar la comunicación entre ambos.

Vídeo

Sin entrar todavía en más detalles, y como un vídeo vale más que mil palabras, vamos a ver el vídeo donde veremos los detalles de la comunicación entre ambos:

¿Cómo funciona la comunicación entonces? Pues básicamente con un equipo Codesys que hace peticiones periódicas a nuestro dispositivo Arduino. Ambos hablan Modbus para comunicar datos.

Particularidades de la comunicación

Para aquellos que no están habituados a Modbus, seguramente han visto varias palabras que les pueden sonar a chino: Holding Registers, slave id, canal… Todos son conceptos importantes que definen una comunicación. En nuestro caso, usar 2 holdings es sólo un ejemplo para ilustrar cómo funciona la comunicación. Merece la pena mencionar que si necesitáis más información sobre Modbus, tenemos un curso disponible.

Por otro lado, el programa desarrollado en Codesys ha mantenido la llamada “jerarquía IEC 61131-3”. Para aquellos que no saben que es Codesys, aquí tenemos una serie de entradas.

Últimos detalles

Arduino y Codesys (o cualquier otro PLC) son perfectamente integrables. Y no sólo con Modbus. Hay muchas más alternativas posibles. ¿Estás trabajando con algún proyecto similar? ¿Dudas o consultas? Entonces no dudes en contactarnos!

Serie de articulos sobre Modbus
Serie de articulos sobre OPC UA

Llamadas a funciones en PLC’s

En informática y en programación en general, estamos acostumbrados a hablar de funciones. Las funciones también son comunes dentro de la programación industrial y en los PLC’s en particular.

¿Que es una función? ¿Para qué sirve?

Una función es una pequeña parte de un programa que realiza un trabajo muy concreto. Son muy útiles porque generan una independencia del programa principal, y se caracterizan porque son llamadas ya sea desde el mismo programa principal u otra función.

Ejemplos hay muchos. Por ejemplo, si yo hago un programa que sea una calculadora, es posible que quiera tener una función dedicada para los cálculos (suma, resta, etc.), y que el programa principal sea el gestor que haga las llamadas pertinentes, además de gestionar la comunicación con el usuario.

¿Y en un PLC? ¿Y en Codesys? 

En el mundo de los PLC, las funciones siguen las líneas mismas líneas maestras que en la informática, pero además cumplen otro rol: la mejor organización del programa. 

Ya lo sabemos, los programas de los PLC’s pueden ser muy largos, y seguramente la independencia de ciertas tareas en funciones, del programa principal, agrega mejor lectura y versatiladidad al programa.

¿Cómo se programa una función en Codesys?

Las funciones en Codesys son POU’s. En Codesys tenemos tres grandes grupos de bloques de programación (POU’s):

  • Programas (PRG)
  • Funciones con memoria (FB)
  • Funciones sin memoria (FC)

Por lo tanto, las funciones se programan ya sea con los FB o los FC, cada uno tiene sus propias características, pero la principal diferencia, es que los primeros tienen memoria, a diferencia de los segundos.

¿Un ejemplo?

Hay algunos ejemplos en los que son especialmente útiles, como por ejemplo, en la realización de cálculos matemáticos.  Un ejemplo muy bueno es la programación de una calculadora.

¿Te gustaría ver el ejemplo? No te pierdas esta entrada al blog, con vídeo incluido: 

¿Te gustaría seguir aprendiendo sobre Codesys?

Si quieres seguir aprendendiendo a programar PLC’s y Codesys no deberías perder la oportunidad de echar un vistazo a los links que te dejamos más a bajo, contamos con múltiples formas de ayudarte 🙂 

Soluciones Codesys

Workshop Nivel 1 y 2
Soluciones System Partner
Consultoría y Soporte

Sentencias condicionales con ST

Ya hemos hablado en otros post sobre el Texto Estructurado. Como ya comentamos,  su uso dentro de un PLC puede llevar a nuevas ventajas para programadores y compañías

¿Por dónde empiezo?

El Texto Estructurado, o ST, es uno de los 5 lenguajes del IEC 61131-3 , la  normativa que dicta cómo programar PLC’s sin depender del Hardware.

Se trata de un lenguaje textual y orientado a objetos – que puede recordar mucho a otros como Java, por ejemplo-. En este sentido, es un lenguaje que hereda muchas de las propiedades y ventajas de otros lenguajes de programación usados en la informática. En esta entrada encontrarás más información.

¿Qué es una sentencia condicional?

Dentro del mundo de la programación, diríamos que al conjunto de instrucciones que dictaminan si se pueden ejecutar o no una función, la llamamos sentencia condicional.

Por lo tanto, se trata de instrucciones de alto nivel. `Por ejemplo, las que ejecutan en función de la condición (“IF..THEN..ELSE”) o las que se ejecutan en bucle como (WHILE..DO)

¿Y cómo se ve en un PLC?

El clásico programa que para algunos podría ser complicado de entender en Ladder, puede tener su traducción en ST con algunas pocas líneas de código. Por ejemplo, imaginemos un proceso donde tengamos que controlar una temperatura.

PROGRAM PLC_PRG
VAR
    Temperatura: INT;
    EncenderCal: BOOL;
    AbrirVentana: BOOL;
END_VAR

IF Temperatura < 17 THEN
    EncenderCal := TRUE;
ELSIF Temperatura > 25 THEN
    AbrirVentana := TRUE;
ELSE AbrirVentana := FALSE;
END_IF;

Como se ve, este es un lenguaje textual, en el que se pueden programar condiciones mediante las sentencias condicionales que comentábamos.

¿Otras propiedades? ¿Seguir aprendiendo?

Una de las principales propiedades, y que hablamos en su día, fue acerca de los métodos. Puedes leer más de los métodos aquí. Otra característica importante se trata de estar orientado a objetos, lo que genera propiedades especialmente valiosas en muchos casos.

Si quieres seguir aprendiendo, quédate atento a nuestro blog, puesto que planificamos lanzar un curso.

Buses de campo

La imperiosa necesidad de integrar cada día más señales de control en la industria llevó a  buscar alternativas al cableado habitual ¿Te interesa saber más sobre buses de campo? Sigue leyendo.

¿Qué es un bus de campo?

Empecemos por lo esencial. Los buses de campo son medios de comunicación electrónicos e industriales para comunicar PLC’s con otros PLC’s o periferia descentralizada.

Dicho de otra forma, un bus de campo es un bus que nos permite comunicar con otros dispositivos con un protocolo específico en campo, es decir, en una área de fabricación.

¿Por qué debería comunicarse un PLC con un bus de campo?

Bueno, ya sabrás que una de las características esenciales de los PLC es su capacidad de comunicarse con su entorno mediante Entradas y Salidas. Las Entradas y Salidas normalmente se comunican con el PLC mediante módulos específicos y cada una de ellas es cableada por separado.

El bus de campo integra muchas señales, reduciendo en gran medida los costes de instalación

Los buses de campo se caracterizan por hacer lo mismo pero simplificando la instalación, puesto que el cable permite integrar muchas más señales. Además, estos buses tienden a ser cada vez más inteligentes, lo que significa que permiten llevar señales adicionales como fechas de calibración etc.

Los beneficios de los buses de campo por lo tanto son muchos, pero resumiendo: instalación más rápida, mejor mantenimiento, más interoperabilidad y reducción de tiempos de parada.

¿Qué buses de campo existen hoy en día?

El desarrollo tecnológico ha hecho que surjan muchos y diferentes. Por ejemplo, AS-I, Profibus, Modbus, etc. Cada uno con sus diferentes particularidades y ventajas.

Seguramente, la evolución tecnológica de los últimos años ha venido acompañada por los pasos hacia delante en la electrónica, lo que ha permitido que los buses más nuevos tengan mayores capacidades de comunicación, más velocidad, etc.

¿Debería usar aprender a usar buses de campo?

Si estás trabajando en automatización industrial, más temprano que tarde vas a tener que aprender, así que sí… Por eso, te recomendamos que eches un vistazo a este curso sobre buses.

 

Codesys en Raspberry Pi

Programar una Raspberry Pi como si de un PLC se tratara. Realizar aplicaciones de automatización profesionales. Realizar aplicaciones interactivas con el mundo real y todo ello bajo un entorno de programación de ingeniería. ¿Suena bien? La combinación de Codesys en Raspberry Pi lo permite. Sigue leyendo.

Raspberry Pi

Como ya sabréis, una Raspberry Pi es un ordenador de placa reducida. Es bastante popular su uso en el ámbito doméstico, ya sea usándola como media center, centro de emulación de antiguas consolas o, incluso para hacer algunos proyectos de domótica. En este último caso, sin embargo, una carencia siempre ha sido la de no contar con entornos de ingeniería completamente profesionales para la realización de proyectos.

¿Qué sería posible si se pudiese combinar con una plataforma tan potente como es Codesys®?

Codesys ®

Si eres un habitual de nuestro blog, ya sabrás que se trata de una plataforma de ingeniería de automatización completa. Si no sabes qué es, te aconsejo hacer clic en esta entrada.

Dentro de su gama de productos, tenemos por un lado un entorno de ingeniería muy potente y muy profesional, ideal para hacer proyectos de ingeniería. Su programación se basa en IEC 61131-3, una potente normativa que permite programar dispositivos en múltiples lenguajes de programación y sin depender del hardware.

Por el otro, tenemos los runtimes, pequeños programas que permiten que un hardware sea compatible.

Combinación de Codesys en Raspberry Pi

La combinación abre un nuevo mundo de posibilidades para makers, ingenieros y programadores. La combinación permite por ejemplo, la programación de proyectos de automatización en Ladder o texto estructurado. También permite habilitar comunicaciones industriales, tales como EtherCAT o Profinet. O, por ejemplo, realizar interfaces de visualización funcionales y multiplataforma.

Próximas novedades

Como partners de Codesys® estamos preparando algunas novedades y esperamos que, en no mucho tiempo, podamos dar forma a algunos contenidos que, de buen seguro, os van a interesar.

Si te ha interesado este post y quieres sabe más, te sugerimos que visites la página promocional que hemos preparado en el siguiente enlace.

Cómo crear tablas de Observación en Codesys

Hace un tiempo un alumno del curso online de Codesys me preguntó sobre cómo se podían crear tablas de observación en Codesys 3.5. No hay duda que es una consulta más que interesante, así que, ¿Por qué no publicar la respuesta en el blog?  Bueno, en este tutorial haremos una explicación resumida sobre cómo lograrlo. A por ello.

¿Qué es una tabla de observación?

Empecemos por el principio. Las tablas de observación (O Watch List en Codesys), son listas de variables de proyecto que define un usuario en una vista con el propósito de monitoriearlas o forzarlas cuándo se trabaja en línea.

¿Y para qué sirven?

Pues lo dicho, puedes tener en una sola ventana aquello que necesitas monitorear. Vamos, que no tiene que ir buscando variable por variable lo que quiere monitorear, sino que con una vista simple, puede tener todos los datos que necesita revisar.

Por ejemplo, si haces un programa que controla varios aspectos de un proceso, puedes crear una tabla de observación con las variables más importantes, prescindiendo de todo aquello que realmente no te interesa observar.

¿Algo más?

En Codesys, además, es posible crear varias tablas de observación simultáneamente. Con esta funcionalidad, por ejemplo, podemos crear una tabla de observación para visualizar datos de un contador, otra tabla de observación para un regulador, etc.

Vamos, que podemos contextualizar la información en varias tablas, para que nos sea más fácil depurar el programa.

Vídeo de cómo crear tablas de observación en Codesys

Bueno, aquí un tutorial donde te explico a crearlas paso a paso. Let’s go!

¿Te ha resultado útil? Si te interesa seguir formándote en Codesys no dudes en contactarnos, además del curso online, ofrecemos cursos regulares de manera presencial. Si estás pensando en hacer un proyecto y buscas alguna consultoría también podemos ayudar. Será un  placer hablar contigo!