Intégration du Raspberry Pi Pico W dans un système de contrôle industriel via OpenPLC et Modbus RTU
Dans un projet basé sur STM32-IHM03 pour le contrôle de moteurs PMSM, un nœud d'E/S distant utilisant Raspberry Pi Pico W avec une logique implémentée dans OpenPLC a été ajouté. La communication entre les nœuds est gérée via Modbus RTU sur RS485, tandis que la coordination du système est assurée par un Orange Pi 4 Pro utilisant Node-RED. Cette architecture démontre l'utilisation d'outils open source pour construire un système d'automatisation distribué conforme à la norme IEC 61131-3.
Configuration matérielle et connexions
Le cœur du système est composé de trois composants clés : STM32-IHM03 pour le contrôle moteur, Raspberry Pi Pico W en tant que module E/S distant, et Orange Pi 4 Pro en tant que contrôleur central. Un bus CAN (utilisant le transceiver SN65HVD230) connecte le STM32 à l'Orange Pi, tandis qu'un bus Modbus RTU à deux fils basé sur la puce MAX485 relie l'Orange Pi au Pico.
Pour connecter Modbus et CAN à l'Orange Pi, un shield RS485 CAN HAT conçu initialement pour Raspberry Pi est utilisé. Son adaptation à l'Orange Pi a nécessité :
- Modification de la fréquence d'horloge du MCP2515 de 8 MHz à 12 MHz dans la superposition de l'arbre des périphériques ;
- Activation de l'UART7 via
orangepi-configpour la communication avec le transceiver SP3485 ; - Montage physique du shield sur des entretoises en raison de la position du processeur sous la carte.
L'alimentation de tous les composants est fournie par une source externe, ce qui n'affecte pas la logique de fonctionnement mais est crucial pour la stabilité du prototype.
Adressage des broches et registres dans OpenPLC
Lors de la programmation du Raspberry Pi Pico W dans l'éditeur OpenPLC, il faut faire correspondre les broches physiques du RP2040 aux adresses Modbus. Le tableau ci-dessous montre les correspondances principales :
| Type de données PLC | Notation | Plage d'adresses Modbus | Taille | Accès |
|---------------|----------|----------------------|------|--------|
| Sorties discrètes | %QX0.0 – %QX6.7 | 0–55 | 1 bit | RW |
| Entrées discrètes | %IX0.0 – %IX6.7 | 0–55 | 1 bit | R |
| Entrées analogiques | %IW0 – %IW31 | 0–31 | 16 bits | R |
| Registres de maintien | %QW0 – %QW31 | 0–31 | 16 bits | RW |
| Mémoire (16/32/64 bits) | %MW / %MD / %ML | 32–171 | jusqu'à 64 bits | RW |
Ces adresses sont utilisées lors de la création de logique en diagramme en échelles (LD) ou diagramme en blocs fonctionnels (FBD). Par exemple, le contrôle d'un relais connecté à GPIO2 correspond à %QX0.2 et à l'adresse Modbus 2.
Implémentation de la logique dans OpenPLC v4
OpenPLC v4 permet le développement de programmes conformes à la norme IEC 61131-3. Pour Raspberry Pi Pico W, les langages de programmation suivants sont disponibles :
- LD (Ladder Diagram) — logique d'échelle à relais, intuitive pour les ingénieurs électriciens.
- FBD (Function Block Diagram) — représentation graphique des fonctions et de leurs connexions.
- ST (Structured Text) — langage textuel de haut niveau.
Le programme est téléchargé dans l'environnement d'exécution OpenPLC, qui s'exécute directement sur le microcontrôleur. Dans ce projet, le Pico agit en tant qu'esclave Modbus RTU avec une adresse fixe, comme 10. Toutes les opérations de lecture/écriture sont initiées par le dispositif maître — l'Orange Pi via Node-RED.
Exemple de logique simple : À la réception d'un signal « start » via Modbus, la bobine %QX0.0 s'active, fermant le relais SRD-05VDC-SL-C. Parallèlement, l'état de l'entrée discrète %IX1.0 peut servir de signal d'arrêt d'urgence.
Limites de l'approche fait maison en automatisation industrielle
Malgré sa flexibilité et son faible coût, la solution Raspberry Pi Pico et OpenPLC présente des limitations significatives pour une utilisation industrielle :
- Absence d'isolation galvanique sur les entrées/sorties rend le système vulnérable aux interférences des équipements de puissance.
- Connecteurs non standards (p. ex., Micro-USB et en-têtes 2,54 mm) ne résistent pas aux vibrations en environnements industriels.
- Absence de watchdog matériel, augmentant le risque de blocages sans redémarrage.
- Support Modbus limité dans OpenPLC v4 : L'écriture dans les registres de maintien et les bobines peut nécessiter la modification du code source de l'environnement d'exécution.
De tels systèmes conviennent à la formation, au prototypage ou à de petites tâches locales, mais pas aux lignes de production critiques.
Points clés
- Raspberry Pi Pico W peut servir de nœud E/S distant dans un système d'automatisation utilisant OpenPLC.
- La communication Modbus RTU nécessite un adressage correct des broches et registres selon la documentation OpenPLC.
- L'adaptation du shield RS485 CAN HAT à Orange Pi est possible mais implique la modification de l'arbre des périphériques et l'activation de l'UART requis.
- OpenPLC v4 prend en charge la norme IEC 61131-3 mais reste en deçà fonctionnellement par rapport aux environnements industriels comme CODESYS.
- Les solutions fait maison ne conviennent pas au déploiement industriel sans protection supplémentaire et standardisation des interfaces.
— Editorial Team
Aucun commentaire pour le moment.