Uso de llamadas a la API para activar eventos mediante programación
Aviso
Los eventos son alarmas de tipo observación Evento (API). Se activan mediante programación en el código de la aplicación mediante la funcionalidad del AlarmManager biblioteca y el iArarmHandler 7 interfaz.
Los eventos se definen directamente en un grupo de alarmas o en una plantilla de grupo de alarmas como una instancia de alarma.
Para obtener más información, consulte Ejemplo: AlarmManager
Alarmante con un suceso
Definir una alarma con Evento (API) tipo
En
Alarm Configuration, establece un grupo de alarmas.En un grupo de alarmas, defina una alarma del tipo de observación Evento (API).
En el Clase columna, seleccione, por ejemplo, la clase de alarma
Errory especifique el mensaje de alarma deseado en Mensaje.
La alarma ID_0, que se activa mediante la API en un evento, está definido.
Puede definir un evento de este tipo con cualquier clase de alarma. No se requieren detalles y no se proporciona una condición de alarma. El evento se desencadena mediante una llamada a la API.
Sugerencia
También puede definir un evento en una plantilla de grupo de alarmas.
Implementación de una llamada a la API
La llamada a la API de la instancia de FB de la biblioteca desencadena un evento en el código RaiseEvent, con un identificador de alarma que se está transmitiendo. Cada alarma tiene un identificador único. Esto se puede usar como una variable en el código y, por lo tanto, sirve como una variable de transferencia.
En concreto, la variable alarmID es una enumeración que sigue este esquema:
Alm_<name of alarm group>_ IDs.ID_<configured ID>
Coloque el cursor en la posición del programa donde debe realizarse la llamada al bloque de función.
Ingresa "
AlarmManager«seguido de un punto.Seleccionar
AlarmGlobalse introduzca un punto.Se abre una ventana que contiene una lista de todos los elementos insertables (función "Listar componentes").

De la misma manera, inserte los elementos
g_AlarmHandleryRaiseEvent.Obtendrás la siguiente línea:
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent.Ahora defina las variables de transferencia
AlarmGroup_IDyAlarm_IDPara ello, introduzca un paréntesis de apertura.Aparece una información sobre herramientas que muestra información sobre las variables de transferencia.
Pulsa el F2 clave.
Se abre el Asistente de entrada.
En el Categorías pestaña (
), seleccione la categoría Variables (
).Asistente de entrada

Seleccione la variable de ID de grupo de alarmas deseada (
).La variable se aplica en la línea del programa.
Introduzca una coma y utilice el Asistente de entrada para insertar la variable de ID de alarma deseada (
). Introduzca un paréntesis de cierre y un punto y comaObtendrás la siguiente línea de programa:
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_AlarmGroup1, Alm_AlarmGroup1_Alarm_IDs.ID_0);
Este código activa la alarma
ID_0en el grupo de alarmasAlarmGroup1.
Activación de un evento a través de una instancia de alarma
Esto es particularmente relevante para los desarrolladores de bibliotecas.
Importante
Si observa la variable de un tipo personalizado (bloque funcional de estructura) y desea definir un evento para esta POU, es preferible hacerlo en un plantilla de grupo de alarmas.
Es una ventaja que tanto la POU como la plantilla de grupo de alarmas puedan formar parte de una biblioteca de desarrollo.
Definir una alarma con Evento (API) tipo
En tu solicitud, crea el Plantilla de grupo de alarmas denominada
AGT_0.En una plantilla de grupo de alarmas, defina una alarma del tipo de observación Evento (API).
En el Clase columna, seleccione la clase de alarma
Errory especifique el mensaje de alarma deseado en Mensaje.
La alarma ID_0, que debe activarse mediante la API en un evento, está definido.
Este tipo de alarma se puede definir con una clase de alarma y un método de confirmación especificados en el cuadro de lista. No se requieren detalles
Implementación de una llamada a la API
La llamada a la API de la biblioteca (FB) desencadena un evento de alarma de instancia. RaiseEventAlarmInstance o alternativamente mediante RaiseEventAlarmInstanceByName.
Implemente el
FB_MyAlarmbloque de funciones conMETH_RaiseEventmétodo.Seleccione el nodo de la aplicación y haga clic en Agregar objeto → POU comando.
Configure la POU de la siguiente manera: nombre
FB_MyAlarm, escriba Bloque de funciones, lenguaje de implementación ST.Declare las variables de entrada de la función.
Declaración:
FUNCTION_BLOCK FB_MyAlarm VAR_INPUT xCondition : BOOL; END_VAR VAR_OUTPUT END_VAR VAR END_VARSeleccione la POU y añada la
METH_RaiseEventmétodo.Abra el editor ST del
METH_RaiseEventmétodo y programa la llamada a la biblioteca.Sugerencia
Deje que el Asistente de entrada (F2) te ayudará con esto.
Este código activa la alarma
ID_0de la plantilla de grupo de alarmasAGT_0.METHOD RaiseEvent : BOOL VAR_INPUT END_VAR
Alarmmanager.AlarmGlobals.g_AlarmHandler.RaiseEventAlarmInstance(THIS, Alm_AGT_0_Alarm_IDs.ID_0);
Cree una instancia del bloque de funciones en la plantilla del grupo de alarmas.
Abre el editor de
AGT_0y haga clic en el botón de puntos suspensivos verticales del Escriba la definición de alarma fila.Se abre el Asistente de entrada.
Bajo
Application, seleccione elFB_MyAlarmbloque de funciones.
Se crea una instancia de la definición de alarma.
Implemente la llamada a la API en el código IEC.
Declaración
PROGRAM PLC_PRG VAR // Alarm Instances myInst : FB_MyAlarm; myInst2 : FB_MyAlarm; END_VARImplementación
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');
