Utilisation d'appels d'API pour déclencher des événements par programmation
Les événements sont des alarmes de type observation Événement (API). Ils sont déclenchés par programmation dans le code de l'application à l'aide des fonctionnalités du AlarmManager bibliothèque et IAR Arm Handler 7 interface.
Les événements sont définis directement dans un groupe d'alarmes ou dans un modèle de groupe d'alarmes en tant qu'instance d'alarme.
Pour plus d'informations, voir Exemple : AlarmManager
Alarmant lié à un événement
Définition de l'alarme d'événement dans le groupe d'alarmes
Dans
Alarm Configuration, définissez un groupe d'alarmes.Dans un groupe d'alarmes, définissez une alarme du type d'observation Événement (API).
Dans le Classe colonne, sélectionnez par exemple la classe d'alarme
Erroret spécifiez le message d'alarme souhaité sous Message.
L'alarme ID_0, qui est déclenchée via l'API lors d'un événement, est définie.
Vous pouvez définir un tel événement avec n'importe quelle classe d'alarme. Les détails ne sont pas requis et aucune condition d'alarme n'est donnée. L'événement est déclenché par un appel d'API.
Astuce
Vous pouvez également définir un événement dans un modèle de groupe d'alarmes.
Implémentation d'un appel d'API
Un événement est déclenché dans le code par l'appel d'API de l'instance FB de la bibliothèque RaiseEvent, avec un identifiant d'alarme transmis. Chaque alarme possède un identifiant unique. Elle peut être utilisée comme variable dans le code et sert donc de variable de transfert.
Plus précisément, la variable AlarmID est une énumération suivant ce schéma :
Alm_<name of alarm group>_ IDs.ID_<configured ID>
Placez le curseur à la position du programme où l’appel du bloc de fonctions doit avoir lieu.
Entrez « »
AlarmManager« suivi d'un point.Sélectionner
AlarmGlobalset entrez un point.Une fenêtre s'ouvre contenant la liste de tous les éléments insérables (fonction « Lister les composants »).

De la même manière, insérez les éléments
g_AlarmHandleretRaiseEvent.Vous obtenez la ligne suivante :
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent.Définissez maintenant les variables de transfert
AlarmGroup_IDetAlarm_IDPour ce faire, entrez une parenthèse ouvrante.Une info-bulle apparaît, affichant des informations sur les variables de transfert
Appuyez sur F2 clé.
L'assistant de saisie s'ouvre.
Sur le Catégories onglet (
), sélectionnez la catégorie Variables (
).Assistant de saisie

Sélectionnez la variable d'identification du groupe d'alarmes souhaitée (
).La variable est appliquée dans la ligne de programme.
Entrez une virgule et utilisez l'assistant de saisie pour insérer la variable d'identification d'alarme souhaitée (
). Entrez une parenthèse fermante et un point-virguleVous obtenez la ligne de programme suivante :
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup1, Alm_AlarmGroup1_Alarm_IDs.ID_0);
Ce code déclenche l'alarme
ID_0dans le groupe d'alarmeAlarmGroup1.
Déclencher un événement via une instance d'alarme
Ceci est particulièrement pertinent pour les développeurs de bibliothèques.
Important
Si vous observez la variable d'un type personnalisé (bloc fonctionnel ou structure) et que vous souhaitez définir un événement pour ce POU, vous devez de préférence le faire dans un modèle de groupe d'alarmes.
Le fait que le POU et le modèle de groupe d'alarmes puissent faire partie d'une bibliothèque de développement constitue un avantage.
Définition d'une alarme avec Événement (API) type
Dans votre application, créez le Modèle de groupe d'alarmes nommé
AGT_0.Dans un modèle de groupe d'alarmes, définissez une alarme du type d'observation Événement (API).
Dans le Classe colonne, sélectionnez la classe d'alarme
Erroret spécifiez le message d'alarme souhaité sous Message.
L'alarme ID_0, qui doit être déclenchée via l'API lors d'un événement, est définie.
Ce type d'alarme peut être défini à l'aide d'une classe d'alarme et d'une méthode d'accusé de réception spécifiées dans la zone de liste. Les détails ne sont pas obligatoires.
Implémentation d'un appel d'API
Un événement d'alarme d'instance est déclenché par l'appel d'API de la bibliothèque FB RaiseEventAlarmInstance ou bien par RaiseEventAlarmInstanceByName.
Mettre en œuvre le
FB_MyAlarmbloc de fonctions avecMETH_RaiseEventméthode.Sélectionnez le nœud de l'application et cliquez sur Ajouter un objet → POU commande.
Configurez le POU comme suit : nom
FB_MyAlarm, tapez Bloc fonctionnel, langage de mise en œuvre ST.Déclarez les variables d'entrée de la fonction.
Déclaration :
FUNCTION_BLOCK FB_MyAlarm VAR_INPUT xCondition : BOOL; END_VAR VAR_OUTPUT END_VAR VAR END_VARSélectionnez le POU et ajoutez le
METH_RaiseEventméthode.Ouvrez l'éditeur ST du
METH_RaiseEventméthode et programme l'appel de bibliothèque.Astuce
Laissez l'assistant de saisie (F2) vous y aideront.
Ce code active l'alarme
ID_0à partir du modèle de groupe d'alarmesAGT_0.METHOD RaiseEvent : BOOL VAR_INPUT END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(THIS, Alm_AGT_0_Alarm_IDs.ID_0);
Instanciez le bloc fonctionnel dans le modèle de groupe d'alarmes.
Ouvrez l'éditeur de
AGT_0et cliquez sur le bouton représentant une ellipse verticale dans le Type de définition de l'alarme rangée.L'assistant de saisie s'ouvre.
En dessous
Application, sélectionnez leFB_MyAlarmbloc fonctionnel.
La définition de l'alarme est instanciée.
Implémentez l'appel d'API dans le code IEC.
Déclaration
PROGRAM PLC_PRG VAR // Alarm Instances myInst : FB_MyAlarm; myInst2 : FB_MyAlarm; END_VARMise en œuvre
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(ADR(myInst), Alm_AGT_0_Alarm_IDs.ID_0); Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstanceByName(ADR(myInst2), Alm_AGT_0_Alarm_IDs.ID_0, 'AGT_0');
