Utilizzo delle chiamate API per attivare gli eventi in modo programmatico
Avviso
Gli eventi sono allarmi di tipo osservativo Evento (API). Vengono attivati a livello di programmazione nel codice dell'applicazione utilizzando la funzionalità di AlarmManager libreria e IAR ArmHandler 7 interfaccia.
Gli eventi sono definiti direttamente in un gruppo di allarmi o in un modello di gruppo di allarmi come istanza di allarme.
Per ulteriori informazioni, vedere Esempio: AlarmManager
Allarmante per un evento
Definizione di un allarme con Evento (API) tipo
Nel
Alarm Configuration, imposta un gruppo di allarme.Definire un allarme del tipo di osservazione Evento (API) nel gruppo di allarme.
Nel Classe colonna, seleziona ad esempio la classe di allarme
Errore specificare il messaggio di allarme desiderato in Messaggio.
L'allarme ID_0, che viene attivato tramite API su un evento, è definito.
È possibile definire tale evento con qualsiasi classe di allarme. I dettagli non sono richiesti e non viene fornita una condizione di allarme. L'evento viene attivato tramite una chiamata API
Suggerimento
È inoltre possibile definire un evento in un modello di gruppo di allarmi.
Implementazione di una chiamata API
Un evento viene attivato nel codice dalla chiamata API dell'istanza FB della libreria RaiseEvent, con il passaggio di un ID di allarme. Ogni allarme ha un ID univoco. Questa può essere utilizzata come variabile nel codice e quindi funge da variabile di trasferimento.
Nello specifico, la variabile alarmID è un'enumerazione che segue questo schema:
Alm_<name of alarm group>_ IDs.ID_<configured ID>
Posizionare il cursore nella posizione del programma in cui deve avvenire la chiamata del blocco funzione.
Inserisci "
AlarmManager«seguito da un punto.Selezionare
AlarmGlobalse inserisci un punto.Si apre una finestra contenente l'elenco di tutti gli elementi inseribili (funzione "Elenca componenti").

Allo stesso modo, inserisci gli elementi
g_AlarmHandlerERaiseEvent.Si ottiene la seguente riga:
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent.Definiamo ora le variabili di trasferimento
AlarmGroup_IDEAlarm_ID. Per fare ciò, inserisci una parentesi aperta.Viene visualizzato un suggerimento che mostra informazioni sulle variabili di trasferimento
Premere il F2 chiave.
Si apre l'Input Assistano.
Sul Categorie scheda (
), seleziona la categoria Variabili (
).Assistente di input

Selezionare la variabile ID del gruppo di allarmi desiderata (
).La variabile viene applicata nella riga del programma.
Inserisci una virgola e usa l'Input Assistant per inserire la variabile ID di allarme desiderata (
). Inserite una parentesi chiusa e un punto e virgolaSi ottiene la seguente riga di programma:
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup1, Alm_AlarmGroup1_Alarm_IDs.ID_0);
Questo codice attiva l'allarme
ID_0nel gruppo di allarmeAlarmGroup1.
Attivazione di un evento tramite un'istanza di allarme
Ciò è particolarmente importante per gli sviluppatori di librerie.
Importante
Se osservi la variabile di tipo personalizzato (blocco funzione della struttura) e desideri definire un evento per questo POU, dovresti preferibilmente farlo in un modello di gruppo di allarmi.
È un vantaggio che sia il POU che il modello di gruppo di allarmi possano entrare a far parte di una libreria di sviluppo.
Definizione di un allarme con Evento (API) tipo
Sotto la tua applicazione, crea Modello di gruppo di allarmi denominato
AGT_0.In un modello di gruppo di allarmi, definisci un allarme del tipo di osservazione Evento (API).
Nel Classe colonna, seleziona la classe di allarme
Errore specificare il messaggio di allarme desiderato in Messaggio.
L'allarme ID_0, che deve essere attivato tramite API su un evento, è definito.
Questo tipo di allarme può essere definito con una classe di allarme e un metodo di riconoscimento specificati nella casella di riepilogo. I dettagli non sono obbligatori
Implementazione di una chiamata API
Un evento di allarme di istanza viene attivato dalla chiamata API della libreria FB RaiseEventAlarmInstance o in alternativa tramite RaiseEventAlarmInstanceByName.
Implementa il
FB_MyAlarmblocco funzionale conMETH_RaiseEventmetodo.Seleziona il nodo dell'applicazione e fai clic su Aggiungi oggetto → POU comando.
Configurare il POU come segue: nome
FB_MyAlarm, digitare Blocco funzionale, linguaggio di implementazione ST.Dichiarare le variabili di input della funzione.
Dichiarazione:
FUNCTION_BLOCK FB_MyAlarm VAR_INPUT xCondition : BOOL; END_VAR VAR_OUTPUT END_VAR VAR END_VARSeleziona il POU e aggiungi
METH_RaiseEventmetodo.Aprire l'editor ST di
METH_RaiseEventmetodo e programma la chiamata alla libreria.Suggerimento
Lascia che l'Input Assistant (F2) ti aiutano in questo.
Questo codice attiva l'allarme
ID_0dal modello del gruppo di allarmiAGT_0.METHOD RaiseEvent : BOOL VAR_INPUT END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(THIS, Alm_AGT_0_Alarm_IDs.ID_0);
Crea un'istanza del blocco funzione nel modello del gruppo di allarmi.
Apri l'editor di
AGT_0e fate clic sul pulsante con i puntini di sospensione verticali nel Digita per la definizione dell'allarme riga.Si apre l'Input Assistant.
Sotto
Application, selezionaFB_MyAlarmblocco funzionale.
La definizione dell'allarme viene istanziata.
Implementa la chiamata API nel codice IEC.
Dichiarazione
PROGRAM PLC_PRG VAR // Alarm Instances myInst : FB_MyAlarm; myInst2 : FB_MyAlarm; END_VARAttuazione
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');
