Codesys et Master EtherCAT sur Raspberry PI

Introduction

Le Runtime de Codesys permet de générer un Master Ethercat. Dans cet article, nous allons utiliser un Raspberry Pi avec le Runtime CodeSys comme Master EtherCAT et un coupleur EtherCAT BK1120 de Beckhoff commme I/O déporté (Slave).

Branchement

Le branchement du Raspberry Pi sera modifié dans le contexte d’un réseau Ethercat.

Dans ce cas d’une communication Ethercat, il ne faut pas utiliser de switch, un branchement direct entre le Master et le Slave est nécessaire.

Configuration réseau : IP + EtherCAT

Deux configurations réseau seront à effectuer sur le Raspberry Pi:

Le port Ethernet physique du RPi est associé à eth0. L’adresse MAC ou physique, aussi nommée ether, est donc DC-A6-32-31-C0-E2. Cette adresse devra être écrite en Majuscule séparée par des tirets dans Codesys.

Fichiers de description Beckhoff

Avant de pouvoir connecter le coupleur Beckhoff, nous devons nous assurer de disposer des fichiers XML de description du BK1120 et de ses modules. Par analogie avec l’environnement Siemens, les fichiers XML Beckhoff correspondent aux fichiers GSDML de Siemens.

Configuration du Master EtherCAT

Pour créer la connexion entre le Master EtherCAT sur le Raspberry Pi et le coupleur EtherCAT Beckhoff BK1120 à l'aide de CODESYS :

Nous devrons maintenant saisir l'adresse matérielle (MAC) du Raspberry Pi (relevée précemment) dans CODESYS :

Programme MAIN sur le Master

Double-cliquez sur "PLC_PRG (PRG)" dans l'arborescence des équipements. Comme vu dans les articles précédents, nous ferons notre programme en Ladder.

Affection des variables

Nous allons maintenant lier les variables du programme MAIN aux entrées sorties du coupleur BK1120.

Nous devons maintenant lier notre Variable BP à "C1 Input" du Beckhoff IO

Test du programme

Pour exécuter le programme :

Conclusion

Nous pouvons maintenant contrôler des coupleurs d'E/S industriels à l'aide d'un Raspberry Pi en tant que Master EtherCAT. Néanmoins, il est illusoire de penser qu'il est possible d'atteindre les perfomances temps réel avec le Runtime Codesys comme sur un IPC Beckhoff qui est prévu pour. Pour des applications classiques d'automatisme sans besoin de synchroniser des axes moteurs, les performances offertes par ce type de dispositif sont équivalents à celles offertes par une communication Profinet I/O.


Revision #2
Created 29 June 2023 16:53:53 by Philippe Celka
Updated 4 July 2023 09:18:43 by Philippe Celka