PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux

Protocolos de comunicación de Ethernet industrial
8 de junio de 2021 por
PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux
Boot & Work Corp. S.L., Fernandez Queralt Martinez

Introducción

PROFINET (Process Field Networkes un estándar de red para la Automatización Industrial basado en Ethernet abierto y no propietario para la automatización..

El PLC industrial Raspberry tiene dos puertos Ethernet, y su propio sistema operativo de la Raspberry, Raspbian, Linux.

Let's go to learn how to run the p-net PROFINET device stack and its sample application on an industrial Raspberry Pi PLC.


Note: Industrial Shields does not provide Profinet libraries to control the Inputs & Outputs. You can use our libraries based on C++, Python or Node-Red that you can find in our official github

Enlaces relacionados

Cómo activar alarmas

with PROFINET & Raspberry

Leer 

Raspberry Pi

Familia de productos

See 

Conceptos básicos sobre

Salidas analógicas de un PLC Industrial Raspberry Pi

Leer 

How tocheck Ethernet

configuration in industrial Raspberry PLC

Leer 

Touchberry Pi

Familia de productos

See 

Cómo programar

entradas de interrupción del PLC Raspberry con Python

Leer 

Explicación

Requisitos

  • 1x Raspberry Pi
  • 1x PLC basado en Raspberry Pi
  • Ethernet/USB Hub
  • Cable de alimentación Rasperry - USB tipo C
  • 2x cables Ethernet

PROFINET

PROFINET es el estándar industrial Ethernet abierto internacional de PROFIBUS y PROFINET (pi) para la automatización

  • PROFINET utiliza los estándares TCP/IP y LO, esPROFI Ethernet en tiempo real, y permite proteger la inversión con la integración de sistemas de fieldbus.
  • ProFiNet IO (entrada-salida): Desarrolla la comunicación en tiempo real (RT) y en tiempo real isócrono (IRT) con la periferia descentralizada. Las denominaciones RT e IRT se limitan a describir las propiedades en tiempo para la comunicación en ProFiNet IO. 

El concepto PROFINET ofrece una estructura de modos modulares para que los usuarios puedan seleccionar ellos mismos la conexión en cascada. Se diferencian esencialmente por el tipo de intercambio de datos para cumplir con los requisitos, en parte de muy alta velocidad.

WCon PROFINET es posible la comunicación sin discontinuidades desde el nivel de gestión hasta el nivel de campo. Por otra parte, responde a las grandes exigencias impuestas por la industria, p. ej. sistema de cableado y conexión adecuado para el entorno industrial, tiempo real, control de movimiento en modo isócrono, ingeniería no propietaria, etc.

PROFINET se desarrolló con el objetivo de fomentar un proceso de convergencia entre la automatización industrial y la plataforma de gestión de la información para la gestión empresarial y las redes corporativas globales. Se aplica a los sistemas de automatización distribuida basados en Ethernet que integran los sistemas de bus de campo existentes, por ejemplo PROFIBUS, pero sin modificarlos.

Profinet - PROFINET & Raspberry PLC tutorial: How to set communication on Linux

      Notas para usuarios avanzados

      La aplicación de ejemplo IO-device puede ejecutarse en:

      • Raspberry Pi
      • Cualquier sistema operativo Linux
      • Una placa integrada que ejecuta un RTOS, como el RT-kernel

      Files

      El directorio sample_app del repositorio p-net contiene el código fuente de este tutorial. También contiene un archivo GSD que indica al controlador IO cómo comunicarse con el dispositivo IO. Las partes de la aplicación de ejemplo que dependen de si se ejecuta Linux o un RTOS se encuentran en src/ports.

      Install dependencies

      1. En primer lugar, conecta tu Raspberry Pi a Internet a través de LAN o Wi-Fi para poder descargar algunos paquetes.

      See how >>
      2. Entonces, para compilar p-net en Raspberry Pi, necesitas una versión reciente de cmake. Instálalo:

      sudo apt update
      sudo apt install snapd
      sudo reboot
      sudo snap install cmake --classic

      3. Verifica la versión instalada:
      cmake --version

      Download and compile p-net

      1. Instala git para descargar p-net:
      sudo apt install git

      2. Crea un directorio llamado profinet:

      mkdir /home/pi/profinet
      cd /home/pi/profinet

      3. Clona el repositorio con los submódulos. A continuación, crea y configura la compilación:

      git clone --recurse-submodules https://github.com/rtlabs-com/p-net.git
      cmake -B build -S p-net
      cmake --build build --target install

      Notes to advanced users

      Si ya ha clonado el repositorio sin la bandera --recurse-submodules, ejecuta en la carpeta p-net.

      git submodule update --init --recursive.

      Alterna el comando cmake para ajustar también algunas configuraciones:

      cmake -B build -S p-net -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON -DUSE_SCHED_FIFO=ON

      Dependiendo de cómo hayas instalado cmake, puede que tengas que ejecutar snap run cmake en lugar de cmake.

      Run the sample application

      1. Ves al directorio /home/pi/profinet/build:

      cd /home/pi/profinet/build

      2. Habilita la interfaz Ethernet y configura la dirección IP inicial:
      sudo ifconfig eth0 192.168.0.50 netmask 255.255.255.0 up

      3. Ejecuta la aplicación de ejemplo:
      sudo ./pn_dev -v -v -v -v

      From the Raspberry PLC

      1. Configura la interfaz Ethernet desde el PLC industrial Raspberry Pi y establece la dirección IP inicial:

      sudo ifconfig eth0 192.168.0.100 netmask 255.255.255.0 up

      2. Descarga el paquete tshark:
      sudo apt update
      sudo apt install -y tshark

      3. Añade un nuevo grupo del sistema llamado tshark:
      sudo groupadd tshark

      4. Añade el usuario actual a un grupo tshark:
      sudo usermod -a -G tshark $USER

      · Para que los cambios surtan efecto, cierra la sesión y vuelve a conectarte a la Raspberry Pi. Después de volver a conectarte, comprueba la versión de tshark:
      tshark --version

      · Para comenzar a capturar paquetes en la interfaz de red por defecto con tshark, simplemente ejecuta este comando:
      sudo tshark

      · Para identificar qué interfaces de red están disponibles para el tshark, ejecuta el siguiente comando:
      tshark -D

      Puedes utilizar la opción -i para capturar paquetes en una interfaz de red específica
      sudo tshark -i eth0

      Get the results

      Obtén los resultados 1 - Tutorial de PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux
      Obtén los resultados 2 - Tutorial de PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux

      LLDP

      LLDP o Link Layer Discovery Protocol es utilizado por PROFINET para determinar y gestionar las relaciones de vecindad entre los dispositivos PROFINET. LLDP utiliza la dirección MAC especial de multidifusión: 01-80-C2-00-00-0E y la capa de enlace Ethernet II y IEEE 802. 1Q y Ethertype 0x88CC (PROFINET). Por último, el número de puerto no es relevante:

      LLDP - Tutorial de PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux

      Autostart on boot

      · Si quieres que pnet se ejecute cuando la Pi se encienda, o se reinicie, primero activa la consola del puerto serie escribiendo la línea

      enable_uart=1

      en el archivo /boot/config.txt 

      1. Ve a /etc/dhcpcd.conf e incluye estas líneas para establecer una IP estática:

      interface eth0
      static ip_address=192.168.0.100/24

      2. A continuación, puedes habilitar el servicio para que se inicie automáticamente ejecutando los siguientes comandos:

      sudo cp /home/pi/profinet/p-net/src/ports/linux/pnet-sampleapp.service /lib/systemd/system
      sudo systemctl daemon-reload
      sudo systemctl enable pnet-sampleapp.service

      Iniciar el servicio

      sudo systemctl start pnet-sampleapp.service

      · Para ver el estado del proceso, y la salida del registro:

      sudo systemctl status pnet-sampleapp.service
      journalctl -fu pnet-sampleapp

      Por último, reinicia para aplicar los cambios y poner en marcha tu servicio.

      ¿Quieres saber más?

      Aprende a activar alarmas con PROFINET y CODESYS

      Buscar en nuestro blog

      PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux
      Boot & Work Corp. S.L., Fernandez Queralt Martinez 8 de junio de 2021
      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 >>>