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.
Ajoutez une visualisation sous votre application.
Sélectionnez l'application et cliquez sur le bouton Ajouter un objet → Visualisation commande.
Spécifiez le nom comme
VIS_PartsShortage.
Ouvrez l'éditeur de visualisation.
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.
Configurez la table d’alarme comme suit.
Dans le Nom de l'élément propriété, dans le Valeur colonne, spécifiez le nom
AT_PartsShortage.Configuration du
Alarm groupspropriété de l'élément de visualisation :Dans le Configuration de l'alarme → Groupes d'alarme propriété, cliquez dans la cellule de valeur correspondante.
Le Regrouper d'alarme sélectionné la boîte de dialogue s'ouvre.
Effacer le Tous option et sélectionnez le
AG_PartsShortagegroupe d'alarme.Cliquez sur le
bouton pour ajouter le groupe au Regrouper d'alarme sélectionné liste.Cliquez D'ACCORD pour confirmer la configuration.
Configuration du Classes d'alarme propriété de l'élément de visualisation :
Dans le Configuration de l'alarme → Classes d'alarme Propriété : définissez les classes d'alarmes à visualiser. Cliquez dans le champ de valeur.
Dans le Configuration de l'alarme → Classes 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.
Effacer le Tous option et sélectionnez le
AC_PartsShortageclasse d'alarme.Cliquez sur le
bouton pour ajouter la classe d'alarme aux classes d'alarme sélectionnées.Cliquez D'ACCORD pour confirmer la configuration.
Configuration d'une colonne :
Dans le Colonnes propriété, cliquez sur le Créer un nouveau bouton.
Colonne [2] est disponible. La nouvelle colonne portant le nom
Bitmapest répertorié dans l'éditeur de visualisation.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.Dans le En-tête de colonne propriété, précisez le nom
Parts Shortage State.La colonne [2] est renommée.
Configuration du Sélection propriété de l'élément de visualisation :
Dans le Couleur de sélection propriété, sélectionnez la couleur
Greendans 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.
Configuration du Variables de contrôle propriété de l'élément de visualisation :
Dans le code de votre application, déclarez le
bQuitAlarmvariable de contrôle.Dans le Reconnaître la sélection propriété, spécifiez le
PLC_PRG.bQuitAlarmvariable dans la cellule de valeur.
Propriétés configurées

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.
Dans l’éditeur de visualisation, sélectionnez la table d’alarmes
élément.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.
Cliquez D'ACCORD pour accepter tous les paramètres.
Le
Reconnaître la sélection,Acknowledge all visible,History, etFreeze scrolling positionDes boutons sont ajoutés. Les éléments disposent d'une configuration entrée complète.
É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élection – Variable 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 :
Ajouter un nouveau
PRG_VISUPOU.Ajoutez le
PRG_VISUPOU àVISU_TASK.Ouvrez le
PRG_VISUPOU 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_VARMise 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