Skip to main content

Création d'une visualisation avec une table d'alarmes

Dans les instructions suivantes, le Tableau d'alarme élément de visualisation est configuré à titre d'exemple.

Pour plus d'informations, consultez les éléments suivants : Définition d'un Regrouper d'alarmes et d'alarmes

Configuration

Exigence : Le AG_PartsShortage groupe d'alarme et le AC_PartsShortage les classes d'alarme sont définies dans votre projet.

  1. Ajoutez une visualisation sous votre application.

    1. Sélectionnez l'application et cliquez sur le bouton Ajouter un objetVisualisation commande.

    2. Spécifiez le nom comme VIS_PartsShortage.

  2. Ouvrez l'éditeur de visualisation.

  3. Faites glisser le Tableau d'alarme élément de la Gestionnaire d'alarmes catégorie dans l'éditeur de visualisation et ouvrez la vue des propriétés de l'élément.

  4. Configurez la table d’alarme comme suit.

    1. Dans le Nom de l'élément propriété, dans le Valeur colonne, spécifiez le nom AT_PartsShortage.

    2. Configuration du Alarm groups propriété de l'élément de visualisation :

      1. Dans le Configuration de l'alarmeGroupes d'alarme propriété, cliquez dans la cellule de valeur correspondante.

        Le Regrouper d'alarme sélectionné la boîte de dialogue s'ouvre.

      2. Effacer le Tous option et sélectionnez le AG_PartsShortage groupe d'alarme.

      3. Cliquez sur le _visu_img_add_selected_alarm_group.png bouton pour ajouter le groupe au Regrouper d'alarme sélectionné liste.

      4. Cliquez D'ACCORD pour confirmer la configuration.

    3. Configuration du Classes d'alarme propriété de l'élément de visualisation :

      1. Dans le Configuration de l'alarmeClasses d'alarme Propriété : définissez les classes d'alarmes à visualiser. Cliquez dans le champ de valeur.

        Dans le Configuration de l'alarmeClasses d'alarme propriété, cliquez dans la cellule de valeur correspondante.

        Le Sélectionner la classe d'alarme la boîte de dialogue s'ouvre.

      2. Effacer le Tous option et sélectionnez le AC_PartsShortage classe d'alarme.

      3. Cliquez sur le _visu_img_add_selected_alarm_group.png bouton pour ajouter la classe d'alarme aux classes d'alarme sélectionnées.

      4. Cliquez D'ACCORD pour confirmer la configuration.

    4. Configuration d'une colonne :

      1. Dans le Colonnes propriété, cliquez sur le Créer un nouveau bouton.

        Colonne [2] est disponible. La nouvelle colonne portant le nom Bitmap est répertorié dans l'éditeur de visualisation.

      2. Dans le Type de données propriété, sélectionnez le État valeur pour la colonne [2].

        Dans le tableau, la colonne reçoit le nouvel en-tête par défaut State.

      3. Dans le En-tête de colonne propriété, précisez le nom Parts Shortage State.

        La colonne [2] est renommée.

    5. Configuration du Sélection propriété de l'élément de visualisation :

      1. Dans le Couleur de sélection propriété, sélectionnez la couleur Green dans le Valeur colonne.

        Lors de l'exécution, les cellules du tableau peuvent être sélectionnées par l'utilisateur de la visualisation. Elles deviennent alors vertes.

    6. Configuration du Variables de contrôle propriété de l'élément de visualisation :

      1. Dans le code de votre application, déclarez le bQuitAlarm variable de contrôle.

      2. Dans le Reconnaître la sélection propriété, spécifiez le PLC_PRG.bQuitAlarm variable dans la cellule de valeur.

    Propriétés configurées

    _visu_img_alarm_table_porperties.png

Compléter une visualisation d'alarme avec des commandes

L'utilisateur de la visualisation a besoin de commandes pour gérer la visualisation des alarmes. Lors de la programmation, l'assistant de table d'alarmes peut vous aider. La commande qui appelle l'assistant n'est disponible que si vous avez sélectionné une table d'alarmes dans la visualisation.

  1. Dans l’éditeur de visualisation, sélectionnez la table d’alarmes élément.

  2. Dans le menu contextuel, cliquez sur le Insérer des éléments pour l'acquittement des alarmes commande.

    Le Alarm Table Wizard la boîte de dialogue s'ouvre.

  3. Cliquez D'ACCORD pour accepter tous les paramètres.

    Le Reconnaître la sélection, Acknowledge all visible, History, et Freeze scrolling position Des boutons sont ajoutés. Les éléments disposent d'une configuration entrée complète.

    _visu_img_alarm_table_controls.png

