L'intégration du matériel et des logiciels devient de plus en plus importante
Les innovations et les meilleures pratiques contribuent à une plus grande optimisation
Les performances des machines sont de plus en plus déterminées par les logiciels, mais les propriétés telles que la précision, la vitesse et la fiabilité ne sont réellement utiles que lorsque la mécanique, l'électronique, la technologie d'entraînement, le contrôle du mouvement et les logiciels sont conçus ensemble. L'intégration du matériel et du logiciel est donc souvent difficile en raison de processus de développement asynchrones et d'un échange de données inadéquat entre les équipes chargées du matériel et du logiciel. Heureusement, les innovations et les meilleures pratiques permettent d'optimiser le processus d'intégration.
L'intégration
Des processus de développement fragmentés, des cycles différents pour les logiciels et le matériel, et l'absence d'une architecture de système intégrée n'améliorent généralement pas les performances des machines et des équipements. Le manque de cohérence peut se manifester de plusieurs manières.
Conception non optimale
L'architecture du système est censée aligner les sous-systèmes, traduire les exigences de performance en spécifications mécaniques, électriques et logicielles, définir les interfaces et résoudre les problèmes d'intégration à un stade précoce. En l'absence d'une telle architecture, les choix sont souvent optimisés au niveau local plutôt qu'à l'échelle du système.
L'intégration du matériel et des logiciels est souvent difficile en raison de processus de développement asynchrones et d'un échange de données insuffisant entre les équipes chargées du matériel et des logiciels
Friction entre le matériel et le logiciel
Les logiciels peuvent itérer rapidement, alors que le matériel ne le peut pratiquement pas. Comme le matériel réagit différemment de ce que le logiciel attend - en raison de différences de temps, de données de capteurs imprécises ou d'un espace de calcul limité, entre autres -, des erreurs, des retards ou de l'instabilité se produisent, ce qui affecte les performances.
Manque de synergie
Une complémentarité insuffisante peut avoir des conséquences considérables:
- les signaux et les fonctions ne sont pas alignés, ce qui entraîne une perte de précision et de synchronisation;
- parce que les systèmes ne se "comprennent" pas, les écarts ne sont pas compensés;
- les optimisations échouent parce que chaque discipline n'apporte des améliorations que dans son propre cadre.
Réduction des performances du système
Lorsque la mécanique, l'électronique et le logiciel sont développés dans des domaines distincts, des interfaces sous-optimales, des incohérences et des itérations se produisent par la suite. Cela entraîne souvent des retards, des limites de performance et des coûts plus élevés. Il s'agit d'un problème bien connu dans le cadre d'un processus de développement linéaire (ingénierie en série).
Cadre conceptuel
- Limites physiques du matériel: les performances maximales inhérentes au matériel lui-même. Les logiciels ou les utilisateurs ne peuvent les affecter que dans une mesure limitée.
- PTP (Precise Time Protocols): protocole permettant de synchroniser avec précision les horloges des appareils au sein d'un réseau, essentiel pour la synchronisation des actions, l'enregistrement des données et le contrôle des processus.
- Conditions de course: situation dans laquelle le résultat d'un programme dépend de la synchronisation aléatoire de processus simultanés ou threads. Cela peut entraîner un comportement imprévisible ou des erreurs.
- RTOS (Real-Time Operating System): système d'exploitation pour l'ordonnancement et l'exécution déterministes des tâches, soutenu par des mécanismes logiciels (synchronisation) et des choix matériels.
Trajets distincts
Outre le développement asynchrone dans le cadre de l'intégration, différentes équipes sont actives au cours du trajet de développement. L' "équipe matériel" se concentre sur les systèmes intégrés, qui sont souvent spécifiés à l'avance, ce qui rend l'adaptation ultérieure problématique.
L' "équipe logiciel" développe la logique de contrôle, les pilotes et les applications. Bien que cela se fasse souvent de manière itérative et flexible (voir le tableau), cela dépend et reste dépendant des spécifications du matériel. En outre, les incompatibilités techniques telles que les fonctions manquantes ou les problèmes de synchronisation n'apparaissent généralement qu'au cours de la phase d'essai.
Goulets d'étranglement
Comme nous l'avons mentionné, l'intégration du matériel et du logiciel est cruciale pour la réalisation de systèmes efficaces et fiables. Voici les quatre principaux problèmes qui se posent à cet égard.
- Problème 1, compatibilité (manquante) du matériel et du logiciel: le logiciel ne peut pas reconnaître ou utiliser de manière optimale certains composants matériels, par exemple des pilotes obsolètes ou des systèmes d'exploitation incompatibles.
- Problème 2, limitations matérielles: des exemples de limitations matérielles - une mémoire, une puissance de l'unité centrale ou une capacité de réseau insuffisante - empêchent le logiciel de fonctionner de manière optimale, ce qui entraîne des problèmes de performance.
- Problème 3, timing et synchronisation corrects: dans les systèmes en temps réel ou les intégrations complexes, le logiciel ne peut pas se synchroniser correctement avec le matériel, ce qui entraîne des retards et/ou des erreurs.
- Problème 4, complexité de l'intégration: l'intégration nécessite souvent une coordination importante entre les différentes équipes, les composants et les fournisseurs, et l'absence de coordination est source de malentendus et souvent d'erreurs.
Solutions
Des moyens d'améliorer et de faciliter le processus d'intégration sont recherchés avec diligence. Une anthologie.
Méthodologies agiles pour les systèmes embarqués
Ces systèmes mettent l'accent sur des éléments tels que le développement itératif, l'intégration précoce et fréquente, les tests continus et la collaboration interfonctionnelle entre les équipes chargées du matériel et du logiciel. De cette manière, l'intégration est simplifiée, réalisée plus tôt et moins risquée (problème 4). En outre, les méthodologies agiles réduisent le problème 1, bien que partiellement: l'incompatibilité fondamentale reste un problème technique qui peut être résolu par des adaptateurs, des convertisseurs et/ou la normalisation, entre autres.
Conception basée sur un modèle (Model-based design, MBD)
La conception basée sur le modèle (MBD) permet de modéliser les fonctions indépendamment de la plate-forme et de générer le code automatiquement, ce qui réduit les problèmes de compatibilité entre le logiciel et le matériel (problème 1). Le principal avantage de la MBD est la combinaison de la génération automatique de code, de la construction de systèmes hiérarchiques, d'interfaces clairement spécifiées et de simulations et d'essais itératifs, qui permettent de résoudre plusieurs problèmes simultanément (problèmes 1, 3 et 4).
En outre, les simulations et les modèles temporels permettent de mettre en évidence les problèmes de timing et de synchronisation dès la phase de conception. En utilisant un modèle intégré pour plusieurs sous-systèmes, les concepteurs et les développeurs peuvent simuler et tester le système dans son ensemble (problème 4).
Co-conception matériel/logiciel et développement simultané
Cette approche apporte des solutions aux problèmes 1, 2 et 3. Pour le problème 1, parce que la coconception garantit que les deux évoluent en parallèle et sont donc compatibles. Pour le problème 2, parce que le matériel et le logiciel sont réglés de telle sorte que les limites physiques du matériel sont utilisées de manière optimale ou compensées. Pour le problème 3, parce que les problèmes de timing et de synchronisation peuvent être identifiés et résolus à un stade précoce, étant donné que la validation du matériel et du logiciel a lieu simultanément.
L'intégrateur de système constitue le pivot entre tous les composants individuels, les fournisseurs et les domaines techniques
Cela implique souvent l'utilisation de systèmes d'exploitation en temps réel (RTOS) et de tampons matériels et logiciels pour gérer les différences de timing (les tampons matériels sont logés dans des dispositifs, les tampons logiciels dans la RAM). Des protocoles de temps de précision (Precise Time Protocols, PTP), des interruptions et des interfaces et protocoles normalisés tels que USB ou PCIe peuvent également faire partie de la solution.
Prototypes/simulations virtuels
Ces modèles permettent de tester le logiciel sur une représentation virtuelle du matériel, avant même qu'il ne soit physiquement disponible (problème 1). Ils peuvent également simuler un enregistrement, un débogage ou une instrumentation illimités, ce qui n'est généralement pas possible sur le matériel réel (problème 2). En outre, différentes architectures peuvent être simulées et les modèles permettent aux simulations d'analyser avec précision le comportement temporel et de détecter les conditions de course et les problèmes de synchronisation (problème 3).
Pour le problème 4, les modèles n'offrent qu'une solution partielle. Si les sous-systèmes peuvent être testés séparément, la complexité fondamentale de l'intégration demeure, en particulier lorsque de nombreux composants doivent encore être physiquement couplés.
Mise en service virtuelle
Lors de la mise en service virtuelle, un système d'automatisation est d'abord soumis à un test numérique. Il s'agit généralement d'une combinaison d'une simulation 3D (un jumeau numérique) et du logiciel PLC réel, des programmes du robot et de la logique de commande. En testant le matériel et le logiciel dans un environnement virtuel sécurisé, les problèmes de compatibilité peuvent être détectés et résolus rapidement (problème 1).
Le comportement en temps réel du matériel étant stimulé, la communication et les séquences logicielles peuvent être testées et la synchronisation entre plusieurs composants est révélée (problème 3). Les limitations matérielles (problème 4) ne résolvent malheureusement pas le problème de la mise en service virtuelle, mais les rendent visibles plus rapidement.
avant même qu'il ne soit physiquement disponible
Intégrateur de systèmes
Dans ce "jeu" de problèmes et de solutions, le rôle de l'intégrateur de systèmes est indéniable. Il est chargé de relier les différents composants matériels et logiciels en un ensemble fonctionnel et efficace, ce qui nécessite des compétences techniques et de gestion de projet. L'éventail des tâches varie de l'analyse et de la conception à l'intégration et à la mise en œuvre, et de l'assurance qualité à la gestion du projet et des risques:
- sélection de composants compatibles et garantie de leur interopérabilité;
- concevoir un système intégré qui répond aux exigences fonctionnelles et opérationnelles de l'organisation;
- l'écriture d'intergiciels ou d'interfaces, le cas échéant (voir tableau), pour permettre la communication mutuelle des systèmes;
- exécuter un programme de test pour vérifier que tous les composants fonctionnent ensemble comme prévu;
- identifier et résoudre les bogues, les problèmes de compatibilité et/ou de performance;
- coordonner les parties prenantes, y compris les fournisseurs de matériel, les développeurs de logiciels et les services informatiques;
- la gestion des risques liés aux temps d'arrêt, aux incompatibilités et/ou aux problèmes de sécurité.
En résumé, l'intégrateur de systèmes est le pivot entre tous les composants individuels, les fournisseurs et les domaines techniques, et donc la clé du succès en matière d'intégration matérielle et logicielle.

CRA, NIS2 et communication par bus
Le contrôle du mouvement évolue d'un domaine purement électrotechnique vers une plateforme cyberphysique intégrée pour la surveillance, le contrôle et l'optimisation des processus physiques. Les domaines d'intérêt sont les suivants
- Cyber Resilience Act (CRA): exige des fabricants et des intégrateurs qu'ils intègrent structurellement la cybersécurité dans le matériel et les logiciels tout au long du cycle de vie (sécurité par conception dans les systèmes intégrés).
- Directive 2 sur la sécurité des réseaux et de l'information (NIS2): elle se concentre sur la résilience opérationnelle des organisations critiques et essentielles, y compris leur chaîne d'approvisionnement numérique.
- Communication par bus: couche de connexion entre les composants matériels et la logique logicielle (notamment EtherCAT, Ethernet IP et Profinet). Cette fonction critique du système a une incidence directe sur des questions telles que la sécurité, la conformité et les performances.
En collaboration avec Lenze

