My Building - Porte de garage

Ce chapitre décrit la configuration d’une porte de garage dans Immersive, en s’appuyant directement sur les informations remontées du terrain. Il montre comment déclarer un défaut depuis Excel et adapter la représentation du modèle 3D en fonction de l’état de l’équipement.

Dans cet article

    Afficher plus
    Réduire

    Contrairement au cas précédent du capteur de température, où le défaut était calculé par l’application, nous disposons ici d’une donnée issue directement du terrain qui représente un défaut : Obstacle.

    Dans ce contexte, il n’est pas nécessaire de créer un script, puisque l’information de défaut est déjà fournie par le capteur, nous allons voir comment le configurer directement depuis Excel.

    De plus, la porte de garage possède un capteur d’ouverture, nous pouvons donc modifier la représentation de la porte de garage dans le jumeau numérique pour représenter son état Ouvert ou Fermé.

    Objectifs fonctionnels

    1. Configurer le défaut Porte bloquée depuis Excel
    2. Modifier le modèle de la Porte de garage selon son état.

    Prérequis

    • Création d’un script de comportement associé à la famille GarageDoor
    • Association de la Porte de garage à son modèle 3D dans le jumeau numérique.
    • Présence d’au moins 1 modèle

    Configurer le défaut Porte bloquée depuis Excel

    Lors de la configuration des canaux de mesure d’un équipement depuis le fichier Excel, il est possible de spécifier un état automatique associé à chaque canal.

    Par défaut, tous les canaux sont considérés comme des informations et sont affichés dans le bloc « Informations » de l’équipement.

    Cependant, il existe trois autres comportements possibles :

    • Information (par défaut)
      • Si aucun état automatique n’est précisé, le canal est affiché dans le bloc « Informations » de l’équipement.
    • Error
      • Le canal est affiché dans le bloc « Défauts » de l’équipement.
      • Lorsque sa valeur est égale à true, ko ou 1, le défaut est considéré comme actif et l’équipement est alors en état de défaut.
    • Warning
      • Le canal est également affiché dans le bloc « Défauts » de l’équipement.
      • Lorsque sa valeur est égale à true, ko ou 1, le défaut est actif et l’équipement est considéré comme en défaut, avec un niveau de criticité inférieur à Error.
    • Disconnected
      • Le canal est affiché dans le bloc « Connectivité » et permet de contrôler l’état de connectivité de l’équipement.
      • Si la valeur du canal est à true, ko ou 1, l’équipement sera considéré comme déconnecté.

    Dans notre cas, nous configurons l’état automatique Error dans la colonne « Automatic State » pour le canal Obstacle.

    Le type du canal doit être Boolean.

    Configuration du défaut Porte bloquée via l’état automatique Error dans Excel.

    Modification de la représentation de la Porte de garage en fonction de son état

    Lorsqu’un capteur représente l’état d’un équipement, il est particulièrement intéressant de refléter cet état directement sur le jumeau numérique. Cela permet d’apporter du dynamisme à la carte et de rendre la visualisation plus vivante et intuitive.

    Les portes constituent un cas d’usage particulièrement pertinent, car elles possèdent deux états distincts : ouvertes ou fermées, chacun pouvant être représenté visuellement.

    Pour modifier la représentation d’un équipement associé à une modélisation 3D, il est nécessaire d’utiliser un script. Celui-ci permet d’envoyer les instructions de mise à jour de la représentation à chaque fois qu’une donnée liée à l’état de l’équipement évolue.

    Dans notre cas, le canal DOOR de la porte de garage remonte deux valeurs possibles : Open ou Closed.

    En fonction de cette valeur, nous déterminons si la porte est ouverte ou fermée, puis nous récupérons l’identifiant du modèle 3D associé à chacun de ces états.

    Pour pouvoir modifier le modèle associé, il est nécessaire d’exécuter une requête (Query) afin de récupérer la référence de l’objet à mettre à jour.

    Dans notre cas, un seul modèle 3D est associé à l’équipement ; il est donc possible d’utiliser une Query basée sur le type d’objet.

    function OnEquipmentChanged(equipment)
    {
      // Récupération de la variable qui porte l'état de la porte.
      var doorVar = equipment.GetVariable("DOOR");
    
      // L'état de la porte étant une string pouvant avoir 2 valeurs Open/Close, on calcule si la porte est ouverte en vérifiant la valeur.
      var isOpened = doorVar.AsString == "Open";
    
      // En fonction de l'état d'ouverture ou de fermeture on récupère le nom du modèle associé.
      // Nous avons le modèle Copro_Descente_Open quand la porte est ouverte
      // Nous avons le modèle Copro_Descente quand la porte est fermée.
      var modelId = isOpened ? "Copro_Descente_Open" 
                             : "Copro_Descente";
    
      // Par défaut les modèles 3D associés à un équipement sont colorés en vert ou rouge en fonction de leur état.
      // On désactive cette coloration automatique pour mieux voir le modèle.
      equipment.Coloration = EquipmentColoration.Disabled;
    
      // On execute une requète pour récupérer la référence de l'objet de type model associé à notre équipement.
      // On applique le model attendu au résultat de la requète.
      equipment.Query(".model").SetModel(modelId);
    }
    

    Le résultat sur le jumeau numérique est le suivant.

    Modification du modèle 3D de la porte de garage selon son état ouvert ou fermé.