Introducción
PROFINET (Process Field Network) es 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
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.
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
See how >>
sudo apt update
sudo apt install snapd
sudo reboot
sudo snap install cmake --classic
cmake --version
Download and compile 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
sudo ifconfig eth0 192.168.0.50 netmask 255.255.255.0 up
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
sudo apt update sudo apt install -y tshark
sudo groupadd tshark
sudo usermod -a -G tshark $USER
tshark --version
sudo tshark
tshark -D
sudo tshark -i eth0
Get the results
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:
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.
PROFINET y Raspberry PLC: Cómo establecer la comunicación en Linux