Apprendre des défis de la simulation PLC : guide pratique
Cette assertion imposante, tirée d'une thèse de Roland Schulz (2002), résume bien la situation : « Essayer et tester permet de trouver les erreurs ».
Je ne parle pas ici de simulation d'usines entières, mais du principe appliqué aux unités individuelles (composants), comme les programmes d'automatisation ou projets utilisateur.
Par le passé, jeune employé chez Phoenix Contact, j'ai dû apprendre la programmation et aurais apprécié un simulateur de contrôleur pour comprendre le fonctionnement des blocs par « essai-erreur ». Malheureusement, il n'existait pas, et la simulation PLC qui a suivi était très limitée. Le code IEC 61131-3 se simulait bien, mais manquait le support des périphériques spéciaux ou le comportement différent du code entre architectures Intel, ARM ou Motorola.
Avec ces souvenirs des difficultés de la simulation « classique », nous avons cherché une solution à forte valeur ajoutée sans efforts démesurés, ni en développement ni en utilisation ultérieure.
En tant qu'utilisateur, je veux envoyer mon projet vers un PLC ou une simulation en un clic, sans me soucier des architectures processeur, ni devoir masquer ou supprimer des fonctions non supportées par le simulateur.
Quoi de plus évident que d'utiliser le vrai firmware dans la simulation, celui qui tourne sur le matériel réel ? C'est exactement ce qui a été fait.
Aujourd'hui, des émulations système complètes permettent non seulement d'exécuter divers OS sous Windows, mais aussi d'émuler différentes architectures processeur et leurs particularités.
Nos contrôleurs sont basés sur Linux, et il est crucial pour le développement que différentes architectures processeur soient utilisées.
Dans l'ingénierie (PLCnext Engineer), l'utilisateur doit pouvoir choisir entre l'adresse IP du contrôleur ou la simulation en un clic, sans adaptation de code ni compatibilité binaire.
Résultat de ces réflexions
Nous avons retenu l'émulation système QEMU pour simuler nos contrôleurs. QEMU est un « émulateur de machine open source » qui répond exactement à nos besoins.
Faire tourner le firmware dans QEMU, qui émule le système Linux complet de PLCnext Technology, y compris l'architecture ARM de certains contrôleurs – et la simulation PLCnext est née. Quelques limitations mineures existent : la communication PROFINET ou d'autres protocoles sont désactivés, mais le serveur OPC UA, par exemple, ne l'est pas.
Toutes les spécificités de PLCnext Technology sont préservées. Vous pouvez donc envoyer vos programmes et composants C/C++, C# ou Matlab Simulink vers la simulation. Les applications (APPs) du Store peuvent également y être exécutées.
D'autres limitations sont évidentes : le déterminisme n'est pas garanti. Selon la charge du système Windows, des watchdogs peuvent survenir sur la simulation PLCnext. Dans ce cas, augmentez la priorité du processus de simulation sous Windows pour résoudre ces erreurs.
J'ai enfin ma simulation, ou émulation selon la définition, de mon contrôleur. Mais j'ai dû apprendre la programmation sans elle, et je programme moins maintenant.
Technologie industrielle
- Maîtriser la simulation de circuits électriques avec SPICE : Guide pratique pour concepteurs et étudiants
- Simulations cérébrales haute résolution : comment les graines infectieuses se propagent dans les maladies neurodégénératives
- Maîtriser les Tâches d'Affichage Verilog : Débogage et Journalisation Efficaces
- Optimisation de la conception de pelles hydrauliques : Un flux de travail de simulation éprouvé
- PLC vs DCS : choisir le bon système d'automatisation
- Les API industriels alimentent les variateurs de vitesse
- Théorème de Tellegen : Guide complet avec exemples résolus et simulations MATLAB
- Outil Fe3 de NASA Ames : Simulation avancée du trafic aérien à basse altitude
- Un adieu sincère : mon parcours de 40 ans dans l'édition