¿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 del 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:
- 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.
Primeros pasos con Ethernet POWERLINK