← Retour à l'accueil

Importer des symboles HMI dans Ignition Perspective

Mise en place en 15 minutes · Ignition 8.1+ · Perspective + Vision

Ignition offre le chemin d'import le plus propre de tous les HMI : déposez des SVG dans Image Management, placez un composant Image, et utilisez une expression switch() pour choisir la bonne image en fonction d'un tag d'état. Fonctionne à l'identique pour Perspective et Vision. Les SVG viennent du Symbol Builder (votre propre équipement), de la bibliothèque communautaire (CC BY 4.0) ou de la bibliothèque d'icônes (badges, flèches, icônes de navigation).

Compatibilité : testé sur Ignition 8.1.30+. Perspective rend le SVG nativement (idéal) ; Vision le rastérise (le convertit en matriciel) au runtime (fonctionne quand même).

Pas à pas

1

Exportez vos symboles en SVG

  • Dessinez-le : dans le Symbol Builder, composez l'équipement à partir de formes, d'éléments ISA et de tampons (canevas 512 × 512 pour les symboles carrés, 256 × 128 pour l'empreinte large moteur-et-étiquette) et cliquez sur ↓ SVG. L'export est du SVG simple avec des couleurs hexadécimales littérales — pas de classes CSS, pas de scripts, pas de polices externes — ce qui est exactement ce qu'aiment les moteurs de rendu de Perspective et Vision.
  • Réutilisez-le : ouvrez un symbole parmi les moteurs de la communauté, les vannes, les pompes ou les réservoirs et cliquez sur Download SVG. Créditez l'auteur dans la documentation de votre projet ; Open in builder pour l'adapter d'abord.
  • Badges et icônes : les badges de priorité d'alarme, les badges d'état, les flèches et les icônes de navigation / barre système (accueil, alarmes, courbes, silence klaxon) viennent de la bibliothèque d'icônes en SVG.

Un fichier par état : construisez la base, enregistrez-la comme modèle, recolorez le remplissage du corps par état (gris arrêté, blanc ou vert en marche, jaune sans retour, bleu manuel, gris foncé désactivé), apposez le badge P1 / P2 pour les variantes d'alarme, exportez chacune sous la forme {kind}_{state}.svg — par ex. motor_3ph_running.svg, motor_3ph_running_p1.svg. Laissez le texte du tag hors du symbole ; l'embedded view l'ajoute (étape 5).

La composition dans le Builder ne nécessite pas de compte. Le téléchargement, si : un compte gratuit donne 5 téléchargements par mois, Starter 50, Studio illimité. Les symboles que vous publiez vous-même sont toujours téléchargeables gratuitement.

2

Chargez dans Image Management

Dans le Designer ou l'interface web du Gateway :

  • Designer : Tools → Image Management.
  • Gateway : Config → System → Images.

Créez une arborescence de dossiers : symbols/motor/, symbols/pump/, symbols/badges/, etc. Faites glisser les fichiers SVG dans chaque dossier (la sélection multiple fonctionne). Le chemin devient la référence de l'image (par ex. symbols/motor/motor_3ph_running.svg).

3

Placez un composant Image (Perspective)

Ouvrez une vue Perspective. Depuis la Component Palette → DisplayImage. Déposez-la sur le canevas.

Dans le Property Editor, réglez props.source sur le chemin de l'image :

/system/images/symbols/motor/motor_3ph_running.svg
4

Liez l'état avec une expression switch()

Clic droit sur props.sourceEdit Binding → Expression. Utilisez :

// Liez au tag INT d'état dans votre API : "/system/images/symbols/motor/motor_3ph_" + switch( {[default]Equipment/M101/State}, 0, "stopped", 1, "starting", 2, "running", 3, "nofb", 4, "manual", 5, "disabled", 6, "running_p1", 7, "running_p2", 8, "stopped_p1", "stopped" ) + ".svg"

Cette expression évalue l'INT d'état et renvoie le chemin d'image correspondant. Ignition recharge l'image automatiquement lorsque la valeur du tag change. Les suffixes ne sont que la convention de nommage de l'étape 1 — si vous avez nommé vos fichiers différemment, changez les chaînes.

5

(Recommandé) Encapsulez sous forme d'Embedded View / Template

Pour Perspective : créez une view par type d'équipement (FP_Motor3ph) avec deux paramètres, state (INT) et tag (chaîne). À l'intérieur, placez l'Image liée à ces paramètres et un Label pour le tag. Déposez la vue en tant qu'Embedded View partout où vous en avez besoin ; liez state et tag par instance.

Pour Vision : utilisez un Template piloté par UDT avec un paramètre entier State — même structure, style Vision classique.

S'accorder au look de Perspective

Le thème par défaut de Perspective est plat et clair. Les symboles dessinés avec des traits de 2 px, sans dégradés et avec le corps gris apaisé du Builder s'y intègrent déjà bien. Si vous voulez les badges et icônes de navigation de la bibliothèque d'icônes dans les couleurs d'accentuation de Perspective, la barre latérale de la bibliothèque dispose d'un préréglage de style Ignition Perspective qui les recolore avant le téléchargement. Dans le Builder, choisissez les remplissages vous-même — et gardez les couleurs d'état sémantiques (rouge et orange uniquement pour les alarmes).

Encodage API recommandé (scripting de tag Ignition)

Si vous voulez qu'Ignition calcule l'état lui-même (par ex. quand l'API n'expose que des booléens), déposez un Derived Tag avec cette expression :

// État dérivé de booléens individuels if({[.]Fault}, 8, if({[.]AlarmP2} && {[.]Running}, 7, if({[.]AlarmP1} && {[.]Running}, 6, if({[.]LocalMode}, 4, if({[.]Disabled}, 5, if({[.]NoFeedback}, 3, if({[.]Running}, 2, if({[.]Starting}, 1, 0))))))))

Dimensionnement pour Perspective

CibleTaille d'imageRemarques
Navigateur de bureau256×128Le SVG s'adapte — réglez la taille du composant Image, pas de la source
Tablette (Mobile)192×96SVG, cadre de composant plus petit
Téléphone128×64SVG ; envisagez de masquer les équipements non critiques
Affichage mural (4K)320×160 ou 512×256Le SVG s'adapte toujours ; si vous devez utiliser du PNG, exportez depuis un canevas 512×512 ou 640×360

Pièges fréquents

Et ensuite

Construisez le symbole, puis liez-le

Le Symbol Builder ne nécessite pas de compte pour composer. Un compte gratuit vous donne 5 téléchargements par mois ; publiez vos propres symboles sous CC BY 4.0 et téléchargez-les gratuitement. Ou partez de ce que d'autres ingénieurs ont déjà dessiné, et testez le motif switch() dans votre propre vue.

Autres fabricants