FC_SetAlarm

Descripción general

Tipo:

Función

Disponible desde:

V1.0.1.0

G-SE-0065033.1.gif-high.gif

 

 

Descripción funcional

La función FC_SetAlarm es una función auxiliar que permite escribir mensajes de alarma en la etiqueta de administración adecuada y también eliminarlos de la etiqueta. Cada alarma se identifica de manera exclusiva mediante su identificador exclusivo y el valor asociado. El identificador y su valor se especifican mediante el parámetro de entrada o salida iq_stSetAlarm, que se corresponde con el parámetro de entrada o salida iq_astAlarms[#].

Esta función no se puede utilizar simultáneamente en varias tareas.

Mediante la entrada iq_stSetAlarm, puede transmitirse a la función un mensaje de alarma específico de la máquina.

La etiqueta de administración Admin.Alarm[#] debe transmitirse a la función a través del parámetro de entrada o salida iq_astAlarms. Representa la lista de alarmas activas de la unidad en orden cronológico empezando por la alarma producida en primer lugar que permanece activa.

La etiqueta de administración Admin.AlarmHistory[#] debe transmitirse a la función a través del parámetro de entrada o salida iq_stAlarmHistory. Representa el historial de alarmas de la unidad, que incluye las alarmas en orden cronológico empezando por la alarma restablecida en último lugar.

Si se ejecuta la función con la entrada i_xSetAlarm = TRUE, esta comprueba si el mensaje de alarma especificado ya se encuentra en la lista de alarmas activas. En caso contrario, la función obtiene el RTC del controlador y lo escribe junto con el mensaje de alarma especificado en la lista de alarmas activas. Si se alcanza el número máximo de mensajes de la lista, los nuevos mensajes no se añadirán.

Si se ejecuta la función con i_xSetAlarm = FALSE, el mensaje de alarma especificado se eliminará de la lista de alarmas activas. A continuación, se escribirá en la primera posición del historial de alarmas, mientras que las entradas existentes descenderán una posición en la lista. Si la lista está llena, se eliminará la alarma restablecida más antigua.

Si se ejecuta la función con las entradas i_xAckAlarm y i_xSetAlarm = TRUE, esta obtendrá el RTC del controlador y actualizará el parámetro (etiqueta) AckDateTime correspondiente al mensaje de alarma especificado en la lista de alarmas activas. Si ya se ha emitido un acuse de recibo para una alarma, las nuevas peticiones de acuse de recibo no tendrán efecto.

El valor de retorno de la función indica TRUE si la alarma especificada se ha escrito en la lista, se ha eliminado de ella o se ha configurado para el envío de un acuse de recibo. Si la función devuelve FALSE, significa que no se ha solicitado ninguna acción o bien que se ha alcanzado el número máximo de mensajes de la lista.

Interfaz

Entrada

Tipo de datos

Descripción

i_xSetAlarm

BOOL

oTRUE: el código de motivo o el mensaje de alarma específico de la máquina pasado a la entrada/salida iq_stSetAlarm se escribe en la etiqueta de la entrada/salida iq_stActiveAlarm.

oFALSE: el mensaje se elimina de iq_stActiveAlarms y se entra en iq_stAlarmHistory.

i_xAlarmAck

BOOL

TRUE: el mensaje se ha detectado. Se determina la marca de hora adecuada para Admin.Alarm[#].TimeAck.

Entrada/Salida

Tipo de datos

Descripción

iq_stSetAlarm

ST_InitAlarm

El código de motivo o el mensaje de alarma específico de la máquina se pasa a esta entrada/salida.

iq_astActiveAlarms

ARRAY [1..Gc_uiMaxNumberOfAlarms] OF  ST_Alarm

La etiqueta de administración Admin.Alarm[#] debe aplicarse a esta entrada/salida.

iq_astAlarmHistory

ARRAY [1..Gc_uiNumberOfAlarmHistory] OF  ST_Alarm

La etiqueta de administración Admin.AlarmHistory[#] debe aplicarse a esta entrada/salida:

iq_diNumberOfActiveAlarms

DINT

Proporciona el número de mensajes de alarmas activas.