Procesamiento de Mensajes

El módulo MessageControl está disponible para cada sistema de informes y normalmente se ejecuta en la estación del servidor para proyectos distribuidos. En el proceso, el módulo de publicación muestra cierta información de estado, como el tamaño de diferentes tablas. A continuación se describe aproximadamente la funcionalidad de la lógica de procesamiento.

Bases de datos

Todos los datos del sistema de informes se guardan en la base de datos del proyecto (servidor SQL). Para obtener más información sobre cómo configurar la base de datos del proyecto, consulte el Capítulo 4, «Base de datos del proyecto».

Los módulos de captura pasan nuevos eventos de informes al sistema de informes a través de un procedimiento de base de datos y se almacenan en una tabla de registro. El sistema de control de mensajes procesa todos los telegramas de mensajes entrantes y registra en la tabla de registro el procesamiento exitoso o los errores que se han producido. Especialmente durante la puesta en marcha, puede resultar útil comparar el procesamiento de mensajes con la tabla de registro (visualización del sistema de informes, elemento de menú Seguimiento).

Cuando se activa un nuevo mensaje (evento próximo), se crea una nueva entrada en el archivo de mensajes con el identificador «Mensaje actualmente pendiente». El mensaje conserva este estado hasta que se cumplan todas las condiciones para completarlo (por ejemplo, mensaje y reconocimiento por parte del usuario). En la pantalla del sistema de informes, todos los mensajes con este identificador se enumeran en la pantalla actual; tan pronto como se completa el mensaje, aparece en la vista de archivo.

Hay módulos separados disponibles para capturar, editar y mostrar mensajes. Sin embargo, todos los módulos utilizan las mismas tablas de base de datos para los datos de configuración y caducidad.

Invocar un evento de mensaje

En el nivel más bajo, el manejo de mensajes se implementa llamando a un procedimiento almacenado en la base de datos. Puede invocar este procedimiento almacenado mediante una variedad de métodos diferentes, por ejemplo, utilizando un script de servidor SQL.

Tenga en cuenta que primero debe realizar una configuración de Mensaje, que define el texto real del mensaje. Al llamar a este Procedimiento Almacenado, le asigna el «Operando» de su mensaje y le aplica la «acción».

TSql

DECLARE @RC int
DECLARE @time datetime
DECLARE @source nvarchar(50)
DECLARE @algrp int
DECLARE @operand nvarchar(16)
DECLARE @action char(1)

set @time = GETUTCDATE()       --The time the event happened, usually "Now"
set @source = 'My Application' --Your Application name
set @algrp = 1                 --The id of the alarm group you want to record the message to
set @operand = 'Fault0001_Ext' --This is the Message Identifier of the message to activate
set @action = 'K'              --K = Incoming alarm

EXECUTE @RC = [dbo].[al_new_action] 
   @time
  ,@source
  ,@algrp
  ,@operand
  ,@action

C# sin VisXpert SDK

using (SqlConnection conn = new SqlConnection("Server=(local);DataBase=xxxx;Integrated Security=SSPI")) {
    conn.Open();

    // 1.  create a command object identifying the stored procedure
    SqlCommand cmd  = new SqlCommand("al_new_action", conn);

    // 2. set the command object so it knows to execute a stored procedure
    cmd.CommandType = CommandType.StoredProcedure;

    // 3. add parameter to command, which will be passed to the stored procedure
    cmd.Parameters.Add(new SqlParameter("@time", DateTime.Now));
    cmd.Parameters.Add(new SqlParameter("@source", "My Application"));
    cmd.Parameters.Add(new SqlParameter("@algrp", 1));
    cmd.Parameters.Add(new SqlParameter("@operand ", "Fault0001_Ext"));
    cmd.Parameters.Add(new SqlParameter("@action", "K"));

    // execute the command
    cmd.ExecuteReader()
}

Parámetros del procedimiento almacenado

ParameterData typeDescription
@timeDateTimeThe date and time when the event happened
@sourceStringThe Source where the event originated from. usually your application name
@algrpIntThe ID of the Alarm group where the Operand belongs to
@operandStringThe Operand of the message where the action should be performed
@actionStringThe identifier of the action to perform on the operando. See table below
Parameters of Stored Procedure
ActionDescription
KMessage comes: This telegram indicates the beginning of a message. The posting module will enter a new message in the current table when a comment message is received.
GMessage gone: This marks the end of a message. The posting module will then complete the corresponding current message, i.e. re-enact the «gone» time for the message and calculate the duration of the fault.
FAcknowledge: All current messages of the specified controller are completed, i.e. receive the «Gone» time
PProtocol The message does not appear in the current table, but is immediately posted to the archive
EMessage detected This marks the corresponding current message as recognized
QMessage acknowledged Corresponds to the manual acknowledgment of a message
Values for @action

Simular mensajes con MessageSimu

Con la simulación del sistema de informes se pueden generar telegramas de señales aleatorias de forma manual o controlada por temporizador. La simulación solo es importante en la fase de configuración con fines de prueba para probar el funcionamiento del informe.

Print Friendly, PDF & Email