Évaluation des informations d'alarme dans le code du programme

Le Tableau d'alarme L'élément de visualisation peut écrire des informations de la visualisation dans une variable d'application lors de l'exécution. Cette variable peut être évaluée par programmation.

Vous obtenez des informations sur une alarme (par exemple : groupe d'alarmes, ID d'alarme, horodatage des transitions d'état, variables de verrouillage, textes de message) à partir de la structure AlarmSelectionInfo (VisuElemsAlarm bibliothèque).

Pour ce faire, dans le SélectionVariable pour les informations sur l'alarme sélectionnée propriété de la table d'alarme, spécifiez une variable de type AlarmSelectionInfo. Utilisez ensuite la variable dans l'application comme suit :

  1. Ajouter un nouveau PRG_VISU POU.

  2. Ajoutez le PRG_VISU POU à VISU_TASK.

  3. Ouvrez le PRG_VISU POU dans l'éditeur et insérez les lignes de programme suivantes.

    Déclaration

    PROGRAM PRG_VISU
    VAR
        alarmSelectionInfoDefault : AlarmSelectionInfoDefault;
        sLastTimestampDate : STRING;
        sLastTimestampTime : STRING;
        sLatch1 : STRING;
        sLatch2 : STRING;
        wsMessage1 : WSTRING := "No selection";
        wsMessage2 : WSTRING := "No selection";
        pInt : POINTER TO INT;
        xInit: BOOL := TRUE;
        pString : POINTER TO STRING;
        cbsFormattedValueLatch1 : CharBufferString(uiBufferSize := 0, stringType := TYPE_CLASS.TYPE_STRING);
        cbsFormattedValueLatch2 : CharBufferString(uiBufferSize := 0, stringType := TYPE_CLASS.TYPE_STRING);
        abyLocalBufferLatch1 : ARRAY[0..LENGTH] OF BYTE;
        abyLocalBufferLatch2 : ARRAY[0..LENGTH] OF BYTE;
        iPrevSelectionChangedCounter: INT;
        END_VAR
    VAR CONSTANT
        // The length of the string of the local CharBufferString instance
        LENGTH : INT := 80 * 2;
    END_VAR                        

    Mise en œuvre

    IF xInit THEN
        cbsFormattedValueLatch1.Init(pBuffer:=ADR(abyLocalBufferLatch1), uiBufferSize:=INT_TO_UINT(LENGTH + 1), stringType:=TYPE_CLASS.TYPE_STRING);
        cbsFormattedValueLatch2.Init(pBuffer:=ADR(abyLocalBufferLatch2), uiBufferSize:=INT_TO_UINT(LENGTH + 1), stringType:=TYPE_CLASS.TYPE_STRING);
        xInit := FALSE;
    END_IF
    IF alarmSelectionInfoDefault.AlarmSelectionInfo.iSelectionChangedCounter <> iPrevSelectionChangedCounter THEN
        // Format Date/Time as string
        sLastTimestampDate := AlarmManager.FormatDate(alarmSelectionInfoDefault.AlarmSelectionInfo.timeStampLast, AlarmManager.AlarmGlobals.g_sDateFormat);
        sLastTimestampTime := AlarmManager.FormatTime(alarmSelectionInfoDefault.AlarmSelectionInfo.timeStampLast, AlarmManager.AlarmGlobals.g_sTimeFormat);
        // Retrieve latch variables as string
        cbsFormattedValueLatch1.FromString('');
        pString := FormatTypedValue(alarmSelectionInfoDefault.AlarmSelectionInfo.paLatchVariables^[0], cbsFormattedValueLatch1);
        STU.StrCpyA(ADR(sLatch1), SIZEOF(sLatch1), pString);
        cbsFormattedValueLatch2.FromString('');
        pString := FormatTypedValue(alarmSelectionInfoDefault.AlarmSelectionInfo.paLatchVariables^[1], cbsFormattedValueLatch2);
        STU.StrCpyA(ADR(sLatch2), SIZEOF(sLatch2), pString);
        // Retrieve messages
        STU.StrCpyW(ADR(wsMessage1), SIZEOF(wsMessage1), alarmSelectionInfoDefault.AlarmSelectionInfo.papwsAlarmMessages^[0]);
        STU.StrCpyW(ADR(wsMessage2), SIZEOF(wsMessage2), alarmSelectionInfoDefault.AlarmSelectionInfo.papwsAlarmMessages^[1]);
        iPrevSelectionChangedCounter := alarmSelectionInfoDefault.AlarmSelectionInfo.iSelectionChangedCounter;
    END_IF