TargetLink génère un code C très efficace directement à partir de Simulink®/Stateflow® de MathWorks®. La génération automatique de code implique également que si vous effectuez un changement qui impacte plusieurs lignes de code, TargetLink met à jour toutes ces lignes automatiquement. Ainsi, vous pouvez désormais vous concentrer sur l'application réelle. Une vérification précoce grâce aux fonctionnalités de simulation et de test intégrées permet d'obtenir des temps d'exécution plus rapides et de réduire les coûts.
Pourquoi la qualité du code est si importante
Comparé au code utilisé dans le prototypage rapide de lois de commande où les développeurs doivent avoir beaucoup de liberté lors des tests de nouveaux concepts, le code de production destiné aux commandes électroniques au sein de véhicules, d’avions et pour toute autre application industrielle à utilisation réelle, doit répondre à des exigences très strictes en matière de qualité. Par exemple, les développeurs doivent être sûrs que le code est hautement optimisé, qu’il peut être facilement intégré à un autre logiciel, qu’il est lisible à l’instant t mais aussi ultérieurement afin d’assurer la maintenance, que toutes les connexions entre les exigences, le modèle et le code sont claires et compréhensibles et que le code respecte toutes les normes pertinentes. En bref : un maximum de fiabilité, d’efficacité, de sécurité, de maintenance, de traçabilité et – concernant le processus de génération – de reproductibilité (c’est à dire que le même modèle conduit au même code) sont nécessaires.
TargetLink pour un code de production haute qualité
Le générateur de code de production TargetLink de dSPACE est un système logiciel extrêmement puissant qui vous garantit en permanence un code de qualité supérieure – et ce, en vous laissant prendre en compte vos exigences personnelles et les normes en vigueur. Malgré les fonctionnalités complètes de TargetLink, les étapes types de la génération de votre code de production sont simples à suivre, avec de nombreuses options permettant d’adapter le processus à votre environnement individuel. Les étapes types comprennent la conception de contrôleurs, la validation et la vérification interactives (basées sur la simulation) et l’intégration du code sur le calculateur. De plus, TargetLink interagit en toute transparence avec d’autres outils dSPACE et tiers qui, ensemble, forment l’Ecosystème TargetLink.
Conception de modèles de contrôleur directement avec TargetLink
La bibliothèque de blocs Simulink® est très puissante dans les tâches de simulation, fournissant toutes les fonctionnalités de spécification nécessaires. Cependant, concernant la génération de code, vous avez besoin de plus d’informations pour chaque bloc. Par exemple, les blocs nécessitent des capacités supplémentaires pour la simulation à virgule fixe. Pour cette raison, TargetLink inclut la bibliothèque TargetLink Block Library qui offre un bloc pour chaque bloc Simulink supporté.
Les blocs TargetLink améliorent considérablement la fonctionnalité des blocs Simulink supportés et ont une boîte de dialogue étendue qui vous permet de saisir les informations spécifiques à l’implémentation nécessaires à la génération de code. Chaque bloc comporte aussi un outil d’enregistrement de données et de détection de débordement. Une routine spécifique prépare automatiquement les modèles Simulink à la génération de code avec TargetLink en transformant les blocs Simulink en blocs TargetLink. Le modèle est ainsi prêt à la génération de code production et au bypass sur cible.
Si vous devez modifier les propriétés d’un grand modèle, le Property Manager de TargetLink est un outil graphique et rapide permettant de modifier manuellement les propriétés dans les boîtes de dialogue des blocs. Il affiche les propriétés des blocs TargetLink et des objets Stateflow de votre modèle et vous permet de visualiser, de filtrer et de modifier simultanément plusieurs propriétés.
Trois modes de simulation pour les tests
Bien que les générateurs de code produisent virtuellement des résultats parfaits en comparaison à la programmation manuelle, le code généré exige encore d’être testé tout comme la spécification sous-jacente. TargetLink propose des moyens puissants et simples à utiliser permettant de vérifier le code généré. Les tests du code sont réalisés dans le même environnement de simulation que celui utilisé pour spécifier le modèle de simulation sous-jacente. L’identité fonctionnelle est atteinte quand les résultats de simulation coïncident. TargetLink fournit un processus de vérification en trois étapes qui montre, par simple appui sur un bouton, si la spécification (le modèle) et l’implémentation (le code généré) sont identiques d’un point de vue fonctionnel.
Simulation Model-In-the-Loop |
Les données sont enregistrées pour les tracés de référence issus du modèle de simulation. Les signaux provenant des blocs sélectionnés et des variables d’état sont automatiquement enregistrés par TargetLink.
La simulation Model-In-the-Loop capture le comportement spécifié du modèle à implémenter en code C ultérieurement. Les tracés de signaux enregistrés servent de référence aux étapes de vérification suivantes. La simulation Model-In-the-Loop peut également être utilisée pour détecter les débordements de variables de type entier et ses résultats sont utilisés pour la mise à échelle automatique basée sur la simulation. |
Simulation Software-In-the-Loop |
Le code est généré et remplace les blocs du contrôleur dans le modèle de simulation (par exemple, les mêmes signaux d'excitation et le même comportement physique). TargetLink effectue ces tâches automatiquement en arrière-plan.
Vous continuerez à voir les blocs du contrôleur bien que ce soit le code qui est exécuté sur le PC hôte. Les tracés de signaux doivent être quasiment identiques aux résultats de la simulation Model-In-the-Loop. Si ce n'est pas le cas, les tracés peuvent être analysés afin d'obtenir une meilleure compréhension de la cause de cet écart et d’ajuster les paramètres codés en virgule fixe. |
Simulation Processor-In-the-Loop |
Le code généré fonctionne sur un processeur intégré mais comme le code qui fonctionne correctement sur le PC hôte peut continuer à poser problème, il faut continuer à l’inspecter.
On connecte une carte d'évaluation du commerce sur le PC hôte et on compile le code généré avec le compilateur cible avant de le télécharger sur la carte d'évaluation. TargetLink gère la communication entre le PC hôte et la carte d’évaluation. Toutes ces activités sont automatisées et n’exigent pas l’interaction de l’utilisateur. La simulation sur une carte d’évaluation ne nécessite que deux clics. |
Fonctionnalités et avantages du concept de simulation
Fonctionnalité | Description | Bénéfice |
---|---|---|
Simulation MIL/SIL/PIL par simple appui sur un bouton | Passage de la simulation MIL à SIL ou PIL en un clic |
Environnement de simulation puissant
Pas besoin de modèles de test distincts, de génération de S-functions ou d’insertion manuelle dans les modèles de harnais de test |
Enregistrement intégré de données | Enregistrement de données et traçage des résultats intégrés pour tous les modes de simulation |
Aucune modification de modèle nécessaire
Disponible pour tous les modes de simulation |
Comparaison directe des résultats MIL/SIL/PIL | Tracé automatique de tous les résultats de simulation dans la même fenêtre de tracé |
Affichage direct des résultats des simulations dans les différents modes et analyse des écarts
Feedback direct indiquant si le code correspond à la simulation du modèle |
Analyse détaillée des signaux et tracés des écarts | Zoom sur les signaux pour inspecter visuellement les écarts, affichage des contraintes (p. ex. : plages définies), utilisation du curseur pour parcourir les historiques, affichage des valeurs des signaux numériquement ou traçage de l'écart des signaux |
Obtention d’une image claire du comportement du signal
Particulièrement utile pour le passage de la virgule flottant à la virgule fixe |
Enregistrement et traçage intégrés des données | Les blocs TargetLink intégrés sont dotés d’une fonctionnalité d’enregistrement des données intégrée. Dans les boîtes de dialogue de bloc, vous pouvez spécifier s'il faut enregistrer les signaux de sortie de bloc. | |
Analyse d’exécution pour le profilage du code | La simulation Processor-In-the-Loop (PIL) peut également être utilisée pour profiler le code généré. Pendant la simulation PIL, TargetLink mesure automatiquement le temps d’exécution et la consommation de la pile directement sur le processeur cible. | |
Analyse de la couverture de code | Vous pouvez évaluer l’exhaustivité des tests en utilisant l’analyse de la couverture de code. TargetLink propose une analyse de couverture C0 et C1, également appelée couverture des relevés et couverture des décisions. | |
Traçabilité du code du modèle | Pour une meilleure traçabilité et des revues de code simplifiées, des fichiers de code peuvent éventuellement être générés au format HTML, avec des hyperliens pour la navigation du modèle au code et vice versa. |
High Code Efficiency
Regardless of the application type (fixed-point or floating point), TargetLink generates highly efficient production code for your embedded system. Multiple scaling properties give ample choices to fine-tune fixed-point code to the conflicting requirements of low execution time, high computational precision, and overflow avoidance. If an overflow occurs, TargetLink’s overflow detection shows the exact location in the block diagram. The problem can be corrected right away.
Scaling Variables
To shorten the time-consuming and error-prone manual scaling process, TargetLink provides an Autoscaling Tool. It supports you in finding suitable ranges and calculating appropriate scaling parameters. A scaling task that took days and weeks in the past can now be done in minutes and hours.
As a scaling method, TargetLink offers the two-coefficient linear scaling, which is widely used in embedded control applications. The properties for specifying fixed-point scalings in TargetLink are:
- Data type
- Power-of-two scaling factor or arbitrary scaling factor
- Offset value
- Constraint values
- Bit safety margins
- Saturation options
While fixed-point scaling can be done manually by a software engineer, in most instances it is left to TargetLink’s autoscaling tools. Two autoscaling procedures are available:
- Simulation-based autoscaling – benefit from maximum computational precision
- Worst-case autoscaling – no plant model required and overflows automatically prevented
Moreover, TargetLink also supports scaling with scaling formulas and type definitions.
Powerful Code Optimization
TargetLink generates highly optimized ANSI C code that is just as efficient as optimized handwritten code. This is achieved by various optimization techniques, such as standard optimization techniques that are also used by modern C compilers. TargetLink’s interblock optimization gives the generated code a human touch, because it combines code in a very similar way to what a skilled software engineer would do. For more complex blocks, TargetLink uses code from an internal code pattern library during the code generation process, ensuring that the code for complex blocks is also highly efficient.
Fonctionnalités de vérification supplémentaires dans TargetLink
Feature | Description |
---|---|
|
|
|
|
|
|
|
|