Primeros pasos con Ethernet POWERLINK

Entiende los fundamentos del protocolo Ethernet Powerlink
15 de febrero de 2024 por
Primeros pasos con Ethernet POWERLINK
Boot & Work Corp. S.L., Bernat Brunet Pedra

¿Qué es POWERLINK? ¿Y para qué se utiliza?

Ethernet POWERLINK es un protocolo de comunicación abierto y en tiempo real que funciona sobre hardware Ethernet. Desarrollado por B&R, este protocolo ha ganado popularidad significativa en la automatización industrial y sistemas de control. Junto a Ethernet POWERLINK, B&R también ha contribuido al desarrollo de openPOWERLINK. Una implementación de código abierto de​l protocolo POWERLINK. Estas tecnologías ofrecen soluciones de comunicación robustas y fiables. Permitiendo el intercambio de datos y la sincronización en aplicaciones críticas en tiempo. Con una amplia gama de aplicaciones y el soporte de una comunidad activa, Ethernet POWERLINK y openPOWERLINK continúan impulsando la innovación y eficiencia en numerosas industrias.

En este post, aprenderás cómo construir y probar los códigos de demostración y cómo adaptarlos para un uso simple con Raspberry PLC.


Requisitos de instalación para Ethernet Powerlink en Raspberry PLC

Implementar Ethernet POWERLINK en un Raspberry PLC requiere componentes de hardware y software específicos para asegurar compatibilidad y rendimiento óptimo. El PLC Raspberry Pi de código abierto, un controlador robusto y versátil, juega un papel crucial en esta configuración, proporcionando la potencia computacional y las opciones de conectividad necesarias para gestionar procesos industriales de manera eficiente. Utilizando el Raspberry PLC, los usuarios pueden crear una infraestructura de red fiable y potente, adecuada para una amplia gama de aplicaciones industriales donde la precisión y durabilidad son clave.


Instalación de openPOWERLINK

Es necesario instalar openPOWERLINK, tanto en el ordenador, como en Raspberry PLC. Visita la página .tar.gz file. Además, puedes clonar el Github repositoryde openPOWERLINK.

Después de tener la carpeta de openPOWERLINK en ambos dispositivos, sigue las instrucciones:

  • Crear debug libraries (opcional):
cd <openPOWERLINK_dir>/stack/build/linux
cmake -DCMAKE_BUILD_TYPE=Debug ../..
make
make install
  • Crear release libraries:
cd <openPOWERLINK_dir>/stack/build/linux
cmake -DCMAKE_BUILD_TYPE=Release ../..
make
make install
  • Construir aplicación de demostración:
cd <openPOWERLINK_dir>/apps/<demo_dir>/build/linux
cmake ../..
make
make install


  • Ahora puedes ejecutar una demostración llamando a:
cd <openPOWERLINK_dir>/apps/<demo_dir>/build/linux
sudo ./<demo_exec_file>

El dispositivo maestro (el ordenador) ejecutará "demo_mn_console" y el esclavo (Raspberry PLC) ejecutará "demo_cn_console". Después de elegir la interfaz correcta, podrás probar las demostraciones y entender los fundamentos de Ethernet POWERLINK.


Configuración de conexiones Ethernet POWERLINK para la comunicación entre dispositivos


Para enviar y recibir mensajes Ethernet POWERLINK, es necesario conectar ambos dispositivos con un cable Ethernet estando en el mismo subred.

Establecer una red Ethernet POWERLINK exitosa requiere una configuración adecuada de conexiones entre dispositivos, incluyendo su conexión física y la configuración para operar en la misma subred. Esta configuración es crucial para la comunicación de alto rendimiento. Es esencial para el control y monitoreo en tiempo real de procesos industriales, asegurando la eficiencia y fiabilidad en sistemas automatizados.



Personalizando tu código para un rendimiento óptimo en Raspberry PLC


El código de demostración para Raspberry PLC (demo_cn_console) no interactúa en absoluto con los IOs físicos. Así que vamos a profundizar en eso: 

  • Instalar la librería rpiplc de Industrial Shields
  • Y modificar los archivos encontrados en <openPOWERLINK_dir>/apps/demo_cn_console/src, sigue los siguientes pasos:
  1. app.c:
#include <rpiplc.h>
static const uint32_t digitalOutputs[] = {Q0_0, Q0_1, Q0_2, Q0_3, Q0_4, Q0_5, Q0_6, Q0_7};
static const int numDigitalOutputs = sizeof(digitalOutputs) / sizeof(uint32_t);
void updateOutputs(void) {
 ​int i;
 ​for (i = 0; i < numDigitalOutputs; i++) {
  ​if (((digitalOut_l >> i) & i) == 1 ) {
   ​digitalWrite(digitalOutputs[i], 1);
  ​} else {
   ​digitalWrite(digitalOutputs[i], 0);
  ​}
 ​}
}

​2. main.c (líneas en negrita):

#include <rpiplc.h>
static void loopMain(void) {​
 ​...
 ​printf("--------------------------------\n\n");
 ​setupInputs();
 initPins();
 
 ​// wait for key hit
 ​while (!fExit) {
  updateOutputs();

​3. Además, el tiempo entre las consultas puede cambiarse en main.c (por defecto, 50 ms):

#define CYCLE_LEN           50000

​4. ../CMakeLists.txt:

TARGET_LINK_DIRECTORIES(demo_cn_console PRIVATE /usr/local/lib)
TARGET_INCLUDE_DIRECTORIES(demo_cn_console PRIVATE /usr/local/include/rpiplc)
TARGET_LINK_LIBRARIES(demo_cn_console ${ARCH_LIBRARIES} rpiplc)
TARGET_COMPILE_DEFINITIONS(demo_cn_console PRIVATE RPIPLC_21) # your model​

Finalmente, vuelve a compilar el código de demostración ¡y observa cómo cambian las salidas!


KAspectos clave para una exitosa implementación de Ethernet POWERLINK en Raspberry PLC

Para implementar exitosamente Ethernet POWERLINK en Raspberry PLC, es crucial enfocarse en conexiones precisas, configuraciones de subred y código personalizado. Estos pasos son fundamentales para establecer una red robusta y eficiente, garantizando una comunicación y control de fluidos en entornos industriales. Adoptar estas prácticas, mejorará los procesos de automatización, ofreciendo confiabilidad y rendimiento en aplicaciones exigentes.




Buscar en nuestro blog

Primeros pasos con Ethernet POWERLINK
Boot & Work Corp. S.L., Bernat Brunet Pedra 15 de febrero de 2024
Compartir

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>